Direkt zum Inhalt

Wie behebe ich Probleme mit von Amazon EKS verwalteten Knotengruppen und Startvorlagen?

Lesedauer: 5 Minute
0

Ich habe Probleme mit meinen von Amazon Elastic Kubernetes Service (Amazon EKS) verwalteten Knotengruppen und Startvorlagen.

Lösung

Wenn du Startvorlagen für verwaltete Knotengruppen mit einem bestimmten Amazon Machine Image (AMI) verwendest, um die Worker-Knoten zu starten, musst du Benutzerdaten konfigurieren. Wenn der Cluster privat ist und Virtual Private Cloud (VPC)-Endpunkte für die Verbindung verwendet, gib die folgenden Attribute in den Benutzerdaten an:

  • certificate-authority
  • api-server-endpoint
  • DNS-Cluster-IP-Adresse

Du musst auch Bootstrap-Befehle für Worker-Knoten bereitstellen, um dem Cluster beizutreten. Wenn du von Amazon verwaltete Knotengruppen mit benutzerdefinierten Startvorlagen verwendest, gib in der Startvorlage die richtigen Benutzerdaten basierend auf de AMI an.

Hinweis: Wenn du Knotengruppen verwendest, um deine Worker-Knoten zu starten, brauchst du keine Benutzerdaten für Amazon EKS optimierte Amazon-Linux-AMIs konfigurieren.

Die Benutzerdaten für die Worker-Knoten konfigurieren

Konfiguriere Benutzerdaten auf der Grundlage des AMI.

AL2

Wenn du das Amazon Linux 2-AMI verwendest, gib im Abschnitt „Benutzerdaten“ der Startvorlage die folgenden Informationen an:

 MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY==
Content-Type: text/x-shellscript; charset="us-ascii"

#!/bin/bash
set -ex
/etc/eks/bootstrap.sh my-cluster \
  --b64-cluster-ca certificate-authority \
  --apiserver-endpoint api-server-endpoint \
  --dns-cluster-ip service-cidr.10 \
  --kubelet-extra-args '--max-pods=my-max-pods-value' \
  --use-max-pods false

--==MYBOUNDARY==-

AL2023

Du kannst selbstverwaltete Knoten oder verwaltete Knotengruppen mit einer benutzerdefinierten Startvorlage verwenden. Wenn du eine neue Knotengruppe erstellst, musst du die Cluster-Metadaten apiServerEndpoint, certificateAuthority und Service-CIDR angeben. Amazon Linux verwendet die zusätzlichen Werte, um den Worker-Knoten zu booten und dem Cluster beizutreten.

Beispielkonfiguration:

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="//"

--//
Content-Type: application/node.eks.aws

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  cluster:
    apiServerEndpoint: https://CCEABD8D413231403775F7AA9E56D037.gr7.us-west-2.eks.amazonaws.com
    certificateAuthority: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJYUxrK2N0M0Zmdll3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TkRBNE1qTXlNREk0TlRaYUZ3MHpOREE0TWpFeU1ETXpOVFphTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUURTRWF1c25hS1A5azJYOEd1QkEzQ1czQkZjQ3owSk1EUjRrVDhxUERhOHA4OFY5bkNDcUkvMnlaa2sKSHdIc0hpRDR2OWtoc2hCN1h5OFZaeW56NG8vYkhEZUc5MTZCZ0xzN05Ld1E2Sjd4b0dKc3JyVGtwdUJ3dWpTMgpkbGtLSG0yNTRUelNiQ2VWUkFGbVJGVmljUUh5aEpTSElBN0tUT1dHeUhvUEZJd3l4NS8xZkpmdEIxM0Y3MlBBCm9DaFZBNHdEOVFEZ1NxR0xOMTVMNEN2REFVdFVXaXBtRTZQdWRBNTBxMzNCSzRpRzc4Q0lFbDNXSHl6L3dzOEcKek5hQ2N5ZnlINjRFSHpsVkRkZmFHMWh0ODhKZ01pKy82Vm1vbmthdlJhQzVHZlhsdk5MKzFtVnJycWhTT3hBRQpJS1N2aW9rZndjODA5bzJWaUtiSmhkUE5yQTRKQWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJSR3JPdzVaSmJ4ZmI2dTF1ek4wNFJtSkFCU1ZUQVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQTFkTnE2aHhXSgp6OU4zM09XamU2cG5LU3pmbGdCaG5PRXRhSUlKa21kUWpUN0FDdlMwMDJyRjFnQUFneTVRR2pjM29mN3hzRzJoCkczemhuUGFTTXFLampsOWRnZGJsZTVEZmIwTjZGVlZXeGE3SFBxZ0NCeXZ1ZXdXOTYwcmxLZ1luMDJBVm16c3kKVW8rRXgwQVA4Q3lVUzQ5Z0RaSFN3MVZGbE1mbFkwb2thSERabG9lR256WDk1REc0Zzk4ZHR1Vkd1Sm1lZ1lpRApKUmN3T2xubUlDUHNsUXcrbGh2S0NFT0RvM0hBWWdwTGxkSFBvYTJCZlBwbk9IMWtMNlFFMURTZU8wQUhmNjBYCk1mTzVTNUwwQVFidk1aM005c2JJdDlhby9YbWk3NnJHMThtMzMrdy9LWkV5cVg1NHZ6UTlZUHBjSGV6bk5oY2oKUy9XajhNZk9KMk9SCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
    cidr: 10.100.0.0/16
    name: my-first-eks-cluster
  kubelet:
    config:
      maxPods: 29
      clusterDNS:
      - 10.100.0.10
    flags:
    - "--node-labels=eks.amazonaws.com/sourceLaunchTemplateVersion=1,alpha.eksctl.io/cluster-name=my-first-eks-cluster,alpha.eksctl.io/nodegroup-name=ng-1,eks.amazonaws.com/nodegroup-image=ami-032a2a7895e882f27,eks.amazonaws.com/capacityType=ON_DEMAND,eks.amazonaws.com/nodegroup=ng-1,eks.amazonaws.com/sourceLaunchTemplateId=lt-0d8806dd42301728f"

