Wie überprüfe ich die Protokolle der EKS Anywhere-Clusterkomponenten auf Primär- und Worker-Knoten für BottleRocket, Ubuntu oder Redhat?

Lesedauer: 5 Minute
0

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.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr