Direkt zum Inhalt

Häufig gestellte Fragen: Amazon EKS-Add-ons

Lesedauer: 6 Minute
0

Ich habe einige Fragen zu Amazon Elastic Kubernetes Service (Amazon EKS)-Add-ons.

**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, findest du weitere Informationen unter Troubleshoot AWS CLI errors. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Q: Wie überprüfe ich den Grund für die fehlgeschlagene Bereitstellung eines Amazon EKS-Add-ons in meinem Amazon EKS-Cluster?

Verwende die Amazon EKS-Konsole oder die AWS-CLI, um den Grund für den Fehler zu überprüfen.

Führe auf der Amazon EKS-Konsole die folgenden Schritte aus:

  1. Öffne die Amazon EKS-Konsole.
  2. Wähle im Navigationsbereich die Option Cluster. Wähle dann den Namen des Clusters aus, für den du das Add-on erstellen möchtest.
  3. Wähle die Registerkarte Add-ons.
  4. Wähle das Add-on aus, das sich im Status Degraded, Pending oder Inactive befindet. Den Grund für den Fehler findest du im Abschnitt Zustandsprobleme.

-oder-

Führe den AWS CLI-Befehl describe-addon aus:

$ aws eks describe-addon --cluster-name example-cluster --addon-name coredns

Den Grund für den Fehler findest du im Addonissue-Objekt.

Beispielausgabe:

{    "addon": {
        "addonName": "coredns",
        "clusterName": "eksn",
        "status": "DEGRADED",
        "addonVersion": "v1.8.7-eksbuild.4",
        "health": {
            "issues": \[
                {
                    "code": "InsufficientNumberOfReplicas",
                    "message": "The add-on is unhealthy because it doesn't have the desired number of replicas."
                }
            \]
        }
        "addonArn": "arn:aws:eks:us-east-2:acc-ID:addon/EKS\_CLUSTER/coredns/76c68b04-0804-2419-8da6-90d8318af308",
        "createdAt": "2024-01-17T06:07:23.826000+00:00",
        "modifiedAt": "2024-04-19T04:40:03.537000+00:00",
        "tags": {}
    }
}

Q: Im Anschluss habe ich die folgende Fehlermeldung erhalten: "The add-on is unhealthy because it doesn't have the desired number of replicas." Wie behebe ich den Fehler?

Führe die folgenden Befehle aus, um den Status des entsprechenden Pods im Cluster zu überprüfen:

kubectl get pods -n kube-system
kubectl describe pod pod-name -n kube-system
kubectl logs pod-name -n kube-system

Ersetze pod-name durch den Namen deines Pods.

Informationen zum Beheben des Pod-Status in der Ausgabe findest du unter Wie behebe ich den Pod-Status in Amazon EKS?

Q: Im Anschluss habe ich die folgende Fehlermeldung erhalten: "Conflicts found when trying to apply. Will not continue to due to resolve conflicts mode." Wie behebe ich den Fehler?

Schreibe die Konfiguration in eine JSON-Datei. Wende dann die Datei auf das Add-on an. Weitere Informationen findest du unter Wie verhindere ich Konfigurationskonflikte, wenn ich meine von Amazon EKS verwalteten Add-ons erstelle oder aktualisiere?

Q: Wie passe ich die Konfiguration meines Amazon EKS-Add-ons an?

Um eine benutzerdefinierte Konfiguration für das Add-on zu erstellen, verwende den ConfigurationValue-Parameter in der CreateAddon-API.

Um die Konfigurationsoptionen für das CoreDNS-Add-on zu überprüfen, führe den Befehl describe-addon aus:

aws eks describe-addon-configuration --addon-name coredns --addon-version v1.9.3-eksbuild.2 --query configurationSchema --output text | jq

Beispielausgabe:

