Hybridknoten verbinden - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Um zu diesem Benutzerhandbuch beizutragen, klicken Sie auf den Link Diese Seite auf GitHub bearbeiten, der sich im rechten Bereich jeder Seite befindet.

Hybridknoten verbinden

Anmerkung

Die folgenden Schritte gelten für Hybridknoten mit kompatiblen Betriebssystemen außer Bottlerocket. Anweisungen zum Verbinden eines Hybridknotens mit Bottlerocket finden Sie unter Hybridknoten mit Bottlerocket verbinden.

In diesem Thema wird beschrieben, wie Hybridknoten mit einem Amazon-EKS-Cluster verbunden werden. Nachdem Ihre Hybridknoten dem Cluster beigetreten sind, werden sie in der Amazon-EKS-Konsole und in Kubernetes-kompatiblen Tools wie kubectl mit dem Status „Nicht bereit“ angezeigt. Nachdem Sie die Schritte auf dieser Seite abgeschlossen haben, fahren Sie mit CNI für Hybridknoten konfigurieren fort, um Ihre Hybridknoten für die Ausführung von Anwendungen vorzubereiten.

Voraussetzungen

Bevor Sie Hybridknoten mit Ihrem Amazon-EKS-Cluster verbinden, stellen Sie sicher, dass Sie die erforderlichen Schritte abgeschlossen haben.

Schritt 1: Hybridknoten-CLI (nodeadm) auf jedem On-Premises-Host installieren

Wenn Sie die Amazon-EKS-Hybrid-Nodes-CLI (nodeadm) in Ihre vorgefertigten Betriebssystem-Images integrieren, können Sie diesen Schritt überspringen. Weitere Informationen zur Hybridknotenversion von nodeadm finden Sie unter nodeadm-Referenz für Hybridknoten.

Die Hybridknoten-Version von nodeadm wird in Amazon S3 gehostet und von Amazon CloudFront bereitgestellt. Um die Installation auf jedem On-Premises-Host nodeadm durchzuführen, können Sie den folgenden Befehl von Ihren On-Premises-Hosts aus ausführen.

Für x86_64 hosts:

curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/amd64/nodeadm'

Für ARM-Hosts

curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/arm64/nodeadm'

Fügen Sie der heruntergeladenen Binärdatei auf jedem Host die Berechtigung zum Ausführen von Dateien hinzu.

chmod +x nodeadm

Schritt 2: Die Abhängigkeiten der Hybridknoten mit nodeadm installieren

Wenn Sie die Abhängigkeiten der Hybridknoten in vorgefertigten Betriebssystem-Images installieren, können Sie diesen Schritt überspringen. Mit dem nodeadm install-Befehl können Sie alle für Hybridknoten erforderlichen Abhängigkeiten installieren. Die Abhängigkeiten der Hybridknoten beinhalten Containerd, kubelet, kubectl und AWS-SSM- oder AWS-IAM-Roles-Anywhere-Komponenten. Weitere Informationen zu den von nodeadm-Referenz für Hybridknoten installierten Komponenten und Dateispeicherorten finden Sie unter nodeadm install. Weitere Informationen zu den Domains, die in Ihrer On-Premises-Firewall für den nodeadm install-Prozess zugelassen werden müssen, finden Sie unter Vorbereitung der Vernetzung für Hybridknoten für Hybridknoten.

Führen Sie den folgenden Befehl aus, um die Abhängigkeiten der Hybridknoten auf Ihrem On-Premises-Host zu installieren. Der nachfolgende Befehl muss von einem Benutzer ausgeführt werden, der über sudo-/root-Zugriff auf Ihren Host verfügt.

Wichtig

Die Hybridknoten-CLI (nodeadm) muss mit einem Benutzer ausgeführt werden, der über sudo/root-Zugriff auf Ihren Host verfügt.

  • Ersetzen Sie K8S_VERSION durch die Kubernetes-Nebenversion Ihres Amazon-EKS-Clusters, z. B. 1.31. Eine Liste der unterstützten Kubernetes-Versionen finden Sie unter Unterstützte Versionen von Amazon EKS.

  • Ersetzen Sie CREDS_PROVIDER durch den von Ihnen verwendeten On-Premises-Anmeldeinformationsanbieter. Gültige Werte sind ssm für AWS SSM und iam-ra für AWS IAM Roles Anywhere.

nodeadm install K8S_VERSION --credential-provider CREDS_PROVIDER

Schritt 3: Hybridknoten mit Ihrem Cluster verbinden

Bevor Sie Ihre Hybridknoten mit Ihrem Cluster verbinden, stellen Sie sicher, dass Sie in Ihrer On-Premises-Firewall und in der Sicherheitsgruppe für Ihren Cluster den erforderlichen Zugriff für die Kommunikation zwischen der Amazon-EKS-Steuerebene und dem Hybridknoten zugelassen haben. Die meisten Probleme in diesem Schritt stehen im Zusammenhang mit der Firewall-Konfiguration, der Konfiguration der Sicherheitsgruppe oder der Konfiguration der IAM-Rolle für Hybridknoten.

Wichtig

