Salta al contenuto

Come posso utilizzare dati utente personalizzati con nodi AL2023 in Amazon EKS?

3 minuti di lettura
0

Utilizzo script personalizzati, nodi autogestiti o modelli di avvio personalizzati con Amazon Machine Image (AMI) Amazon Linux 2023 (AL2023) in Amazon Elastic Kubernetes Service (Amazon EKS). Desidero fornire dati utente personalizzati.

Breve descrizione

Per i nodi, AL2023 utilizza il processo di inizializzazione nodeadm che ha uno schema di configurazione YAML. Per i gruppi di nodi autogestiti o i gruppi di nodi gestiti con un modello di avvio personalizzato, devi fornire metadati cluster aggiuntivi quando crei un nuovo gruppo di nodi. I requisiti minimi di metadati da includere nello schema di configurazione YAML sono il nome del cluster, l'endpoint del server API, l'autorità di certificazione e il CIDR del servizio.

Esempio di configurazione con i parametri minimi richiesti:

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  cluster:
    name: EKS-CLUSTER-NAME
    apiServerEndpoint: API-SERVER-ENDPOINT
    certificateAuthority: CERTIFICATE-AUTHORITY
    cidr: SERVICE-IPv4-RANGE

Per ulteriori informazioni, consulta la sezione Before upgrading to AL2023 (Prima dell'aggiornamento ad AL2023) in Amazon EKS-optimized Amazon Linux 2023 AMIs now available (AMI Amazon Linux 2023 ottimizzate per Amazon EKS ora disponibili).

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Devi utilizzare un'AMI per Amazon EKS eseguita su AL2023. Per visualizzare l'ID dell'AMI, esegui questo comando AWS CLI get-parameter:

aws ssm get-parameter --name /aws/service/eks/optimized-ami/kubernetes-version/ami-type/recommended/image_id \
    --region region-code --query "Parameter.Value" --output text

Nota: sostituisci kubernetes-version con una versione di Amazon EKS supportata e region-code con la tua Regione AWS. Inoltre, sostituisci ami-type con amazon-linux-2023/x86_64/standard per le istanze basate su x86 o amazon-linux-2023/arm64/standard per le istanze ARM.

Aggiungi i parametri minimi richiesti ai dati utente nel seguente formato:

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

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

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec: ...

--BOUNDARY--

Nota: puoi anche incorporare i parametri all'interno di un documento MIME multi-parte. Per ulteriori informazioni, consulta Mime multi-part archive (Archivio MIME multi-parte) sul sito web di Cloud-init.

Utilizza l'API DescribeCluster per individuare i dettagli del cluster in ClusterDetails e visualizzare i parametri minimi richiesti. Ad esempio, quando utilizzi NodeConfigSpec, puoi passare le opzioni config e flag kubelet al kubelet. Per ulteriori informazioni, consulta CredentialProviderConfig e kubelet sul sito web di Kubernetes.

Esempio di configurazione dei dati utente:

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

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

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
  cluster:
    apiServerEndpoint: API_SERVER_ENDPOINT
    certificateAuthority: CERTIFICATE
    cidr: SERVICE_IPv4_RANGE
    name: CLUSTER_NAME
  kubelet:
    config:
      maxPods: 17
    flags:
    - "--node-labels=key=value"

--BOUNDARY
Content-Type: text/x-shellscript;

#!/bin/bash
  set -o xtrace
  yum install htop -y

--BOUNDARY--

Nota: quando inserisci i dati utente nel modello di avvio, assicurati di non includere spazi o rientri aggiuntivi nel codice. Se è presente un problema di spaziatura, I nodi non possono essere aggiunti al cluster perché nodeadm non si avvia.