Whizard-monitoring-gateway 认证

本文档介绍如何为 Whizard-monitoring-gateway 配置 HTTPS 访问及 Basic Auth 认证,配置仅适用于 Whizard 0.9.0 及以上版本。

1. 为 Gateway 配置 HTTPS 访问及 Basic Auth 认证

  1. apiVersion: monitoring.whizard.io/v1alpha1
  2. kind: Gateway
  3. metadata:
  4. labels:
  5. monitoring.whizard.io/service: kubesphere-monitoring-system.whizard
  6. name: whizard
  7. namespace: kubesphere-monitoring-system
  8. spec:
  9. debug: true
  10. enabledTenantsAdmission: true
  11. image: kubesphere/whizard-monitoring-gateway:latest
  12. logFormat: logfmt
  13. logLevel: info
  14. nodePort: 30990
  15. webConfig:
  16. httpServerTLSConfig: # 配置 TLS 证书, 证书生成创建参考 2.1
  17. certSecret:
  18. name: whizard-tls-assets
  19. key: tls.crt
  20. keySecret:
  21. name: whizard-tls-assets
  22. key: tls.key
  23. basicAuthUsers: # 配置 Basic Auth 认证,用户名密码存储在 Secret 中,创建参考 2.2
  24. - username:
  25. name: whizard-basicauth-secret
  26. key: username
  27. password:
  28. name: whizard-basicauth-secret
  29. key: password

1.1 生成 TLS 证书

证书生成访问不做限制,生成完证书后,需要在对应空间创建 Secret,供 whizard 挂载使用。证书生成时需配置其服务 DNS 域名。 这里我们使用 cert-manager 生成证书,可以直接生成对应 Secret,也可以换用其他熟悉方式配置生成证书。

可参考 使用 cert-manager 生成证书

1.2 创建用户登录的 Secret

创建 Secret 加密储存用户名和密码,密码生成可参考 prometheus basic-auth

  1. kind: Secret
  2. apiVersion: v1
  3. metadata:
  4. name: whizard-basicauth-secret
  5. namespace: kubesphere-monitoring-system
  6. data:
  7. password: JDJiJDEyJGhOZjJsU3N4Zm0wLmk0YS4xa1ZwU09WeUJDZklCNTFWUmpnQlV5djZrZG55VGxnV2o4MUF5 # test
  8. username: YWRtaW4= # admin
  9. type: Opaque

2. 通过 Gateway 访问 Thanos UI

请按照 Whizard Gateway 开启 Debug 模式代理 Thanos Query UI 配置,访问 https://<host-ip>:30990/-/ui/ ,此时页面访问需要输入用户名密码。 这里用户名密码为 admintest

3. 为 Agent-Proxy 配置连接 Gateway 的认证信息

Agent-Proxy 通过 Gateway 传输数据,在 Gateway 设置服务端认证后,AgentProxy 同样需要增加客户端认证配置等,配置方式如下:

kubectl edit deployment whizard-agent-proxy -n kubesphere-monitoring-system, 在 spec.template.spec.containers.args 中增加如下--gateway.config:

  1. spec:
  2. containers:
  3. - args:
  4. - --gateway.address=https://gateway-whizard-operated.kubesphere-monitoring-system.svc:9090 # Gateway 服务地址,注意为 https 地址
  5. - --tenant=host
  6. - |
  7. --gateway.config=
  8. basic_auth:
  9. username: "admin"
  10. password: "test"
  11. tls_config:
  12. insecure_skip_verify: true
  13. transport_config:
  14. max_idle_conns_per_host: 100
  15. image: kubesphere/whizard-monitoring-agent-proxy:latest
  16. imagePullPolicy: IfNotPresent
  17. name: agent-proxy