5.4. 配置 etcd 监控
如果 etcd
服务没有正确运行,则整个 OpenShift Container Platform 集群的成功操作将处于危险之中。因此,最好为 etcd
配置监控。
按照以下步骤配置 etcd
监控 :
流程
验证监控堆栈是否正在运行:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开集群监控堆栈的配置文件:
oc -n openshift-monitoring edit configmap cluster-monitoring-config
$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
config.yaml: |+
下,添加etcd
部分。如果在 master 节点上运行静态 pod 的
etcd
,您可以使用选择器指定etcd
节点:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果在单独的主机上运行
etcd
,则需要使用 IP 地址指定节点:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果
etcd
节点的 IP 地址有变化,您必须更新此列表。
验证
etcd
服务监控器现在是否正在运行:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
etcd
服务监控器。
etcd
服务监控器最多可能需要一分钟才能启动。现在,您可以进入 Web 界面来查看有关
etcd
监控状态的更多信息。要获取 URL,请运行:
oc -n openshift-monitoring get routes
$ oc -n openshift-monitoring get routes NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD ... prometheus-k8s prometheus-k8s-openshift-monitoring.apps.msvistun.origin-gce.dev.openshift.com prometheus-k8s web reencrypt None
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
https
,导航到为prometheus-k8s
列出的 URL。登录。
确保该用户属于
cluster-monitoring-view
角色。此角色提供查看集群监控 UI 的访问权限。例如,要将用户
developer
添加到cluster-monitoring-view
角色中,请运行:oc adm policy add-cluster-role-to-user cluster-monitoring-view developer
$ oc adm policy add-cluster-role-to-user cluster-monitoring-view developer
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在 Web 界面中,以属于
cluster-monitoring-view
角色的用户身份登录。 单击 Status,然后单击 Targets。如果您看到
etcd
条目,则会监控etcd
。虽然
etcd
被监控,但 Prometheus 还无法通过etcd
进行身份验证,因此无法收集指标数据。针对
etcd
配置 Prometheus 身份验证:将
/etc/etcd/ca/ca.crt
和/etc/etcd/ca/ca.key
凭证文件从 master 节点复制到本地机器:ssh -i gcp-dev/ssh-privatekey cloud-user@35.237.54.213
$ ssh -i gcp-dev/ssh-privatekey cloud-user@35.237.54.213
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建包含以下内容的
openssl.cnf
文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成
etcd.key
私钥文件:openssl genrsa -out etcd.key 2048
$ openssl genrsa -out etcd.key 2048
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成
etcd.csr
证书签名请求文件:openssl req -new -key etcd.key -out etcd.csr -subj "/CN=etcd" -config openssl.cnf
$ openssl req -new -key etcd.key -out etcd.csr -subj "/CN=etcd" -config openssl.cnf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成
etcd.crt
证书文件:openssl x509 -req -in etcd.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out etcd.crt -days 365 -extensions v3_req -extfile openssl.cnf
$ openssl x509 -req -in etcd.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out etcd.crt -days 365 -extensions v3_req -extfile openssl.cnf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将凭证置于 OpenShift Container Platform 使用的格式:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这会创建 etcd-cert-secret.yaml 文件
将凭证文件应用到集群:
oc apply -f etcd-cert-secret.yaml
$ oc apply -f etcd-cert-secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
现在您已配置了身份验证,请再次访问 Web 界面的 Targets 页面。验证
etcd
现在是否正确监控。可能需要几分钟后更改才会生效。如果您希望在更新 OpenShift Container Platform 时自动更新
etcd
监控,请将 Ansible 清单文件中的这个变量设置为true
:openshift_cluster_monitoring_operator_etcd_enabled=true
openshift_cluster_monitoring_operator_etcd_enabled=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您在单独的主机上运行
etcd
,请按照 IP 地址使用此 Ansible 变量指定节点:openshift_cluster_monitoring_operator_etcd_hosts=[<address1>, <address2>, ...]
openshift_cluster_monitoring_operator_etcd_hosts=[<address1>, <address2>, ...]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果
etcd
节点的 IP 地址改变,您必须更新此列表。