Die Hybridknoten-CLI (nodeadm) muss mit einem Benutzer ausgeführt werden, der über sudo/root-Zugriff auf Ihren Host verfügt.

  1. Erstellen Sie auf jedem Host eine nodeConfig.yaml-Datei mit den Werten für Ihre Bereitstellung. Eine vollständige Beschreibung der verfügbaren Konfigurationseinstellungen finden Sie unter nodeadm-Referenz für Hybridknoten. Wenn Ihre IAM-Rolle für Hybridknoten über keine Berechtigung für die eks:DescribeCluster-Aktion verfügt, müssen Sie Ihren Kubernetes-API-Endpunkt, Ihr Cluster-CA-Bundle und Ihre Kubernetes-Service-IPv4-CIDR im Cluster-Abschnitt Ihres nodeConfig.yaml übergeben.

    1. Verwenden Sie das nachfolgende nodeConfig.yaml-Beispiel, wenn Sie AWS-SSM-Hybridaktivierungen für Ihren On-Premises-Anmeldeinformationsanbieter verwenden.

      1. Ersetzen Sie CLUSTER_NAME mit dem Namen Ihres Clusters.

      2. Ersetzen Sie AWS_REGION mit der AWS-Region, in der Ihr Cluster gehostet wird. Beispiel, us-west-2.

      3. Ersetzen Sie ACTIVATION_CODE durch den Aktivierungscode, den Sie beim Erstellen Ihrer AWS-SSM-Hybridaktivierung erhalten haben. Weitere Informationen finden Sie unter Vorbereitung der Anmeldeinformationen für Hybridknoten.

      4. Ersetzen Sie ACTIVATION_ID durch die Aktivierungs-ID, die Sie beim Erstellen Ihrer AWS-SSM-Hybridaktivierung erhalten haben. Sie können diese Informationen von der AWS-Systems-Manager-Konsole oder über den aws ssm describe-activations-Befehl der AWS-CLI abrufen.

        apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: CLUSTER_NAME region: AWS_REGION hybrid: ssm: activationCode: ACTIVATION_CODE activationId: ACTIVATION_ID
    2. Verwenden Sie das nachfolgende nodeConfig.yaml-Beispiel, wenn Sie AWS IAM Roles Anywhere für Ihren On-Premises-Anmeldeinformationsanbieter verwenden.

      1. Ersetzen Sie CLUSTER_NAME mit dem Namen Ihres Clusters.

      2. Ersetzen Sie AWS_REGION mit der AWS-Region, in der Ihr Cluster gehostet wird. Beispiel, us-west-2.

      3. Ersetzen Sie NODE_NAME durch den Namen Ihres Knotens. Der Knotenname muss mit dem CN des Zertifikats auf dem Host übereinstimmen, wenn Sie die Vertrauensrichtlinie Ihrer IAM-Rolle für Hybridknoten mit der "sts:RoleSessionName": "${aws:PrincipalTag/x509Subject/CN}"-Ressourcenbedingung konfiguriert haben. Der von Ihnen verwendete nodeName darf nicht länger als 64 Zeichen sein.

      4. Ersetzen Sie TRUST_ANCHOR_ARN durch die ARN des Trust Anchors, den Sie in den Schritten zum Vorbereiten der Anmeldeinformationen für Hybridknoten konfiguriert haben.

      5. Ersetzen Sie PROFILE_ARN durch die ARN des Trust Anchors, den Sie in den Schritten für Vorbereitung der Anmeldeinformationen für Hybridknoten konfiguriert haben.

      6. Ersetzen Sie ROLE_ARN durch die ARN Ihrer IAM-Rolle für Hybridknoten.

      7. Ersetzen Sie CERTIFICATE_PATH durch den Pfad auf Ihrer Festplatte zu Ihrem Knotenzertifikat. Wenn Sie keinen Pfad angeben, wird standardmäßig /etc/iam/pki/server.pem verwendet.

      8. Ersetzen Sie KEY_PATH durch den Pfad auf Ihrer Festplatte zu Ihrem privaten Zertifikatsschlüssel. Wenn Sie keinen Pfad angeben, wird standardmäßig /etc/iam/pki/server.key verwendet.

        apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: CLUSTER_NAME region: AWS_REGION hybrid: iamRolesAnywhere: nodeName: NODE_NAME trustAnchorArn: TRUST_ANCHOR_ARN profileArn: PROFILE_ARN roleArn: ROLE_ARN certificatePath: CERTIFICATE_PATH privateKeyPath: KEY_PATH
  2. Führen Sie den nodeadm init-Befehl mit Ihrem nodeConfig.yaml aus, um Ihre Hybridknoten mit Ihrem Amazon-EKS-Cluster zu verbinden.

    nodeadm init -c file://nodeConfig.yaml

Wenn der obige Befehl erfolgreich abgeschlossen wurde, ist Ihr Hybridknoten Ihrem Amazon-EKS-Cluster beigetreten. Sie können dies in der Amazon-EKS-Konsole überprüfen, indem Sie zur Registerkarte „Datenverarbeitung“ für Ihren Cluster navigieren (stellen Sie sicher, dass der IAM-Prinzipal über Anzeigeberechtigungen verfügt) oder mit kubectl get nodes.

Wichtig

Ihre Knoten haben den Status Not Ready, was zu erwarten ist und darauf zurückzuführen ist, dass auf Ihren Hybridknoten kein CNI ausgeführt wird. Wenn Ihre Knoten nicht dem Cluster beigetreten sind, sehen Sie unter Fehlerbehebung bei Hybridknoten nach.

Schritt 4: CNI für Hybridknoten konfigurieren

Um Ihre Hybridknoten für die Ausführung von Anwendungen vorzubereiten, führen Sie die Schritte in CNI für Hybridknoten konfigurieren aus.