Direkt zum Inhalt

Wie bringe ich meine Worker-Knoten dazu, meinem Amazon-EKS-Cluster beizutreten?

Lesedauer: 5 Minute
0

Meine Worker-Knoten können meinem Amazon Elastic Kubernetes Service (Amazon EKS)-Cluster nicht beitreten.

Lösung

Gehe wie folgt vor, um Probleme mit Worker-Knoten zu beheben, die dem Amazon-EKS-Cluster nicht beitreten können:

Die Systems-Manager-Automatisierung verwenden, um Probleme zu identifizieren

Führe das Automatisierungs-Runbook AWSSupport-TroubleshootEKSWorkerNode aus, um Probleme zu identifizieren, die verhindern, dass Worker-Knoten dem Cluster beitreten.

Voraussetzungen:

  • Bei Worker-Knoten muss die AmazonSSMManagedInstanceCore-Richtlinie an ihre AWS Identity and Access Management (IAM)-Rolle angefügt sein
  • Worker-Knoten müssen laufen und über den Systems Manager zugänglich sein

Weitere Informationen zum Ausführen dieser Automatisierung findest du unter AWSSupport-TroubleshootEKSWorkerNode.

Die DNS-Konfiguration für die VPC überprüfen

Gehe wie folgt vor:

  1. Öffne die Amazon Virtual Private Cloud (Amazon VPC)-Konsole.
  2. Wähle im Navigationsbereich Deine VPCs aus.
  3. Wähle deine VPC aus.
  4. Wähle Aktionen und dann VPC-Einstellungen bearbeiten.
  5. Überprüfe die folgenden Einstellungen:
    Vergewissere dich, dass DNS-Auflösung aktiviert ist.
    Vergewissere dich, dass DNS-Hostnamen aktiviert ist.
  6. Wähle im Navigationsbereich DHCP-Optionssätze.
  7. Wähle deinen DHCP-Optionssatz aus.
  8. Überprüfe die folgenden Werte:
    Vergewissere dich, dass domain-name auf region.compute.internal gesetzt ist. Zum Beispiel us-west-2.compute.internal.
    Vergewissere dich, dass domain-name-servers auf AmazonProvidedDNS gesetzt ist.

Weitere Informationen zu DHCP-Optionssätzen findest du unter DHCP-Optionssätze in Amazon VPC.

IAM-Berechtigungen für Worker-Knoten überprüfen

Gehe wie folgt vor:

  1. Öffne die IAM-Konsole.
  2. Wähle im Navigationsbereich Rollen.
  3. Suche nach deiner IAM-Rolle für den Worker Knoten.
  4. Wähle die Rolle aus.
  5. Wähle die Registerkarte Berechtigungen aus.
  6. Stelle sicher, dass die folgenden verwalteten Richtlinien angefügt sind:
    AmazonEKSWorkerNodePolicy
    AmazonEC2ContainerRegistryPullOnly

Hinweis: Wenn du IRSA oder EKS Pod Identity nicht für die VPC-CNI verwendest, musst du auch die verwaltete Richtlinie AmazonEKS_CNI_Policy anfügen. Es hat sich jedoch bewährt, diese Richtlinie an eine separate Rolle anzufügen, die speziell für das Add-on der Amazon-VPC-CNI verwendet wird.

Weitere Informationen zum Erstellen der Knoten-IAM-Rolle findest du unter IAM-Rolle für den Amazon-EKS-Knoten.

Die Authentifizierung für Worker-Knoten konfigurieren

Wähle eine der folgenden Methoden, um die Authentifizierung zu konfigurieren:

Zugriffseinträge verwenden

Zugriffseinträge sind die empfohlene Methode, um Worker-Knoten Zugriff auf den Cluster zu gewähren.

  1. Öffne die Amazon-EKS-Konsole.
  2. Wähle im Navigationsbereich die Option Cluster.
  3. Wähle deinen Cluster aus.
  4. Wähle die Registerkarte Zugriff.
  5. Vergewissere dich, dass im Abschnitt Zugriffseinträge ein Eintrag für den ARN der Worker-Knoten-IAM-Rolle vorhanden ist.
  6. Falls kein Eintrag vorhanden ist, wähle Zugangseintrag erstellen.
  7. Gib für IAM-Prinzipal-ARN deinen ARN für die Worker-Knoten-IAM-Rolle ein, nicht den ARN des Instance-Profils.
  8. Wähle für Typ je nach Knotentyp EC2 Linux oder EC2 Windows aus.
  9. Wähle Weiter und dann Erstellen aus.

Weitere Informationen zu Zugriffseinträgen findest du unter IAM-Benutzern Zugriff auf Kubernetes mit EKS-Zugriffseinträgen gewähren.

