5.7. 查询集群节点 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 1
- 1
- 根据情况替换
kubelet
以查询其他单元日志。
从集群节点上
/var/log/
下的特定子目录收集日志。获取
/var/log/
子目录中所含的日志列表。以下示例列出所有 control plane 节点上的/var/log/openshift-apiserver/
中的文件:$ oc adm node-logs --role=master --path=openshift-apiserver
检查
/var/log/
子目录中的特定日志。以下示例输出来自所有 control plane 节点的/var/log/openshift-apiserver/audit.log
内容:$ oc adm node-logs --role=master --path=openshift-apiserver/audit.log
如果 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
注意运行 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>
来访问节点。