5.7. 查询集群节点 journal 日志
您可以在独立集群节点的 /var/log
中收集 journald
单元日志和其他日志。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 - API 服务仍然可以正常工作。
-
已安装 OpenShift CLI(
oc
)。 - 您需要有到主机的 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.12 集群节点不可变,它依赖于 Operator 来应用集群更改。不建议使用 SSH 访问集群节点。在尝试通过 SSH 收集诊断数据前,请运行
oc adm must gather
和其他oc
命令看它们是否可以提供足够的数据。但是,如果 OpenShift Container Platform API 不可用,或 kubelet 在目标节点上无法正常工作,oc
操作将会受到影响。在这种情况下,可以使用ssh core@<node>.<cluster_name>.<base_domain>
来访问节点。