--//--

Der Initialisierungsprozess für den nodeadm-Knoten verwendet ein YAML-Konfigurationsschema. Weitere Informationen findest du unter nodeadm und Zusammenfassen mehrere Konfigurationsobjekte auf der Amazon EKS AMI-Website.

Wenn du in der Startvorlage für verwaltete Knotengruppen mehrere Knotenkonfigurationen verwendest, findest du weitere Informationen unter Verwaltete Knoten mit Startvorlagen anpassen.

Fehler in den Amazon EKS-Clustern beheben

Client.InternalError: Client error on launch

Der Fehler Client error on launch tritt auf, wenn du verschlüsselte Amazon Elastic Block Store (Amazon EBS)-Volumes in der benutzerdefinierten Startvorlage mit falschen Berechtigungen verwendest. Führe die folgenden Schritte aus, um den Verschlüsselungsstatus und die Berechtigungen oder Richtlinien von AWS Identity and Access Management (IAM) zu überprüfen:

  1. Aktiviere den AWS Key Management Service (AWS KMS)-Schlüssel, den AWS KMS zur Verschlüsselung des Volumes verwendet.
  2. Stelle sicher, dass der AWS-KMS-Schlüssel die benötigten Schlüsselrichtlinien hat.
  3. Ändere die wichtigsten Richtlinien, damit mehr IAM-Rollen mit verschlüsselten Amazon-EBS-Volumes arbeiten können.

SourceEc2LaunchTemplateNotFound or The Amazon EC2 Launch Template lt-abcdefghijklmn version x was not found

Der SourceEC2LaunchTemplateNotFound-Fehler tritt auf, wenn du die Version der benutzerdefinierten Startvorlage manuell über die Amazon EC2 Auto Scaling-Gruppe des Knotens änderst. Du musst die Amazon EKS-Konsole verwenden, um die Version der Startvorlage zu aktualisieren.

Gehe wie folgt vor, um die Amazon Elastic Compute Cloud (Amazon EC2)-Startvorlage aus der verwalteten Knotengruppe zu aktualisieren:

  1. Öffne die Amazon-EKS-Konsole.
  2. Wähle im Navigationsbereich die Option Cluster aus.
  3. Wähle unter Clustername den Cluster mit der Knotengruppe aus, die du aktualisieren möchtest.
  4. Wähle die Registerkarte Berechnen aus.
  5. Wähle für Knotengruppen den Knoten und dann Version ändern aus.
  6. Wähle die aktualisierte Version der Knotengruppe aus. Stelle außerdem sicher, dass für die Aktualisierungsstrategie die Option Fortlaufende Aktualisierung ausgewählt ist.
  7. Wähle Aktualisieren aus.

Dieser Fehler tritt auch auf, wenn du eine Startvorlage verwendest, um eine Knotengruppe zu erstellen und du eine Referenzvorlage löschst. Amazon EKS repliziert die Vorlage, die du zum Erstellen der Knotengruppe verwendest. Wenn du die ursprüngliche Vorlage löschst, musst du die Knotengruppe neu erstellen.

Gehen Sie wie folgt vor, um die Knotengruppe neu zu erstellen:

  1. Starte eine neue Knotengruppe.

  2. Führe den folgenden Befehl aus, um zu überprüfen, ob alle Knoten fehlerfrei sind, sich im Status Bereit befinden und dem Cluster beigetreten sind:

    kubectl get nodes
  3. Entleere die Worker-Knoten.

  4. Lösche die ursprüngliche Knotengruppe.

Die Node-Gruppe wechselt in den Status DEGRADED, nachdem sie eine neue Startvorlage erstellt hat

Wenn eine Knotengruppe in den Status DEGRADED wechselt, erhältst du eine Meldung, die dem folgenden Beispiel ähnelt:

"The Amazon EC2 Launch Template : lt-abcdefghijklmn has a new version associated with your Autoscaling group, which is not managed by Amazon EKS. Expected Launch Template version: x".

Dieser Fehler tritt auf, wenn die Amazon-EC2-Startvorlagenversion für die verwaltete Knotengruppe nicht mit der Version übereinstimmt, die Amazon EKS erstellt.

Bestehende Knotengruppen, die keine benutzerdefinierte Startvorlage verwenden, können nicht direkt aktualisiert werden. Um dieses Problem zu beheben, erstelle eine Startvorlage und eine Version mit den benutzerdefinierten Einstellungen. Verwende dann die Startvorlage, um die Knotengruppe zu erstellen. Wenn du die neue Knotengruppe von der benutzerdefinierten Vorlage aus gestartet hast, erstelle eine neue Version der Vorlage.

Die Instance konnte dem Amazon EKS-Cluster nicht beitreten

Informationen zur Behebung dieses Problems findest du unter Wie bringe ich meine Worker-Knoten dazu, meinem Amazon EKS-Cluster beizutreten?

AWS OFFICIALAktualisiert vor 9 Monaten