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à.
L'interfaccia a riga di comando di Amazon EKS Hybrid Nodes (nodeadm
) utilizzata per la gestione del ciclo di vita dei nodi ibridi è diversa dalla versione nodeadm
utilizzata per avviare le istanze EC2 Amazon come nodi nei cluster Amazon EKS. Segui la documentazione e i riferimenti per la versione appropriata. nodeadm
Questa pagina di documentazione riguarda la versione con nodi ibridi e la nodeadm
versione con nodi nodeadm
ibridi è disponibile nel repository eks-hybridnodeadm
versione utilizzata per le istanze Amazon EC2 .
Scarica nodeadm
La versione con nodi ibridi di nodeadm
è ospitata in Amazon S3 gestita da Amazon. CloudFront Per l'installazione nodeadm
su ogni host locale, puoi eseguire il seguente comando dai tuoi host locali.
Per gli 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 ai file eseguibili al file binario scaricato su ciascun host.
chmod +x nodeadm
Comandi
Importante
È necessario eseguire l'esecuzione nodeadm
con un utente con privilegi root/sudo.
Installa
Il install
comando viene utilizzato per installare gli artefatti e le dipendenze necessari per eseguire e unire nodi ibridi a un cluster Amazon EKS. Il install
comando 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 principale.minor di EKS Kubernetes da installare, ad esempio 1.31
Flag
Nome | Richiesto | Descrizione |
---|---|---|
|
TRUE |
Fornitore di credenziali da installare. I valori supportati sono |
|
FALSE |
Fonte 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 |
Visualizza un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
Installa la versione Kubernetes con AWS Systems 1.31
Manager (SSM) come provider di credenziali
nodeadm install 1.31 --credential-provider ssm
Installa la versione Kubernetes con AWS Systems 1.31
Manager (SSM) come provider di credenziali, Docker come origine containerd, con un timeout di download di 20 minuti.
nodeadm install 1.31 --credential-provider ssm --containerd-source docker --timeout 20m
Installa la versione Kubernetes con IAM Roles Anywhere come provider di credenziali 1.31
AWS
nodeadm install 1.31 --credential-provider iam-ra
File installati
Artifact | Path |
---|---|
CLI IAM Roles Anywhere |
/usr/local/bin/aws_signing_helper |
Binario Kubelet |
/usr/bin/kubelet |
Binario Kubectl |
usr/local/bin/kubectl |
Provider di credenziali ECR |
/-fornitore di credenziali etc/eks/image-credential-provider/ecr |
AWS Autenticatore IAM |
/-iam-authenticator usr/local/bin/aws |
CLI di configurazione SSM |
/-setup-cli opt/ssm/ssm |
SSM Agent |
Su Ubuntu -/-ssm-agent snap/amazon-ssm-agent/current/amazon Su RHEL e 023 -/-ssm-agent AL2 usr/bin/amazon |
Contenitori |
Su Ubuntu & AL2 023 -/usr/bin/containerd In RHEL - /bin/containerd |
Iptables |
Su Ubuntu & AL2 023 -/usr/sbin/iptables Su RHEL - /sbin/iptables |
Plugin CNI |
/opt/cni/bin |
localizzatore di artefatti installato |
/opt/nodeadm/tracker |
Controllo della configurazione
Il config check
comando verifica la presenza di errori nella configurazione del nodo fornita. Questo comando può essere utilizzato per verificare e convalidare la correttezza di un file di configurazione del nodo ibrido.
Utilizzo
nodeadm config check [flags]
Flag
Nome | Richiesto | Descrizione |
---|---|---|
|
TRUE |
Fonte della configurazione nodeadm. Per i nodi ibridi l'input deve seguire un URI con schema di file. |
|
FALSE |
Visualizza un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
nodeadm config check --config-source file:///root/nodeConfig.yaml
Inizializza
Il init
comando avvia e connette il nodo ibrido con il cluster Amazon EKS configurato.
Utilizzo
nodeadm init [flags]
Flag
Nome | Richiesto | Descrizione |
---|---|---|
|
TRUE |
Fonte di |
|
FALSE |
Fasi Valori |
|
FALSE |
Visualizza un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
nodeadm init --config-source file://root/nodeConfig.yaml
File installati
Nome | Path |
---|---|
Kubelet kubeconfig |
/var/lib/kubelet/kubeconfig |
Configurazione Kubelet |
/etc/kubernetes/kubelet/config.json |
unità Kubelet systemd |
/etc/systemd/system/kubelet.servizio |
Configurazione del provider di credenziali di immagine |
/.json etc/eks/image-credential-provider/config |
file env Kubelet |
/etc/eks/kubelet/environment |
Certificati Kubelet |
/etc/kubernetes/pki/ca.crt |
Configurazione dei contenitori |
/etc/containerd/config.toml |
Configurazione dei moduli del kernel Containerd |
/etc/modules-load.d/contianerd.conf |
AWS file di configurazione |
/etc/aws/hybrid/config |
AWS file di credenziali (se abilita il file delle credenziali) |
/eks-hybrid/.aws/credentials |
AWS unità di sistema di supporto alla firma |
/etc/systemd/system/aws_signing_helper_update.service |
File di configurazione Sysctl |
/etc/sysctl.d/99-nodeadm.conf |
File di gestione Apt per docker repository (se il sorgente containerd è docker) |
|
Certificati CA |
/-certificati.crt etc/ssl/certs/ca |
File chiave Gpg |
/.asc etc/apt/keyrings/docker |
File sorgente del repository Docker |
/.list etc/apt/sources.list.d/docker |
Upgrade
Il nodeadm upgrade
comando aggiorna tutti gli artefatti installati alla versione più recente e avvia il nodo per configurare gli artefatti aggiornati e unirsi al cluster EKS. AWS Upgrade è un comando che interrompe i carichi di lavoro in esecuzione sul nodo. Sposta 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 principale e secondaria di EKS Kubernetes da installare, ad esempio 1.31
Flag
Nome | Richiesto | Descrizione |
---|---|---|
|
TRUE |
Fonte di configurazione. |
|
FALSE |
Timeout per il download degli artefatti. L'input segue il formato della durata. Ad esempio 1h23m. Il timeout di download predefinito per il comando di aggiornamento è impostato su 10 minuti. |
|
FALSE |
Fasi dell'aggiornamento da saltare. Non è consigliabile saltare nessuna fase a meno che non sia utile per risolvere un problema. Valori |
|
FALSE |
Visualizza un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
nodeadm upgrade 1.31 --config-source file:///root/nodeConfig.yaml
nodeadm upgrade 1.31 --config-source file:///root/nodeConfig.yaml --timeout 20m
Disinstallazione
Il nodeadm uninstall
comando arresta e rimuove gli artefatti nodeadm
installati durante l'installazionenodeadm install
, inclusi kubelet e containerd. Nota, il comando di disinstallazione non scarica o elimina i nodi ibridi dal cluster. È necessario eseguire le operazioni di drenaggio ed eliminazione separatamente, vedere Rimuovi i nodi ibridi per ulteriori informazioni. Per impostazione predefinita, non nodeadm uninstall
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 all'indirizzo. Configurare un CNI per nodi ibridi Se utilizzi le attivazioni ibride AWS SSM come provider di credenziali locali, il nodeadm uninstall
comando annulla la registrazione degli host come istanze gestite tramite SSM. AWS
Utilizzo
nodeadm uninstall [flags]
Flag
Nome | Richiesto | Descrizione |
---|---|---|
|
FALSE |
Fasi dell'aggiornamento da saltare. Non è consigliabile saltare nessuna fase a meno che non sia utile per risolvere un problema. Valori |
|
FALSE |
Visualizza un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
nodeadm uninstall
nodeadm uninstall --skip node-validation,pod-validation
Esegui il debug
Il nodeadm debug
comando 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 alla rete necessaria AWS APIs 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 il nodo 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. Alcune fasi di convalida mostrano i processi secondari. Se questi falliscono, l'output viene mostrato in una sezione stderr sotto l'errore di convalida.
Utilizzo
nodeadm debug [flags]
Flag
Nome | Richiesto | Descrizione |
---|---|---|
|
TRUE |
Fonte di configurazione. |
|
FALSE |
Disattiva l'output a colori. Utile per l'automazione. |
|
FALSE |
Visualizza un messaggio di aiuto con i parametri di flag, sottocomando e valore posizionale disponibili. |
Esempi
nodeadm debug --config-source file://nodeConfig.yaml
Riferimento all'API Node Config
AWS 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
AWS IAM Roles Anywhere
Di seguito è riportato un nodeConfig.yaml
esempio delle credenziali di AWS IAM Roles Anywhere for hybrid nodes.
Quando utilizzi 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 la nodeName
nodeadm
configurazione deve essere la stessa del CN dei tuoi certificati. Quello nodeName
che usi non può contenere più di 64 caratteri. Per ulteriori informazioni, consulta Preparare le 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
(Opzionale) Configurazione Kubelet
Puoi passare la configurazione e i flag di Kubelet nella tua configurazione. nodeadm
Vedi l'esempio seguente per come aggiungere un'etichetta abc.amazonaws.com/test-label
e una configurazione del nodo aggiuntive per l'impostazione shutdownGracePeriod
su 30 secondi.
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.company.com/test-label=true
hybrid:
ssm:
activationCode: # SSM hybrid activation code
activationId: # SSM hybrid activation id
(Facoltativo) Configurazione dei contenitori
Puoi passare la configurazione containerd personalizzata nella tua configurazione. nodeadm
La configurazione containerd nodeadm
per accetta TOML in linea. Vedi l'esempio seguente per 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
Puoi anche usare la configurazione containerd per abilitare il supporto. SELinux Con SELinux enabled on containerd, assicurati che i pod programmati sul nodo abbiano il SecurityContext corretto e siano abilitati. seLinuxOptions Ulteriori informazioni sulla configurazione di un contesto di sicurezza sono disponibili nella documentazione di Kubernetes.
Nota
Red Hat Enterprise Linux (RHEL) 8 e RHEL 9 sono SELinux abilitati di default e impostati su strict sull'host. Amazon Linux 2023 è SELinux abilitato per impostazione predefinita e impostato in modalità permissiva. Quando SELinux è impostata la modalità permissiva sull'host, abilitarla su containerd non bloccherà le richieste ma le registrerà in base alla configurazione sull'host. SELinux
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