如何查看 BottleRocket、Ubuntu 或 Redhat 主节点和 Worker 节点上的 EKS Anywhere 集群组件日志?
我希望能在 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-apiserver、kube-controller-manager、kube-scheduler 和 kube-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-apiserver、kube-controller-manager、kube-scheduler 和 kube-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 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前