Salta al contenuto

Domande frequenti: Componenti aggiuntivi di Amazon EKS

6 minuti di lettura
0

Ho alcune domande sui componenti aggiuntivi di Amazon Elastic Kubernetes Service (Amazon EKS).

Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta la sezione Troubleshoot AWS CLI errors. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

D: Come posso verificare il motivo della mancata distribuzione di un componente aggiuntivo di Amazon EKS nel mio cluster Amazon EKS?

Per verificare il motivo dell'errore, utilizza la console Amazon EKS o AWS CLI.

Sulla console Amazon EKS, completa i seguenti passaggi:

  1. Apri la console Amazon EKS.
  2. Nel pannello di navigazione, scegliCluster. Quindi seleziona il nome del cluster per il quale desideri creare il componente aggiuntivo.
  3. Scegli la scheda Componenti aggiuntivi.
  4. Seleziona il componente aggiuntivo che si trova nello stato Degradato, In sospeso o Inattivo. Puoi trovare il motivo dell'errore nella sezione Problemi di integrità.

-oppure-

Esegui il comando AWS CLI describe-addon:

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

Puoi trovare il motivo dell'errore nell'oggetto Addonissue.

Esempio di output:

{    "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": {}
    }
}

D: Ho ricevuto il seguente messaggio di errore: "The add-on is unhealthy because it doesn't have the desired number of replicas." Come posso risolverlo?

Per verificare lo stato del pod corrispondente nel cluster, esegui questi comandi:

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

Sostituisci pod-name con il nome del tuo pod.

Per risolvere lo stato del pod nell'output, consulta Come faccio a risolvere i problemi relativi allo stato dei pod in Amazon EKS?

D: Ho ricevuto il seguente messaggio di errore: "Conflicts found when trying to apply. Will not continue to due to resolve conflicts mode." Come posso risolverlo?

Scrivi la configurazione in un file JSON. Quindi applica il file al componente aggiuntivo. Per ulteriori informazioni, consulta How do I prevent configuration conflicts when I create or update my Amazon EKS managed add-ons? (Come posso prevenire conflitti di configurazione quando creo o aggiorno i miei componenti aggiuntivi gestiti da Amazon EKS?)

D: Come posso personalizzare la configurazione del mio componente aggiuntivo di Amazon EKS?

Per creare una configurazione personalizzata per un componente aggiuntivo, utilizza il parametro ConfigurationValue nell'API CreateAddon.

Per verificare le opzioni di configurazione del componente aggiuntivo CoreDNS, esegui il comando describe-addon:

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

Esempio di output:

{
  "$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"
    }
  }
}

L'elemento configurationSchema nell'output fornisce gli elementi configurabili per la versione selezionata del componente aggiuntivo CoreDNS.

Per aggiornare il componente aggiuntivo, specifica la configurazione personalizzata in base allo schema JSON. Ad esempio, per facilitare la pianificazione dei pod di distribuzione CoreDNS su un set specifico di nodi, puoi personalizzare selector\_value nel parametro nodeSelector.

Esempio:

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

D: Quando provo a creare o aggiornare un componente aggiuntivo con una configurazione personalizzata, perché ricevo il seguente errore: "ConfigurationValue provided in request is not supported: Json schema validation failed with error"?

L'errore è causato da questa configurazione:

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

Verifica che la configurazione avanzata segua il formato di configurationSchema supportato dalla versione del componente aggiuntivo. Per specificare le quote di risorse e le richieste per il componente aggiuntivo CoreDNS, utilizza questo schema:

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

D: Perché, dopo l'aggiornamento del mio componente aggiuntivo, Amazon EKS ha ripristinato i parametri predefiniti del suo schema JSON con parametri personalizzati?

Se non includi i parametri personalizzati per il componente aggiuntivo nel campo configurationValues durante l'esecuzione dell'API UpdateAddon, il componente aggiuntivo torna ai parametri predefiniti.

Per mantenere le modifiche apportate alla configurazione anche dopo l'aggiornamento del componente aggiuntivo, esegui una di queste azioni:

Includi i parametri personalizzati nel campo configurationValues durante ogni esecuzione dell'API UpdateAddon.

-oppure-

Utilizza l'opzione**--resolve-conflicts PRESERVE** nell'operazione UpdateAddon.

D: Come posso verificare se un componente aggiuntivo è gestito da Amazon EKS o self-managed?

Per verificare il tipo di componente aggiuntivo distribuito nel cluster, esegui il comando AWS CLI describe-addon:

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

Nota: sostituisci example-cluster con il nome del tuo cluster e example-addon con il nome del tuo componente aggiuntivo.

Se l'output fornisce informazioni sul componente aggiuntivo, il componente aggiuntivo è gestito da Amazon EKS. Se ricevi un messaggio di errore nell'output, il componente aggiuntivo è self-managed.

D: Come posso eseguire la migrazione da un componente aggiuntivo self-managed nel mio cluster a un componente aggiuntivo di Amazon EKS?

Crea il componente aggiuntivo di Amazon EKS con il metodo di risoluzione dei conflitti appropriato.

Quando crei il componente aggiuntivo di Amazon EKS, puoi passare la configurazione personalizzata nel campo configurationSchema.

Per mantenere le modifiche apportate alla configurazione all'interno del cluster, utilizza l'opzione PRESERVE quando aggiorni o elimini un componente aggiuntivo. Per mantenere le modifiche apportate dall'API Kubernetes ai campi mnon gestiti dal componente aggiuntivo di Amazon EKS, utilizza l'opzione PRESERVE. Se lo schema non supporta questo campo gestito, puoi aggiungere manualmente la personalizzazione nella distribuzione del componente aggiuntivo o nel DaemonSet. Quindi utilizza l'opzione PRESERVE per la successiva operazione di aggiornamento.

Quando scegli OVERWRITE come metodo di risoluzione dei conflitti, Amazon EKS ripristina le impostazioni personalizzate del componente aggiuntivo e sovrascrive i valori personalizzati con i valori predefiniti.

D: Come posso eseguire la migrazione da un componente aggiuntivo di Amazon EKS a un componente aggiuntivo self-managed?

Devi rimuovere il componente aggiuntivo di Amazon EKS dal cluster Amazon EKS ed eseguire il comando delete-addon :

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

Nota: sostituisci example-cluster con il nome del tuo cluster e example-addon con il nome del tuo componente aggiuntivo. Utilizza il flag --preserve per mantenere le risorse Kubernetes sottostanti.

AWS UFFICIALEAggiornata 2 anni fa