Salta al contenuto

Come posso risolvere i problemi relativi ai gruppi di nodi gestiti da Amazon EKS e ai modelli di avvio?

5 minuti di lettura
0

Riscontro problemi con i miei gruppi di nodi gestiti da Amazon Elastic Kubernetes Service (Amazon EKS) e i modelli di avvio.

Risoluzione

Se utilizzi modelli di avvio di gruppi di nodi gestiti con un'AMI (Amazon Machine Image) specificata per avviare i nodi worker, devi configurare i dati utente. Se il cluster è privato e utilizza endpoint VPC (Virtual Private Cloud) per connettersi, specifica i seguenti attributi nei dati utente:

  • certificate-authority
  • api-server-endpoint
  • Indirizzo IP del cluster DNS

Devi inoltre fornire comandi bootstrap per consentire ai nodi worker di unirsi al cluster. Se utilizzi gruppi di nodi gestiti da Amazon con modelli di avvio personalizzati, specifica i dati utente corretti in base all'AMI nel modello di avvio.

Nota: se utilizzi gruppi di nodi gestiti per avviare i nodi worker, non serve configurare i dati utente per le AMI Amazon Linux ottimizzate per Amazon EKS.

Configura i dati utente per i nodi worker

Configura i dati utente in base all'AMI.

AL2

Se utilizzi l'AMI Amazon Linux 2, specifica le seguenti informazioni nella sezione dei dati utente del modello di avvio:

 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

Puoi utilizzare nodi self-managed o gruppi di nodi gestiti con un modello di avvio personalizzato. Quando crei un nuovo gruppo di nodi, devi fornire i metadati del cluster apiServerEndpoint, certificateAuthority e CIDR del servizio. Amazon Linux utilizza i valori aggiuntivi per avviare il nodo worker e unirsi al cluster.

Esempio di configurazione:

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"

--//--

Il processo di inizializzazione del nodo nodeadm utilizza uno schema di configurazione YAML. Per ulteriori informazioni, consulta nodeadm e Merging multiple configuration objects (Unione di più oggetti di configurazione) sul sito web Amazon EKS AMI.

Se utilizzi configurazioni di più nodi nel modello di avvio del gruppo di nodi gestiti, consulta Personalizza i nodi gestiti con modelli di avvio.

Risolvi gli errori nei cluster Amazon EKS

Client.InternalError: Client error on launch

L'errore Client error on launch si verifica quando utilizzi volumi crittografati di Amazon Elastic Block Store (Amazon EBS) nel modello di avvio personalizzato con autorizzazioni errate. Per verificare lo stato della crittografia e le autorizzazioni o le policy AWS Identity and Access Management (AWS IAM), completa i seguenti passaggi:

  1. Attiva la chiave del Servizio AWS di gestione delle chiavi (AWS KMS) utilizzata da AWS KMS per crittografare il volume.
  2. Assicurati che la chiave AWS KMS abbia le policy della chiave richieste.
  3. Modifica le policy della chiave per consentire a più ruoli IAM di funzionare con volumi Amazon EBS crittografati.

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

L'errore SourceEc2LaunchTemplateNotFound si verifica quando modifichi manualmente la versione del modello di avvio personalizzato tramite il gruppo Amazon EC2 Auto Scaling del nodo. Devi utilizzare la console Amazon EKS per aggiornare la versione del modello di avvio.

Per aggiornare il modello di avvio di Amazon Elastic Compute Cloud (Amazon EC2) dal gruppo di nodi gestiti, completa i seguenti passaggi:

  1. Apri la console Amazon EKS.
  2. Nel pannello di navigazione, scegliCluster.
  3. In Nome cluster, scegli il cluster con il gruppo di nodi che desideri aggiornare.
  4. Scegli la scheda Calcolo.
  5. Per Gruppi di nodi, seleziona il nodo, quindi scegli Modifica versione.
  6. Seleziona la versione aggiornata del gruppo di nodi. Inoltre, assicurati che Strategia di aggiornamento sia Aggiornamento in sequenza.
  7. Seleziona Aggiorna.

Questo errore si verifica anche quando utilizzi un modello di avvio per creare un gruppo di nodi ed elimini un modello di riferimento. Amazon EKS replica il modello utilizzato per creare il gruppo di nodi. Se elimini il modello originale, devi ricreare il gruppo di nodi.

Per ricreare il gruppo di nodi, completa i passaggi seguenti:

  1. Avvia un nuovo gruppo di nodi.

  2. Esegui questo comando per verificare che tutti i nodi siano integri, nello stato Pronto e uniti al cluster:

    kubectl get nodes
  3. Svuota i nodi worker.

  4. Elimina il gruppo di nodi originale.

Il gruppo di nodi passa nello stato DEGRADATO dopo aver creato un nuovo modello di avvio

Se un gruppo di nodi entra nello stato DEGRADATO, ricevi un messaggio simile al seguente esempio:

"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".

Questo errore si verifica quando la versione del modello di avvio di Amazon EC2 del gruppo di nodi gestiti non corrisponde alla versione creata da Amazon EKS.

Non puoi aggiornare direttamente i gruppi di nodi esistenti che non utilizzano un modello di avvio personalizzato. Per risolvere l'errore, crea un modello di avvio e una versione con impostazioni personalizzate. Quindi utilizza il modello di avvio per creare il gruppo di nodi. Se hai avviato il nuovo gruppo di nodi dal modello personalizzato, crea una nuova versione del modello.

L'istanza non è riuscita a unirsi al cluster Amazon EKS

Per risolvere il problema, consulta Come posso fare in modo che i miei nodi worker si uniscano al mio cluster Amazon EKS?

AWS UFFICIALEAggiornata 10 mesi fa