Contribuisci 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 su che si trova 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à.
Nodi ibridi di riferimento nodeadm
La CLI Amazon EKS Hybrid Nodes (nodeadm) semplifica l’installazione, la configurazione, la registrazione e la disinstallazione dei componenti dei nodi ibridi. Puoi includere il nodeadm nelle immagini del tuo sistema operativo per automatizzare il bootstrap dei nodi ibridi, consulta Preparazione del sistema operativo per i nodi ibridi per ulteriori informazioni.
La versione del nodeadm per i nodi ibridi è diversa dalla versione del nodeadm utilizzata per avviare le istanze Amazon EC2 come nodi nei cluster Amazon EKS. Consulta la documentazione e i riferimenti per la versione del nodeadm appropriata. Questa pagina di documentazione riguarda la versione del nodeadm per i nodi ibridi.
Il codice sorgente per i nodi ibridi nodeadm è pubblicato nel repository. https://github.com/aws/eks-hybrid GitHub
Importante
È necessario eseguire l'nodeadmoperazione con un utente con root/sudo privilegi.
Versione node/adm richiesta per il provider di credenziali SSM.
Se si utilizza AWS Systems Manager (SSM) come provider di credenziali per i nodi ibridi, è necessario utilizzare la nodeadm versione 1.0.19 o successiva per le nuove installazioni e gli aggiornamenti. Le versioni precedenti di nodeadm contengono una chiave di firma SSM obsoleta e hanno esito negativo durante nodeadm install e nodeadm upgrade con il seguente errore di verifica della firma:
"msg":"Command failed","error":"failed to install ssm installer: validating ssm-setup-cli signature: Signature Verification Error: No matching signature"
Per risolvere questo errore, scarica la versione più recente di nodeadm prima di eseguire nodeadm install o. nodeadm upgrade
Scarica nodeadm
La versione Hybrid Nodes di nodeadm è ospitata in Amazon S3 gestita da Amazon. CloudFront Per installare nodeadm su ciascun host on-premises puoi eseguire il seguente comando dai tuoi host on-premises.
Per host x86_64
curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/amd64/nodeadm'
Per host ARM
curl -OL 'https://hybrid-assets.eks.amazonaws.com/releases/latest/bin/linux/arm64/nodeadm'
Aggiungi l’autorizzazione per i file eseguibili al file binario scaricato su ciascun host.
chmod +x nodeadm
installazione di nodeadm
Il comando nodeadm install viene utilizzato per installare gli artefatti e le dipendenze necessari per eseguire e unire nodi ibridi a un cluster Amazon EKS. Il comando nodeadm install può essere eseguito singolarmente su ciascun nodo ibrido o può essere eseguito durante le pipeline di creazione delle immagini per preinstallare le dipendenze dei nodi ibridi nelle immagini del sistema operativo.
Utilizzo
nodeadm install [KUBERNETES_VERSION] [flags]
Argomenti posizionali
(Obbligatorio) KUBERNETES_VERSION La versione major.minor di EKS Kubernetes da installare, ad esempio 1.32
Flag
| Nome | Richiesto | Description |
|---|---|---|
|
|
TRUE |
Provider di credenziali da installare. I valori supportati sono |
|
|
FALSE |
Origine per Valori |
|
|
FALSE |
Specifica la AWS regione per il download di artefatti come l'agente SSM. L’impostazione predefinita è |
|
|
FALSE |
Durata massima del comando di installazione. L’input segue il formato della durata. Ad esempio, |
|
|
FALSE |
Mostra un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
Installa la versione Kubernetes 1.32 con AWS Systems Manager (SSM) come fornitore di credenziali
nodeadm install 1.32 --credential-provider ssm
Installa la versione Kubernetes 1.32 con AWS Systems Manager (SSM) come fornitore di credenziali e Docker come sorgente contenuta, con un timeout di download di 20 minuti.
nodeadm install 1.32 --credential-provider ssm --containerd-source docker --timeout 20m
Installa la versione Kubernetes con IAM Roles Anywhere come provider di credenziali 1.32 AWS
nodeadm install 1.32 --credential-provider iam-ra
controllo della configurazione nodeadm
Il comando nodeadm config check verifica la presenza di errori nella configurazione del nodo fornita. Questo comando può essere utilizzato per verificare e confermare la correttezza di un file di configurazione del nodo ibrido.
Utilizzo
nodeadm config check [flags]
Flag
| Nome | Richiesto | Description |
|---|---|---|
|
|
TRUE |
Origine della configurazione di nodeadm. Per i nodi ibridi, l’input deve seguire un URI con schema di file. |
|
|
FALSE |
Mostra un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
nodeadm config check -c file://nodeConfig.yaml
nodeadm init
Il comando nodeadm init avvia e connette il nodo ibrido con il cluster Amazon EKS configurato. Consulta Configurazione del modo per attivazioni ibride SSM o Configurazione del nodo per IAM Roles Anywhere per i dettagli su come configurare il file nodeConfig.yaml.
Utilizzo
nodeadm init [flags]
Flag
| Nome | Richiesto | Description |
|---|---|---|
|
|
TRUE |
Origine della configurazione di |
|
|
FALSE |
Fasi di Valori |
|
|
FALSE |
Mostra un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
nodeadm init -c file://nodeConfig.yaml
aggiornamento nodeadm
Il comando nodeadm upgrade aggiorna tutti gli artefatti installati alla versione più recente e avvia il nodo per configurare gli artefatti aggiornati e unirsi al cluster EKS su AWS. Upgrade è un comando che interrompe i carichi di lavoro in esecuzione sul nodo. Devi spostare i carichi di lavoro su un altro nodo prima di eseguire l’aggiornamento.
Utilizzo
nodeadm upgrade [KUBERNETES_VERSION] [flags]
Argomenti posizionali
(Obbligatorio) KUBERNETES_VERSION La versione major.minor di EKS Kubernetes da installare, ad esempio 1.32
Flag
| Nome | Richiesto | Description |
|---|---|---|
|
|
TRUE |
Origine della configurazione di |
|
|
FALSE |
Timeout per il download degli artefatti. L’input segue il formato della durata. Ad esempio 1h23m. Il timeout per il download predefinito per il comando di aggiornamento è impostato su 10 minuti. |
|
|
FALSE |
Fasi dell’aggiornamento da saltare. Non è consigliabile saltare nessuna Passaggio a meno che non sia utile per risolvere un problema. Valori |
|
|
FALSE |
Mostra un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
nodeadm upgrade 1.32 -c file://nodeConfig.yaml
nodeadm upgrade 1.32 -c file://nodeConfig.yaml --timeout 20m
disinstallazione di nodeadm
Il comando nodeadm uninstall arresta e rimuove gli artefatti che nodeadm installa durante nodeadm install, inclusi kubelet e containerd. Attenzione, il comando di disinstallazione non scarica né elimina i nodi ibridi dal cluster. Devi eseguire le operazioni di scaricamento ed eliminazione separatamente, consulta Rimuovi i nodi ibridi per ulteriori informazioni. Per impostazione predefinita, nodeadm uninstall non proseguirà se sul nodo rimangono dei pod. Allo stesso modo, nodeadm uninstall non rimuove le dipendenze CNI o le dipendenze di altri componenti aggiuntivi di Kubernetes eseguiti sul cluster. Per rimuovere completamente l’installazione CNI dal tuo host, consulta le istruzioni contenute in Configurazione della CNI per nodi ibridi. Se utilizzi le attivazioni ibride AWS SSM come provider di credenziali locale, il nodeadm uninstall comando annulla la registrazione degli host come istanze gestite da SSM. AWS
Utilizzo
nodeadm uninstall [flags]
Flag
| Nome | Richiesto | Description |
|---|---|---|
|
|
FALSE |
Fasi di disinstallazione da saltare. Non è consigliabile saltare nessuna delle fasi a meno che non sia utile per risolvere un problema. Valori |
|
|
FALSE |
Mostra un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
|
|
FALSE |
Forza l’eliminazione delle directory aggiuntive che potrebbero contenere file rimanenti dai componenti Kubernetes e CNI. ATTENZIONE Ciò eliminerà tutti i contenuti nelle directory Kubernetes e CNI predefinite ( A partire dalla versione Suggerimenti per una gestione sicura L’eliminazione dei percorsi montati può portare alla cancellazione accidentale dell’effettivo filesystem dei nodi montati. Prima di eliminare manualmente la directory |
Esempi
nodeadm uninstall
nodeadm uninstall --skip node-validation,pod-validation
debug nodeadm
Il comando nodeadm debug può essere utilizzato per risolvere i problemi relativi ai nodi ibridi non integri o configurati in modo errato. Verifica che i seguenti requisiti siano soddisfatti.
-
Il nodo ha accesso in rete alle AWS API richieste per ottenere le credenziali,
-
Il nodo è in grado di ottenere AWS le credenziali per il ruolo IAM di Hybrid Nodes configurato,
-
Il nodo ha accesso di rete all’endpoint dell’API EKS Kubernetes e ha la validità del certificato endpoint dell’API EKS Kubernetes.
-
Il nodo è in grado di autenticarsi con il cluster EKS, la sua identità nel cluster è valida e ha accesso al cluster EKS tramite il VPC configurato per il cluster EKS.
Se vengono rilevati errori, l’output del comando suggerisce le procedure per la risoluzione dei problemi. Alcuni passaggi di conferma mostrano le procedure secondarie. Se queste non funzionano, l’output viene mostrato in una sezione stderr sotto l’errore di convalida.
Utilizzo
nodeadm debug [flags]
Flag
| Nome | Richiesto | Description |
|---|---|---|
|
|
TRUE |
Origine della configurazione di |
|
|
FALSE |
Disattiva l’output a colori. Utile per l’automazione. |
|
|
FALSE |
Mostra un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
nodeadm debug -c file://nodeConfig.yaml
Posizioni dei file nodeadm
installazione di nodeadm
Durante l’esecuzione di nodeadm install, vengono configurati i seguenti file e posizioni dei file.
| Artifact | Path |
|---|---|
|
CLI IAM Roles Anywhere |
/usr/local/bin/aws_signing_helper |
|
Binario Kubelet |
//kubelet usr/bin |
|
Binario Kubectl |
usr/local/bin/kubectl |
|
Provider di credenziali ECR |
//image-credential- -fornitore-credenziali etc/eks provider/ecr |
|
AWS Autenticatore IAM |
//usr/local-iam-authenticator bin/aws |
|
CLI di configurazione SSM |
opt/ssm//ssm-setup-cli |
|
Agente SSM |
Su Ubuntu -/-ssm- /amazon-ssm-agent snap/amazon agent/current Su RHEL e AL2023 -/usr/bin/amazon-ssm-agent |
|
Containerd |
Su Ubuntu e AL2023 -usr/bin//containerd Su RHEL -/bin/containerd |
|
Iptables |
Su Ubuntu e AL2023 -//iptables usr/sbin Su RHEL -/sbin/iptables |
|
Plug-in CNI |
//bin opt/cni |
|
tracciatore di artefatti installati |
//localizzatore opt/nodeadm |
nodeadm init
Durante l’esecuzione di nodeadm init, vengono configurati i file e le posizioni seguenti dei file.
| Nome | Path |
|---|---|
|
Kubelet kubeconfig |
/var/lib/kubelet/kubeconfig |
|
Configurazione di Kubelet |
//.json etc/kubernetes kubelet/config |
|
Unità Kubelet systemd |
//.servizio etc/systemd system/kubelet |
|
Configurazione del provider di credenziali di immagine |
/etc/eksprovider/config/image-credential- .json |
|
File env Kubelet |
/etc/eks/kubelet/environment |
|
Certificati Kubelet |
etc/kubernetes//.crt pki/ca |
|
Configurazione di Containerd |
//config.toml etc/containerd |
|
Configurazione dei moduli del kernel Containerd |
etc/modules/-carica. d/containerd.conf |
|
AWS file di configurazione |
/etc/aws/hybrid/config |
|
AWS file delle credenziali (se abilita il file delle credenziali) |
/eks-hybrid/. aws/credentials |
|
AWS unità di sistema di supporto alla firma |
/etc/systemd/.servizio system/aws_signing_helper_update |
|
File conf sysctl |
/etc/sysctl. d/99-nodeadm.conf |
|
Ca-certificates |
//-certificates.crt etc/ssl certs/ca |
|
File chiave Gpg |
etc/apt/keyrings/docker/.asc |
|
File di origine del repository Docker |
//sources.list. etc/apt d/docker.lista |
Configurazione del modo per attivazioni ibride SSM
Di seguito è riportato un esempio nodeConfig.yaml di utilizzo delle attivazioni ibride AWS SSM per le credenziali dei nodi ibridi.
apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id
Configurazione del nodo per IAM Roles Anywhere
Di seguito è riportato un esempio di nodeConfig.yaml credenziali AWS IAM Roles Anywhere for hybrid nodes.
Quando si utilizza AWS IAM Roles Anywhere come provider di credenziali locale, le nodeName credenziali utilizzate nella nodeadm configurazione devono essere in linea con le autorizzazioni previste per il ruolo IAM di Hybrid Nodes. Ad esempio, se le autorizzazioni per il ruolo IAM di Hybrid Nodes consentono a AWS IAM Roles Anywhere di assumere il ruolo solo quando il nome della sessione del ruolo è uguale al CN del certificato host, allora il CN nodeName nella nodeadm configurazione deve essere uguale al CN dei certificati. Il nodeName che usi non può contenere più di 64 caratteri. Per ulteriori informazioni, consulta Preparazione delle credenziali per i nodi ibridi.
apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides hybrid: iamRolesAnywhere: nodeName: # Name of the node trustAnchorArn: # ARN of the IAM Roles Anywhere trust anchor profileArn: # ARN of the IAM Roles Anywhere profile roleArn: # ARN of the Hybrid Nodes IAM role certificatePath: # Path to the certificate file to authenticate with the IAM Roles Anywhere trust anchor privateKeyPath: # Path to the private key file for the certificate
Configurazione del nodo per personalizzare kubelet (Facoltativo)
Puoi passare la configurazione e i flag di kubelet nella tua configurazione nodeadm. Vedi l'esempio seguente per come aggiungere un'etichetta di nodo aggiuntiva abc.example.com/test-label e impostare la configurazione di kubelet su 30 secondi. shutdownGracePeriod Per ulteriori informazioni sulle opzioni di configurazione di Kubelet, consulta il riferimento alla configurazione di Kubelet (v1beta1) nella documentazione di Kubernetes.
apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides kubelet: config: # Map of kubelet config and values shutdownGracePeriod: 30s flags: # List of kubelet flags - --node-labels=abc.example.com/test-label=true hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id
Configurazione del nodo per personalizzare containerd (Facoltativo)
Puoi passare la configurazione containerd personalizzata nella tua configurazione nodeadm. La configurazione containerd per nodeadm accetta TOML in linea. Vedi l’esempio seguente su come configurare containerd per disabilitare l’eliminazione dei livelli di immagine decompressi nel content store containerd.
apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides containerd: config: | # Inline TOML containerd additional configuration [plugins."io.containerd.grpc.v1.cri".containerd] discard_unpacked_layers = false hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id
Nota
Le versioni 1.x e 2.x di Containerd utilizzano diversi formati di configurazione. Containerd 1.x utilizza la versione di configurazione 2, mentre containerd 2.x utilizza la versione di configurazione 3. Sebbene containerd 2.x rimanga retrocompatibile con la versione 2 di configurazione, si consiglia la versione 3 di config per prestazioni ottimali. Controlla la tua versione di containerd o consulta i log di installazione. containerd --version nodeadm Per maggiori dettagli sul controllo delle versioni di configurazione, vedi https://containerd.io/releases/
Puoi anche utilizzare la configurazione Containerd per abilitare il supporto di SELinux. Con SELinux abilitato su containerd, assicurati che i pod pianificati sul nodo abbiano il SecurityContext corretto e siano abilitati. LinuxOptions Ulteriori informazioni sulla configurazione di un contesto di sicurezza sono disponibili in Kubernetes documentation
Nota
Red Hat Enterprise Linux (RHEL) 8 e RHEL 9 hanno SELinux abilitato di default e impostato su strict sull’host. Per impostazione predefinita, SELinux è abilitato e impostato sulla modalità di autorizzazione in Amazon Linux 2023. Quando SELinux è impostato sulla modalità di autorizzazione sull’host, abilitarlo su containerd non bloccherà le richieste ma le registrerà in base alla configurazione SELinux sull’host.
apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: # Name of the EKS cluster region: # AWS Region where the EKS cluster resides containerd: config: | # Inline TOML containerd additional configuration [plugins."io.containerd.grpc.v1.cri"] enable_selinux = true hybrid: ssm: activationCode: # SSM hybrid activation code activationId: # SSM hybrid activation id