Wie überprüfe ich die Protokolle der EKS Anywhere-Clusterkomponenten auf Primär- und Worker-Knoten für BottleRocket, Ubuntu oder Redhat?
Ich möchte die Komponentenprotokolle überprüfen, wenn die Erstellung einer Steuerebene oder von Maschinen auf Datenebene in Amazon Elastic Kubernetes Service (Amazon EKS) Anywhere fehlschlägt.
Kurzbeschreibung
Während der Erstellung eines Amazon EKS Anywhere-Workload-Clusters können Sie die Protokolle für jede Maschine auf der Steuerebene, etcd und der Datenebene überprüfen.
Um die Komponentenprotokolle auf jeder Maschine zu überprüfen, müssen die folgenden Bedingungen erfüllt sein:
- EKS Anywhere versucht, einen Workload-Cluster zu erstellen, und jede einzelne Maschine befindet sich im Erstellungsprozess.
- Auf jeder Maschine können Sie sich über SSH auf der Steuerebene, etcd und der Datenebene anmelden.
Behebung
Überprüfen Sie den Status jeder Maschine mit dem Befehl $ kubectl get machines.
Beispiel für einen Verwaltungscluster:
$ 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
Nachdem Sie den Status Ihrer Maschinen überprüft und sichergestellt haben, dass Sie deren Komponentenprotokolle überprüfen können, melden Sie sich über SSH bei der jeweiligen Maschine an. Im folgenden Beispiel ist user der SSH-Login-Benutzer, der in der MachineConfig der einzelnen Anbieter angegeben ist:
$ ssh -i private_key_file user@Machine_IP_address
Führen Sie je nach Betriebssystem (OS) Ihres Computers die entsprechenden Schritte aus, um die Komponentenprotokolle zu überprüfen.
**Hinweis:**Der Abschnitt Steuerebene bezieht sich auf eine Maschine mit einem Namen, dem das Clusternamenspräfix („cluster_name-“) zugewiesen ist. Der Abschnitt etcd bezieht sich auf eine Maschine mit einem Namen, der den Clusternamen und das etcd-Präfix („cluster_name-etcd-“) enthält. Der Abschnitt Datenebene bezieht sich auf eine Maschine mit einem Namen, der den Clusternamen und das Worker-Knotennamen-Präfix („cluster_name-worker_node_name-“) enthält. Abhängig von den ClusterConfig-Einstellungen hat etcd möglicherweise keinen dedizierten Computer und wird stattdessen auf der Steuerebene gestartet.
Maschinen mit BottleRocket OS
Wenn Sie sich mit SSH anmelden, melden Sie sich auch im Admin-Container an. Besorgen Sie sich zu Debugging-Zwecken Root-Berechtigungen mit dem folgenden Befehl, bevor Sie die Protokolle überprüfen:
$ sudo sheltie
Steuerebene
Führen Sie für das Kubelet-Protokoll den folgenden Befehl aus:
# journalctl -u kubelet.service --no-pager
Führen Sie für das Containerd-Protokoll den folgenden Befehl aus:
# journalctl -u containerd.service --no-pager
Führen Sie für das Maschineninitialisierungsprotokoll den folgenden Befehl aus:
# journalctl _COMM=host-ctr --no-pager
Überprüfen Sie für jedes Container-Protokoll die Protokolle im Verzeichnis /var/log/containers.
Überprüfen Sie für kube-apiserver, kube-controller-manager, kube-scheduler und kube-vip manifests von Kubernetes die Dateien im Verzeichnis /etc/kubernetes/manifest.
etcd
Führen Sie für das Containerd-Protokoll den folgenden Befehl aus:
# journalctl -u containerd.service --no-pager
Führen Sie für das Maschineninitialisierungsprotokoll den folgenden Befehl aus:
# journalctl _COMM=host-ctr --no-pager
Das etcd-Log finden Sie im Verzeichnis /var/log/containers.
Datenebene
Führen Sie für das Kubelet-Protokoll den folgenden Befehl aus:
# journalctl -u kubelet.service --no-pager
Führen Sie für das Containerd-Protokoll den folgenden Befehl aus:
# journalctl -u containerd.service --no-pager
Führen Sie für das Maschineninitialisierungsprotokoll den folgenden Befehl aus:
# journalctl _COMM=host-ctr
Überprüfen Sie für jedes Container-Protokoll die Protokolle im Verzeichnis /var/log/containers.
**Hinweis:**Wenn Sie AWS Snow als Anbieter verwenden, überprüfen Sie auch die Ergebnisse der folgenden Befehle auf jedem Knoten:
# journalctl -u bootstrap-containers@bottlerocket-bootstrap-snow.service # systemctl status bootstrap-containers@bottlerocket-bootstrap-snow
Maschinen mit Ubuntu oder Red Hat Enterprise Linux OS
Besorgen Sie sich zu Debugging-Zwecken Root-Berechtigungen mit dem folgenden Befehl, bevor Sie die Protokolle überprüfen:
$ sudo su -
Steuerebene
Führen Sie für das Kubelet-Protokoll den folgenden Befehl aus:
# journalctl -u kubelet.service --no-pager
Führen Sie für das Containerd-Protokoll den folgenden Befehl aus:
# journalctl -u containerd.service --no-pager
Führen Sie für das Maschineninitialisierungsprotokoll den folgenden Befehl aus:
# cat /var/log/cloud-init-output.log
Überprüfen Sie für jedes Container-Protokoll die Protokolle im Verzeichnis /var/log/containers.
Führen Sie für Benutzerdaten, die beim Start der Maschine initiiert werden, den folgenden Befehl aus:
# cat /var/lib/cloud/instance/user-data.txt
Überprüfen Sie für kube-apiserver, kube-controller-manager, kube-scheduler und kube-vip manifests von Kubernetes die Dateien im Verzeichnis /etc/kubernetes/manifest.
etcd
Führen Sie für das etcd-Protokoll den folgenden Befehl aus:
# journalctl -u etcd.service --no-pager
Führen Sie für das Maschineninitialisierungsprotokoll den folgenden Befehl aus:
# cat /var/log/cloud-init-output.log
Führen Sie für Benutzerdaten, die beim Start der Maschine initiiert werden, den folgenden Befehl aus:
# cat /var/lib/cloud/instance/user-data.txt
Datenebene
Führen Sie für das Kubelet-Protokoll den folgenden Befehl aus:
# journalctl -u kubelet.service --no-pager
Führen Sie für das Containerd-Protokoll den folgenden Befehl aus:
# journalctl -u containerd.service --no-pager
Führen Sie für das Maschineninitialisierungsprotokoll den folgenden Befehl aus:
# cat /var/log/cloud-init-output.log
Führen Sie für Benutzerdaten, die beim Start der Maschine initiiert werden, den folgenden Befehl aus:
cat /var/lib/cloud/instance/user-data.txt
Überprüfen Sie für jedes Container-Protokoll die Protokolle im Verzeichnis /var/log/containers.
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 8 Monaten
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor einem Jahr
- Wie gewähre ich anderen IAM-Benutzern und -Rollen nach der Cluster-Erstellung in Amazon EKS Zugriff?AWS OFFICIALAktualisiert vor 3 Jahren