如何在 Bottlerocket、Ubuntu 或 Redhat 的主節點和工作節點上檢查 EKS Anywhere 叢集元件日誌?
我想在 Amazon Elastic Kubernetes Service (Amazon EKS) Anywhere 無法建立控制平面或資料平面機器時檢查元件日誌。
簡短描述
建立 Amazon EKS Anywhere 工作負載叢集期間,您可以檢查控制平面、etcd 和資料平面中每台機器的日誌。
若要檢查每台機器中的元件日誌,必須符合以下條件:
- EKS Anywhere 正在嘗試建立工作負載叢集,而且每台機器都正在進行建立程序。
- 每台機器都可讓您透過 SSH 在控制平面、etcd 和資料平面上登入。
解決方法
使用 $ 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-") 的機器。資料平面區段是指叢集名稱和工作節點名稱前綴為 ("cluster_name-worker_node_name-") 的機器。根據 ClusterConfig 設定的不同,etcd 可能沒有專用機器,而是在控制平面上啟動。
配備 BottleRocket OS 的機器
當您使用 SSH 登入時,也會同時登入管理員容器。為了進行偵錯,請先使用以下命令取得根權限,然後再檢查日誌:
$ 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
對於 etcd 日誌,請查看 /var/log/containers 目錄。
資料平面
對於 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 OS 的機器
為了進行偵錯,請先使用以下命令取得根權限,然後再檢查日誌:
$ 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 目錄中的日誌。
相關內容
- 已提問 1 年前lg...
- 已提問 1 年前lg...
- 已提問 19 天前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 7 個月前