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-configCopy 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 NoneCopy 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 developerCopy 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.213Copy 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 2048Copy 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.cnfCopy 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.cnfCopy 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.yamlCopy 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=trueCopy 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 地址改变,您必须更新此列表。