×

查看节点状态、资源使用情况和配置

查看集群节点健康状态、资源消耗统计信息和节点日志。此外,还可以查询各个节点上的kubelet状态。

先决条件
  • 您可以作为具有cluster-admin角色的用户访问集群。

  • 您已安装 OpenShift CLI (oc)。

步骤
  • 列出集群中所有节点的名称、状态和角色

    $ oc get nodes
  • 汇总集群中每个节点的 CPU 和内存使用情况

    $ oc adm top nodes
  • 汇总特定节点的 CPU 和内存使用情况

    $ oc adm top node my-node

查询节点上的 kubelet 状态

您可以查看集群节点健康状态、资源消耗统计信息和节点日志。此外,您还可以查询各个节点上的kubelet状态。

先决条件
  • 您可以作为具有cluster-admin角色的用户访问集群。

  • 您的 API 服务仍在运行。

  • 您已安装 OpenShift CLI (oc)。

步骤
  1. kubelet 使用每个节点上的 systemd 服务进行管理。通过在调试 Pod 中查询kubelet systemd 服务来查看 kubelet 的状态。

    1. 启动节点的调试 Pod

      $ oc debug node/my-node

      如果您在控制平面节点上运行oc debug,则可以在/etc/kubernetes/static-pod-resources/kube-apiserver-certs/secrets/node-kubeconfigs目录中找到管理kubeconfig文件。

    2. /host设置为调试 shell 中的根目录。调试 Pod 在 Pod 中的/host中挂载主机的根文件系统。通过将根目录更改为/host,您可以运行主机可执行路径中包含的二进制文件。

      # chroot /host

      运行 Red Hat Enterprise Linux CoreOS (RHCOS) 的 OpenShift Container Platform 4.17 集群节点是不可变的,并依赖于 Operators 来应用集群更改。不建议使用 SSH 访问集群节点。但是,如果 OpenShift Container Platform API 不可用,或者目标节点上的kubelet运行不正常,则oc操作将受到影响。在这种情况下,可以使用ssh core@<node>.<cluster_name>.<base_domain>代替。

    3. 检查节点上kubelet systemd 服务是否处于活动状态

      # systemctl is-active kubelet
    4. 输出更详细的kubelet.service状态摘要

      # systemctl status kubelet

查询集群节点日志

您可以收集各个集群节点上的journald单元日志和其他/var/log中的日志。

先决条件
  • 您可以作为具有cluster-admin角色的用户访问集群。

  • 您已安装 OpenShift CLI (oc)。

  • 您的 API 服务仍在运行。

  • 您可以通过 SSH 访问主机。

步骤
  1. 从 OpenShift Container Platform 集群节点查询kubelet journald单元日志。以下示例仅查询控制平面节点

    $ oc adm node-logs --role=master -u kubelet  (1)
    1 根据需要替换kubelet以查询其他单元日志。
  2. 收集集群节点上/var/log/下特定子目录中的日志。

    1. 检索/var/log/子目录中包含的日志列表。以下示例列出了所有控制平面节点上/var/log/openshift-apiserver/中的文件

      $ oc adm node-logs --role=master --path=openshift-apiserver
    2. 检查/var/log/子目录中的特定日志。以下示例输出所有控制平面节点上的/var/log/openshift-apiserver/audit.log内容

      $ oc adm node-logs --role=master --path=openshift-apiserver/audit.log
    3. 如果 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 集群节点是不可变的,并依赖于 Operators 来应用集群更改。不建议使用 SSH 访问集群节点。在尝试通过 SSH 收集诊断数据之前,请先查看运行oc adm must gather和其他oc命令收集的数据是否足够。但是,如果 OpenShift Container Platform API 不可用,或者目标节点上的 kubelet 运行不正常,则oc操作将受到影响。在这种情况下,可以使用ssh core@<node>.<cluster_name>.<base_domain>