aws-auth-ConfigMap verwenden

Wenn dein Cluster Zugriffseinträge nicht unterstützt, verwende die aws-auth-ConfigMap-Methode.

Weitere Informationen zur Konfiguration der aws-auth-ConfigMap findest du unter IAM-Benutzern Zugriff auf Kubernetes mit einer ConfigMap gewähren.

Konfiguration der Benutzerdaten überprüfen

Stelle bei selbstverwalteten Knoten sicher, dass die Benutzerdaten den richtigen Clusternamen und die richtige Konfiguration enthalten.

Die Benutzerdaten müssen das Bootstrap-Skript mit deinem Clusternamen enthalten:

#!/bin/bash
/etc/eks/bootstrap.sh my-cluster

Hinweis: Ersetze my-cluster durch deinen tatsächlichen Clusternamen.

Weitere Informationen zur Bootstrap-Skriptkonfiguration findest du unter Knoten-Bootstrapping.

Netzwerkkonnektivität überprüfen

Gehe wie folgt vor:

  1. Stelle sicher, dass Worker-Knoten den Cluster-API-Serverendpunkt erreichen können.
  2. Vergewissere dich, dass Knoten in öffentlichen Subnetzen öffentliche IP-Adressen zugewiesen sind.
  3. Stelle bei Knoten in privaten Subnetzen sicher, dass das Subnetz eine Route zu einem NAT-Gateway hat.
  4. Stelle sicher, dass Sicherheitsgruppen den folgenden Datenverkehr zulassen:
    Port 443 für die Cluster-API-Kommunikation
    Port 10250 für die Kubelet-Kommunikation
    Port 53, TCP und UDP für die DNS-Auflösung

Weitere Informationen zu Sicherheitsgruppenanforderungen findest du unter Amazon-EKS-Sicherheitsgruppenanforderungen für Cluster anzeigen.

VPC-Endpunkte für private Cluster überprüfen

Wenn der Cluster private Endpunkte verwendet, vergewissere dich, dass die folgenden VPC-Endpunkte vorhanden sind:

  • com.amazonaws.region.ec2
  • com.amazonaws.region.ecr.api
  • com.amazonaws.region.ecr.dkr
  • com.amazonaws.region.s3
  • com.amazonaws.region.sts

Weitere Informationen zu den Anforderungen an private Cluster findest du unter Bereitstellen von privaten Clustern mit eingeschränktem Internetzugang.

Cluster-Rollenkonfiguration überprüfen

Gehe wie folgt vor:

  1. Öffne die IAM-Konsole.
  2. Wähle im Navigationsbereich Rollen.
  3. Suche nach deiner Cluster-IAM-Rolle.
  4. Wähle die Rolle aus.
  5. Wähle die Registerkarte Vertrauensbeziehungen.
  6. Vergewissere dich, dass eks.amazonaws.com aufgrund der Vertrauensrichtlinie die Rolle übernehmen kann.
  7. Wähle die Registerkarte Berechtigungen aus.
  8. Vergewissere dich, dass die verwaltete Richtlinie AmazonEKSClusterPolicy angefügt ist.

Kubelet-Protokolle überprüfen

So überprüfst du Kubelet-Protokolle auf einem Worker-Knoten:

  1. Stelle mithilfe von SSH oder Systems Manager Session Manager eine Verbindung zum Worker-Knoten her.

  2. Führe den folgenden Befehl aus:

    sudo journalctl -u kubelet -f
  3. Suche nach Fehlermeldungen, die darauf hinweisen, warum der Knoten dem Cluster nicht beitreten kann.

Sicherstellen, dass der AWS-STS-Endpunkt aktiviert ist

Vergewissere dich, dass der AWS-STS-Endpunkt für deine AWS-Region für dein Konto aktiviert ist.

Weitere Informationen zur Aktivierung von STS-Endpunkten findest du unter Aktivieren und Deaktivieren von AWS STS in einer AWS-Region.

VPC- und Subnetz-Markierungen überprüfen

Gehe wie folgt vor:

  1. Öffne die Amazon-VPC-Konsole.
  2. Wähle im Navigationsbereich die Option Subnetze.
  3. Wähle das Subnetz aus, in dem die Worker-Knoten bereitgestellt werden.
  4. Wähle die Registerkarte Tags aus.
  5. Vergewissere dich, dass der folgende Tag vorhanden ist:
    Für Schlüssel kubernetes.io/cluster/my-cluster
    Für Wert „shared“ (freigegeben) oder „owned“ (im Besitz)

Hinweis: Ersetze my-cluster durch deinen tatsächlichen Clusternamen.

Ähnliche Informationen

Probleme mit Amazon-EKS-Clustern und -Knoten beheben

Überlegungen zu VPC und Subnetz