跳到主要内容

Whizard-monitoring-gateway 认证

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

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

apiVersion: monitoring.whizard.io/v1alpha1
kind: Gateway
metadata:
labels:
monitoring.whizard.io/service: kubesphere-monitoring-system.whizard
name: whizard
namespace: kubesphere-monitoring-system
spec:
debug: true
enabledTenantsAdmission: true
image: kubesphere/whizard-monitoring-gateway:latest
logFormat: logfmt
logLevel: info
nodePort: 30990
webConfig:
httpServerTLSConfig: # 配置 TLS 证书, 证书生成创建参考 2.1
certSecret:
name: whizard-tls-assets
key: tls.crt
keySecret:
name: whizard-tls-assets
key: tls.key
basicAuthUsers: # 配置 Basic Auth 认证,用户名密码存储在 Secret 中,创建参考 2.2
- username:
name: whizard-basicauth-secret
key: username
password:
name: whizard-basicauth-secret
key: password

1.1 生成 TLS 证书

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

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

1.2 创建用户登录的 Secret

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

kind: Secret
apiVersion: v1
metadata:
name: whizard-basicauth-secret
namespace: kubesphere-monitoring-system
data:
password: JDJiJDEyJGhOZjJsU3N4Zm0wLmk0YS4xa1ZwU09WeUJDZklCNTFWUmpnQlV5djZrZG55VGxnV2o4MUF5 # test
username: YWRtaW4= # admin
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:

    spec:
containers:
- args:
- --gateway.address=https://gateway-whizard-operated.kubesphere-monitoring-system.svc:9090 # Gateway 服务地址,注意为 https 地址
- --tenant=host
- |
--gateway.config=
basic_auth:
username: "admin"
password: "test"
tls_config:
insecure_skip_verify: true
transport_config:
max_idle_conns_per_host: 100
image: kubesphere/whizard-monitoring-agent-proxy:latest
imagePullPolicy: IfNotPresent
name: agent-proxy