{
  "$ref": "#/definitions/Coredns",
  "$schema": "http://json-schema.org/draft-06/schema#",
  "definitions": {
    "Coredns": {
      "additionalProperties": false,
      "properties": {
        "computeType": {
          "type": "string"
        },
        "corefile": {
          "description": "Entire corefile contents to use with installation",
          "type": "string"
        },
        "nodeSelector": {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        "replicaCount": {
          "type": "integer"
        },
        "resources": {
          "$ref": "#/definitions/Resources"
        }
      },
      "title": "Coredns",
      "type": "object"
    },
    "Limits": {
      "additionalProperties": false,
      "properties": {
        "cpu": {
          "type": "string"
        },
        "memory": {
          "type": "string"
        }
      },
      "title": "Limits",
      "type": "object"
    },
    "Resources": {
      "additionalProperties": false,
      "properties": {
        "limits": {
          "$ref": "#/definitions/Limits"
        },
        "requests": {
          "$ref": "#/definitions/Limits"
        }
      },
      "title": "Resources",
      "type": "object"
    }
  }
}

Das configurationSchema-Element in der Ausgabe stellt die konfigurierbaren Elemente für die ausgewählte Version des CoreDNS-Add-ons bereit.

Um dieses Add-on zu aktualisieren, gib die benutzerdefinierte Konfiguration gemäß dem JSON-Schema an. Um beispielsweise die Planung der CoreDNS-Bereitstellungs-Pods für eine bestimmte Gruppe von Knoten zu erleichtern, kannst du den selector\_value im nodeSelector-Parameter anpassen.

Beispiel:

{
    "nodeSelector": {
        "selector\_key": "selector\_value"
    }
}

Q: Warum erhalte ich die folgende Fehlermeldung, wenn ich versuche, ein Add-on mit einer benutzerdefinierten Konfiguration zu erstellen oder zu aktualisieren: "ConfigurationValue provided in request is not supported: Json schema validation failed with error"?

Die folgende Konfiguration verursacht diesen Fehler:

...
"Limits":
    {
        "cpu":"100m",
        "memory":"500Mi"
    }
...

Vergewissere dich, dass die erweiterte Konfiguration dem Format von configurationSchema entspricht, das die Add-on-Version unterstützt. Führe das folgende Schema aus, um die Ressourcenkontingente und Anforderungen für das CoreDNS-Add-on anzugeben:

...
{
   "resources": {
        "limits": {
            "cpu": "200m",
            "memory": "200Mi",
        },
        "requests": {
            "cpu": "100m",
            "memory": "100Mi"
        }
    }
}
...

Q: Warum hat Amazon EKS mein Add-on-JSON-Schema mit benutzerdefinierten Parametern auf die Standardparameter zurückgesetzt, nachdem ich das Add-on aktualisiert habe?

Wenn du die benutzerdefinierten Parameter für das Add-on während des UpdateAddon-API-Vorgangs nicht in das Feld configurationValues aufnehmen, kehrt das Add-on zu den Standardparametern zurück.

Um die Änderungen an der Konfiguration beizubehalten, wenn du das Add-on aktualisierst, führe eine der folgenden Aktionen aus:

Nimm die benutzerdefinierten Parameter bei jedem UpdateAddon-API-Vorgang in den configurationValues-Parameter auf.

-oder-

Verwende die Option**--resolve-conflicts PRESERVE** in der UpdateAddon-Vorgang.

Q: Wie überprüfe ich, ob ein Add-on von Amazon EKS verwaltet oder selbstverwaltet wird?

Um den Typ des im Cluster bereitgestellten Add-ons zu überprüfen, führe den AWS CLI-Befehl describe-addon aus:

aws eks describe-addon --cluster-name example-cluster --addon-name example-addon --query addon.addonVersion --output text

Hinweis: Ersetze example-cluster durch den Namen des Clusters und example-addon durch den Namen des Add-ons.

Wenn die Ausgabe Informationen über das Add-on enthält, verwaltet Amazon EKS das Add-on. Wenn du in der Ausgabe eine Fehlermeldung erhältst, wird das Add-on selbst verwaltet.

Q: Wie migriere ich das selbstverwaltete Add-on in meinem Cluster zu einem Amazon EKS-Add-on?

Erstelle das Amazon EKS-Add-on mit der entsprechenden Methode zur Konfliktlösung.

Wenn du das Amazon EKS-Add-on erstellst, kannst du die benutzerdefinierte Konfiguration im Feld configurationSchema übergeben.

Um die Änderungen an der Cluster-Konfiguration beizubehalten, verwende die Option BEIBEHALTEN, wenn du ein Add-on aktualisierst oder löschst. Verwende die Option BEIBEHALTEN, um die Änderungen beizubehalten, die die Kubernetes-API an den Feldern vorgenommen hat, die das Amazon EKS-Add-on nicht verwaltet. Wenn das Schema dieses verwaltete Feld nicht unterstützt, kannst du die Anpassung manuell in der Add-On-Bereitstellung oder in DaemonSet hinzufügen. Verwende dann die Option BEIBEHALTEN für den nächsten Aktualisierungsvorgang.

Wenn du ÜBERSCHREIBEN für die Konfliktlösungsmethode wählst, macht Amazon EKS die benutzerdefinierten Einstellungen im Add-on rückgängig und überschreibt die Werte mit den Standardwerten.

Q: Wie migriere ich ein Amazon EKS-Add-on zu einem selbstverwalteten Add-on?

Du musst das Amazon EKS-Add-on aus dem Amazon EKS-Cluster entfernen und dann den Befehl delete-addon ausführen:

aws eks delete-addon --cluster-name example-cluster --addon-name example-addon --preserve

Hinweis: Ersetze example-cluster durch den Namen des Clusters und example-addon durch den Namen des Add-ons. Verwende das Flag**--preserve**, um die zugrunde liegenden Kubernetes-Ressourcen beizubehalten.

AWS OFFICIALAktualisiert vor 2 Jahren