Aiutaci a migliorare questa pagina
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Per contribuire a questa guida per l'utente, scegli il GitHub link Modifica questa pagina nel riquadro destro di ogni pagina.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Amazon Linux 2023 (AL2023), Ubuntu e Red Hat Enterprise Linux (RHEL) vengono convalidati su base continuativa per l'uso come sistema operativo di nodi per nodi ibridi. AWS supporta l'integrazione dei nodi ibridi con questi sistemi operativi ma non fornisce supporto per i sistemi operativi stessi. AL2023 non è coperto dai piani di AWS supporto se eseguito al di fuori di Amazon EC2. AL2023 può essere utilizzato solo in ambienti virtualizzati locali, consulta la Amazon Linux 2023 User Guide per ulteriori informazioni.
Sei responsabile del provisioning e della gestione del sistema operativo. Quando si testano i nodi ibridi per la prima volta, è più semplice eseguire Amazon EKS Hybrid Nodes CLI (nodeadm
) su un host già fornito. Per le implementazioni di produzione, si consiglia di includere nodeadm
nel sistema operativo immagini configurate per l'esecuzione come servizio systemd per unire automaticamente gli host ai cluster Amazon EKS all'avvio dell'host.
Compatibilità delle versioni
La tabella seguente rappresenta le versioni del sistema operativo compatibili e convalidate per l'uso come sistema operativo dei nodi per i nodi ibridi. Se si utilizzano altre varianti o versioni del sistema operativo non incluse in questa tabella, la compatibilità dei nodi ibridi con la variante o la versione del sistema operativo non è coperta da AWS Support. I nodi ibridi sono indipendenti dall'infrastruttura sottostante e supportano le architetture x86 e ARM.
Sistema operativo | Versioni |
---|---|
Amazon Linux |
Amazon Linux 2023 (AL2023) |
Ubuntu |
Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04 |
Red Hat Enterprise Linux |
RIGA 8, RIGA 9 |
Considerazioni sul sistema operativo
Generali
-
L'Amazon EKS Hybrid Nodes CLI (
nodeadm
) può essere utilizzata per semplificare l'installazione e la configurazione dei componenti e delle dipendenze dei nodi ibridi. Puoi eseguire ilnodeadm install
processo durante le pipeline di creazione dell'immagine del sistema operativo o in fase di esecuzione su ogni host locale. Per ulteriori informazioni sui componenti danodeadm
installare, consulta. nodeadmRiferimento ai nodi ibridi -
Se si utilizza un proxy nell'ambiente locale per accedere a Internet, è necessaria una configurazione aggiuntiva del sistema operativo per i processi di installazione e aggiornamento per configurare il gestore di pacchetti per l'utilizzo del proxy. Per istruzioni, consulta Configurare il proxy per i nodi ibridi.
Contenitori
-
Containerd è il runtime di container Kubernetes standard ed è una dipendenza per i nodi ibridi, nonché per tutti i tipi di calcolo dei nodi Amazon EKS. La CLI di Amazon EKS Hybrid Nodes (
nodeadm
) tenta di installare containerd durante il processo.nodeadm install
È possibile configurare l'installazione containerd innodeadm install
fase di esecuzione con l'opzione--containerd-source
della riga di comando. Le opzioni valide sononone
distro
, e.docker
Se stai usando RHEL, nondistro
è un'opzione valida e puoi configurarenodeadm
per installare la build containerd dai repository di Docker oppure puoi installare containerd manualmente. Quando si usa AL2 023 o Ubuntu, pernodeadm
impostazione predefinita installa containerd dalla distribuzione del sistema operativo. Se non vuoi che nodeadm installi containerd, usa l'opzione.--containerd-source none
Ubuntu
-
Se si utilizza Ubuntu 20.04, è necessario utilizzare le attivazioni ibride di AWS Systems Manager come provider di credenziali. AWS IAM Roles Anywhere non è supportato su Ubuntu 20.04.
-
Se usi Ubuntu 24.04, potresti dover aggiornare la tua versione di containerd o modificare AppArmor la configurazione per adottare una correzione che consenta ai pod di terminare correttamente, vedi Ubuntu #2065423.
È necessario un riavvio per applicare le modifiche al profilo. AppArmor L'ultima versione di Ubuntu 24.04 ha una versione containerd aggiornata nel suo gestore di pacchetti con la correzione (containerd versione 1.7.19+).
RHEL
-
Se si utilizza RHEL 8, è necessario utilizzare le attivazioni ibride di AWS Systems Manager come provider di credenziali. AWS IAM Roles Anywhere non è supportato su RHEL 8.
ARM
-
Se utilizzi hardware ARM, per eseguire la versione ARMv8 1.31 e successive del componente aggiuntivo EKS kube-proxy è necessario un processore conforme a ARMv8 .2 con estensione di crittografia (.2+crypto). Tutti i sistemi Raspberry Pi precedenti al Raspberry Pi 5, così come i processori basati su Cortex-A72, non soddisfano questo requisito. Come soluzione alternativa, puoi continuare a utilizzare la versione 1.30 del componente aggiuntivo EKS kube-proxy fino alla fine del supporto esteso nel luglio del 2026, vedi o usa un'immagine kube-proxy personalizzata dall'upstream. Calendario di rilascio di Amazon EKS Kubernetes
-
Il seguente messaggio di errore nel log kube-proxy indica questa incompatibilità:
Fatal glibc error: This version of Amazon Linux requires a newer ARM64 processor compliant with at least ARM architecture 8.2-a with Cryptographic extensions. On EC2 this is Graviton 2 or later.
Creazione di immagini del sistema operativo
Amazon EKS fornisce modelli di Packer di esempionodeadm
e lo configurano per l'esecuzione all'avvio dell'host. Questo processo è consigliato per evitare di trasferire le dipendenze dei nodi ibridi singolarmente su ciascun host e per automatizzare il processo di bootstrap dei nodi ibridi. È possibile utilizzare i modelli Packer di esempio con un'immagine ISO di Ubuntu 22.04, Ubuntu 24.04, RHEL 8 o RHEL 9 e produrre immagini con questi formati: OVA, Qcow2 o raw.
Prerequisiti
Prima di utilizzare i modelli Packer di esempio, è necessario che sul computer da cui si esegue Packer sia installato quanto segue.
-
Packer versione 1.11.0 o successiva. Per istruzioni sull'installazione di Packer, consulta Install Packer nella documentazione di Packer.
-
In fase di compilazione OVAs, VMware vSphere plugin 1.4.0 o versione successiva
-
In caso di creazione
Qcow2
di immagini non elaborate, plugin QEMU versione 1.x
Impostazione delle variabili di ambiente
Prima di eseguire la build di Packer, imposta le seguenti variabili di ambiente sulla macchina da cui stai eseguendo Packer.
Generale
Le seguenti variabili di ambiente devono essere impostate per creare immagini con tutti i sistemi operativi e i formati di output.
Variabile di ambiente | Tipo | Descrizione |
---|---|---|
PKR_SSH_PASSWORD |
Stringa |
Packer utilizza le |
ISO_URL |
Stringa |
URL dell'ISO da utilizzare. Può essere un collegamento Web da scaricare da un server o un percorso assoluto verso un file locale |
ISO_CHECKSUM |
Stringa |
Checksum associato per l'ISO fornito. |
CREDENTIAL_PROVIDER |
Stringa |
Provider di credenziali per nodi ibridi. I valori validi sono |
K8S_VERSION |
Stringa |
Versione Kubernetes per nodi ibridi (ad esempio). |
NODEADM_ARCH |
Stringa |
Architettura per. |
RHEL
Se si utilizza RHEL, è necessario impostare le seguenti variabili di ambiente.
Variabile di ambiente | Tipo | Descrizione |
---|---|---|
RH_USERNAME |
Stringa |
nome utente del gestore di sottoscrizioni RHEL |
RH_PASSWORD |
Stringa |
password per il gestore delle sottoscrizioni RHEL |
RHEL_VERSION |
Stringa |
Versione iso di Rhel in uso. I valori validi sono |
Ubuntu
Non sono richieste variabili di ambiente specifiche per Ubuntu.
vSphere
Se si sta creando un VMware vSphere OVA, è necessario impostare le seguenti variabili di ambiente.
Variabile di ambiente | Tipo | Descrizione |
---|---|---|
VSPHERE_SERVER |
Stringa |
Indirizzo del server vSphere |
VSPHERE_USER |
Stringa |
nome utente vSphere |
VSPHERE_PASSWORD |
Stringa |
Password vSphere |
VSPHERE_DATACENTER |
Stringa |
nome del datacenter vSphere |
VSPHERE_CLUSTER |
Stringa |
nome del cluster vSphere |
VSPHERE_DATASTORE |
Stringa |
nome del datastore vSphere |
VSPHERE_NETWORK |
Stringa |
Nome della rete vSphere |
VSPHERE_OUTPUT_FOLDER |
Stringa |
Cartella di output vSphere per i modelli |
QEMU
Variabile di ambiente | Tipo | Descrizione |
---|---|---|
FORMATO_PACKER_OUTPUT |
Stringa |
Formato di output per il generatore QEMU. I valori validi sono |
Convalida il modello
Prima di eseguire la build, convalida il modello con il seguente comando dopo aver impostato le variabili di ambiente. Sostituiscilo template.pkr.hcl
se stai usando un nome diverso per il tuo modello.
packer validate template.pkr.hcl
Crea immagini
Crea le tue immagini con i seguenti comandi e usa il -only
flag per specificare la destinazione e il sistema operativo delle tue immagini. Sostituiscilo template.pkr.hcl
se stai usando un nome diverso per il tuo modello.
vSphere OVAs
Nota
Se si utilizza RHEL con vSphere, è necessario convertire i file kickstart in un'immagine OEMDRV e passarli come ISO da cui avviare. Per ulteriori informazioni, consulta il Packer Readme nell'archivio EKS Hybrid Nodes
Ubuntu 22.04 OVA
packer build -only=general-build.vsphere-iso.ubuntu22 template.pkr.hcl
Ubuntu 24.04 OVA
packer build -only=general-build.vsphere-iso.ubuntu24 template.pkr.hcl
RHEL 8 OVAR
packer build -only=general-build.vsphere-iso.rhel8 template.pkr.hcl
RHEL 9 OVULI
packer build -only=general-build.vsphere-iso.rhel9 template.pkr.hcl
QEMU
Nota
Se stai creando un'immagine per una CPU host specifica che non corrisponde all'host del tuo builder, consulta la documentazione QEMU-cpu
flag con il nome della CPU host quando esegui i seguenti comandi.
Ubuntu 22.04 Qcow2/Raw
packer build -only=general-build.qemu.ubuntu22 template.pkr.hcl
Ubuntu 24.04 Qcow2/Raw
packer build -only=general-build.qemu.ubuntu24 template.pkr.hcl
RHEL 8 Qcow2/Raw
packer build -only=general-build.qemu.rhel8 template.pkr.hcl
RHEL 9 Qcow2/Raw
packer build -only=general-build.qemu.rhel9 template.pkr.hcl
Passa la configurazione nodeadm tramite i dati utente
Puoi trasferire la configurazione ai tuoi dati utente tramite cloud-init per nodeadm
configurare e connettere automaticamente i nodi ibridi al cluster EKS all'avvio dell'host. Di seguito è riportato un esempio di come eseguire questa operazione quando si utilizza VMware vSphere come infrastruttura per i nodi ibridi.
-
Installa la
govc
CLI seguendo le istruzioni nel readme di govcsu. GitHub -
Dopo aver eseguito la build di Packer nella sezione precedente e aver effettuato il provisioning del modello, puoi clonare il modello per creare più nodi diversi utilizzando quanto segue. È necessario clonare il modello per ogni nuova macchina virtuale che si sta creando e che verrà utilizzata per i nodi ibridi. Sostituisci le variabili nel comando seguente con i valori per il tuo ambiente. Il
VM_NAME
comando seguente viene usato come tuoNODE_NAME
quando inserisci i nomi per il tuo VMs tramite il tuometadata.yaml
file.govc vm.clone -vm "/PATH/TO/TEMPLATE" -ds="YOUR_DATASTORE" \ -on=false -template=false -folder=/FOLDER/TO/SAVE/VM "VM_NAME"
-
Dopo aver clonato il modello per ognuno dei tuoi nuovi VMs, crea un
userdata.yaml
emetadata.yaml
per il tuo. VMs VMs Puoi condividerliuserdata.yaml
metadata.yaml
e li compilerai per ogni singola macchina virtuale nei passaggi seguenti. Lanodeadm
configurazione viene creata e definita nellawrite_files
sezione del tuo.userdata.yaml
L'esempio seguente utilizza le attivazioni ibride AWS SSM come provider di credenziali locali per i nodi ibridi. Per ulteriori informazioni sullanodeadm
configurazione, vedere. nodeadmRiferimento ai nodi ibridiuserdata.yaml:
#cloud-config users: - name: # username for login. Use 'builder' for RHEL or 'ubuntu' for Ubuntu. passwd: # password to login. Default is 'builder' for RHEL. groups: [adm, cdrom, dip, plugdev, lxd, sudo] lock-passwd: false sudo: ALL=(ALL) NOPASSWD:ALL shell: /bin/bash write_files: - path: /usr/local/bin/nodeConfig.yaml permissions: '0644' content: | apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Cluster Name region: # AWS region hybrid: ssm: activationCode: # Your ssm activation code activationId: # Your ssm activation id runcmd: - /usr/local/bin/nodeadm init -c file:///usr/local/bin/nodeConfig.yaml >> /var/log/nodeadm-init.log 2>&1
metadati.yaml:
Crea un file per il tuo ambiente.
metadata.yaml
Mantieni il formato della"$NODE_NAME"
variabile nel file poiché questo verrà compilato con valori in un passaggio successivo.instance-id: "$NODE_NAME" local-hostname: "$NODE_NAME" network: version: 2 ethernets: nics: match: name: ens* dhcp4: yes
-
Aggiungi i
metadata.yaml
fileuserdata.yaml
and comegzip+base64
stringhe con i seguenti comandi. I seguenti comandi devono essere eseguiti per ognuno dei comandi VMs che state creando. SostituisciVM_NAME
con il nome della macchina virtuale che stai aggiornando.export NODE_NAME="VM_NAME" export USER_DATA=$(gzip -c9 <userdata.yaml | base64) govc vm.change -dc="YOUR_DATASTORE" -vm "$NODE_NAME" -e guestinfo.userdata="${USER_DATA}" govc vm.change -dc="YOUR_DATASTORE" -vm "$NODE_NAME" -e guestinfo.userdata.encoding=gzip+base64 envsubst '$NODE_NAME' < metadata.yaml > metadata.yaml.tmp export METADATA=$(gzip -c9 <metadata.yaml.tmp | base64) govc vm.change -dc="YOUR_DATASTORE" -vm "$NODE_NAME" -e guestinfo.metadata="${METADATA}" govc vm.change -dc="YOUR_DATASTORE" -vm "$NODE_NAME" -e guestinfo.metadata.encoding=gzip+base64
-
Accendi la tua nuova unità VMs, che dovrebbe connettersi automaticamente al cluster EKS che hai configurato.
govc vm.power -on "${NODE_NAME}"