7.2. 验证节点健康状况
7.2.1. 查看节点状态、资源使用量和配置
					查看集群节点健康状况、资源消耗统计和节点日志。另外,在单个节点上查询 kubelet 状态。
				
先决条件
- 
							您可以使用具有 cluster-admin角色的用户访问集群。
- 
							已安装 OpenShift CLI(oc)。
流程
- 列出集群中所有节点的名称、状态和角色: - oc get nodes - $ oc get nodes- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 总结集群中每个节点的 CPU 和内存使用情况: - oc adm top nodes - $ oc adm top nodes- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 总结特定节点的 CPU 和内存使用情况: - oc adm top node my-node - $ oc adm top node my-node- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
7.2.2. 在节点上查询 kubelet 状态
					您可以查看集群节点健康状况、资源消耗统计和节点日志。另外,您还可以在单个节点上查询 kubelet 状态。
				
先决条件
- 
							您可以使用具有 cluster-admin角色的用户访问集群。
- API 服务仍然可以正常工作。
- 
							已安装 OpenShift CLI(oc)。
流程
- kubelet 通过每个节点上的 systemd 服务来管理。通过在 debug pod 中查询 - kubeletsystemd 服务来查看 kubelet 的状态。- 为节点启动 debug pod: - oc debug node/my-node - $ oc debug node/my-node- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 如果您在 control plane 节点上运行 - oc debug,可以在- /etc/kubernetes/static-pod-resources/kube-apiserver-certs/secrets/node-kubeconfigs目录中找到管理- kubeconfig文件。
- 将 - /host设置为 debug shell 中的根目录。debug pod 在 pod 中的- /host中挂载主机的 root 文件系统。将根目录改为- /host,您可以运行主机可执行路径中包含的二进制文件:- chroot /host - # chroot /host- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 运行 Red Hat Enterprise Linux CoreOS (RHCOS) 的 OpenShift Container Platform 4.17 集群节点不可变,它依赖于 Operator 来应用集群更改。不建议使用 SSH 访问集群节点。但是,如果 OpenShift Container Platform API 不可用,或者 - kubelet在目标节点上无法正常工作,- oc操作将会受到影响。在这种情况下,可以使用- ssh core@<node>.<cluster_name>.<base_domain>来访问节点。
- 检查 - kubeletsystemd 服务是否在该节点上活跃:- systemctl is-active kubelet - # systemctl is-active kubelet- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 输出更详细的 - kubelet.service状态概述:- systemctl status kubelet - # systemctl status kubelet- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
7.2.3. 查询集群节点 journal 日志
					您可以在独立集群节点的 /var/log 中收集 journald 单元日志和其他日志。
				
先决条件
- 
							您可以使用具有 cluster-admin角色的用户访问集群。
- 
							已安装 OpenShift CLI(oc)。
- API 服务仍然可以正常工作。
- 您需要有到主机的 SSH 访问权限。
流程
- 查询 OpenShift Container Platform 集群节点的 - kubelet- journald单元日志。以下示例仅查询 control plane 节点:- oc adm node-logs --role=master -u kubelet - $ oc adm node-logs --role=master -u kubelet- 1 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 根据情况替换kubelet以查询其他单元日志。
 
- 从集群节点上 - /var/log/下的特定子目录收集日志。- 获取 - /var/log/子目录中所含的日志列表。以下示例列出所有 control plane 节点上的- /var/log/openshift-apiserver/中的文件:- oc adm node-logs --role=master --path=openshift-apiserver - $ oc adm node-logs --role=master --path=openshift-apiserver- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 检查 - /var/log/子目录中的特定日志。以下示例输出来自所有 control plane 节点的- /var/log/openshift-apiserver/audit.log内容:- oc adm node-logs --role=master --path=openshift-apiserver/audit.log - $ oc adm node-logs --role=master --path=openshift-apiserver/audit.log- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 如果 API 无法正常工作,请使用 SSH 来查看每个节点上的日志。以下示例是 - /var/log/openshift-apiserver/audit.log的尾部的内容:- ssh core@<master-node>.<cluster_name>.<base_domain> sudo tail -f /var/log/openshift-apiserver/audit.log - $ ssh core@<master-node>.<cluster_name>.<base_domain> sudo tail -f /var/log/openshift-apiserver/audit.log- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 注意- 运行 Red Hat Enterprise Linux CoreOS (RHCOS) 的 OpenShift Container Platform 4.17 集群节点不可变,它依赖于 Operator 来应用集群更改。不建议使用 SSH 访问集群节点。在尝试通过 SSH 收集诊断数据前,请运行 - oc adm must gather和其他- oc命令看它们是否可以提供足够的数据。但是,如果 OpenShift Container Platform API 不可用,或 kubelet 在目标节点上无法正常工作,- oc操作将会受到影响。在这种情况下,可以使用- ssh core@<node>.<cluster_name>.<base_domain>来访问节点。