如何查看 BottleRocket、Ubuntu 或 Redhat 主节点和 Worker 节点上的 EKS Anywhere 集群组件日志?

2 分钟阅读
0

我希望能在 Amazon Elastic Kubernetes Service (Amazon EKS) Anywhere 中创建控制面板或数据面板计算机失败时查看组件日志。

简短描述

在创建 Amazon EKS Anywhere 工作负载集群期间,您可以查看控制面板、etcd 和数据面板中每台计算机的日志。

要查看每台计算机上的组件日志,必须满足以下条件:

  • EKS Anywhere 正在尝试创建工作负载集群,并且每台计算机都处于创建进程中。
  • 每台计算机都允许您在控制面板、etcd 和数据面板上通过 SSH 登录。

解决方法

使用 $ kubectl get machines 命令查看每台计算机的状态。

管理集群示例:

$ kubectl get machines -A
NAMESPACE     NAME                         CLUSTER   NODENAME      PROVIDERID                                       PHASE     AGE     VERSION
eksa-system   mgmt-etcd-bwnfq              mgmt                    vsphere://4230b0d5-7b14-4753-bd41-3dbe4987dbc4   Running   5h26m
eksa-system   mgmt-etcd-bzm77              mgmt                    vsphere://4230b278-1fb4-f539-0afe-9f12afebf86b   Running   5h26m
eksa-system   mgmt-etcd-dzww2              mgmt                    vsphere://42309b5a-b0ad-58a5-1e40-5fe39a3d1640   Running   5h26m
eksa-system   mgmt-jw8dl                   mgmt      10.4.11.19    vsphere://42304059-c833-48d3-9856-7f902c852743   Running   5h26m   v1.24.9-eks-1-24-7
eksa-system   mgmt-md-0-66b858b477-6cbcz   mgmt      10.4.35.76    vsphere://4230efad-5d42-c570-36c5-bf9ee92ee011   Running   5h26m   v1.24.9-eks-1-24-7
eksa-system   mgmt-md-0-66b858b477-8h88c   mgmt      10.4.19.38    vsphere://4230edbf-db9b-3ae9-a2e6-8421e06863fb   Running   5h26m   v1.24.9-eks-1-24-7
eksa-system   mgmt-s7fb7                   mgmt      10.4.67.152   vsphere://42301d6f-feb1-d967-9750-148d0823c7b5   Running   5h26m   v1.24.9-eks-1-24-7

查看计算机的状态并确认可以查看其组件日志后,通过 SSH 登录到每台计算机。在以下示例中,user 是在每个提供商的 MachineConfig 中指定的 SSH 登录用户:

$ ssh -i private_key_file user@Machine_IP_address

根据您计算机的操作系统 (OS),按照相关步骤查看其组件日志。

注意:****控制面板部分是指名称具有集群名称前缀(“cluster_name-”)的计算机。etcd 部分是指名称具有集群名称和 etcd 前缀(“cluster_name-etcd-”)的计算机。数据面板部分是指名称具有集群名称和 Worker 节点名称前缀(“cluster_name-worker_node_name-”)的计算机。根据 ClusterConfig 设置,etcd 可能没有专用计算机,而是在控制面板上启动。

装有 BottleRocket 操作系统的计算机

使用 SSH 登录时,您还会登录到管理容器。出于调试目的,请在查看日志之前使用以下命令获取 root 权限:

$ sudo sheltie

控制面板

对于 kubelet 日志,运行以下命令:

# journalctl -u kubelet.service --no-pager

对于容器日志,运行以下命令:

# journalctl -u containerd.service --no-pager

对于计算机初始化日志,运行以下命令:

# journalctl _COMM=host-ctr --no-pager

对于每个容器日志,查看 /var/log/containers 目录下的日志。

对于 Kubernetes kube-apiserverkube-controller-managerkube-schedulerkube-vip manifests,查看 /etc/kubernetes/manifest 目录下的文件。

etcd

对于容器日志,运行以下命令:

# journalctl -u containerd.service --no-pager

对于计算机初始化日志,请运行以下命令:

# journalctl _COMM=host-ctr --no-pager

请在 /var/log/containers 目录下查找 etcd 日志。

数据面板

对于 kubelet 日志,运行以下命令:

# journalctl -u kubelet.service --no-pager

对于容器日志,运行以下命令:

# journalctl -u containerd.service --no-pager

对于计算机初始化日志,运行以下命令:

# journalctl _COMM=host-ctr

对于每个容器日志,查看 /var/log/containers 目录下的日志。

**注意:**如果您使用 AWS Snow 作为提供商,则还要在每个节点上查看以下命令的结果:

# journalctl -u bootstrap-containers@bottlerocket-bootstrap-snow.service
# systemctl status bootstrap-containers@bottlerocket-bootstrap-snow

装有 Ubuntu 或 Red Hat Enterprise Linux 操作系统的计算机

出于调试目的,请在查看日志之前使用以下命令获取 root 权限:

$ sudo su -

控制面板

对于 kubelet 日志,运行以下命令:

# journalctl -u kubelet.service --no-pager

对于容器日志,运行以下命令:

# journalctl -u containerd.service --no-pager

对于计算机初始化日志,运行以下命令:

# cat /var/log/cloud-init-output.log

对于每个容器日志,查看 /var/log/containers 目录下的日志。

对于在计算机启动时启动的用户数据,运行以下命令:

# cat /var/lib/cloud/instance/user-data.txt

对于 Kubernetes kube-apiserverkube-controller-managerkube-schedulerkube-vip manifests,查看 /etc/kubernetes/manifest 目录下的文件。

etcd

对于 etcd 日志,运行以下命令:

# journalctl -u etcd.service --no-pager

对于计算机初始化日志,运行以下命令:

# cat /var/log/cloud-init-output.log

对于计算机启动时启动的用户数据,运行以下命令:

# cat /var/lib/cloud/instance/user-data.txt

数据面板

对于 kubelet 日志,运行以下命令:

# journalctl -u kubelet.service --no-pager

对于容器日志,运行以下命令:

# journalctl -u containerd.service --no-pager

对于计算机初始化日志,运行以下命令:

# cat /var/log/cloud-init-output.log

对于计算机启动时启动的用户数据,运行以下命令:

cat /var/lib/cloud/instance/user-data.txt

对于每个容器日志,查看 /var/log/containers 目录下的日志。

AWS 官方
AWS 官方已更新 1 年前