Connessione di nodi ibridi - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Connessione di nodi ibridi

Nota

I seguenti passaggi si applicano ai nodi ibridi che eseguono sistemi operativi compatibili ad eccezione di Bottlerocket. Per i passaggi per connettere un nodo ibrido che esegue Bottlerocket, consultare Connessione dei nodi ibridi con Bottlerocket.

In questo argomento viene descritto come connettere nodi ibridi a un cluster Amazon EKS. Dopo che i nodi ibridi si sono uniti al cluster, verranno visualizzati con lo stato Not Ready nella console Amazon EKS e in strumenti compatibili con Kubernetes come kubectl. Dopo aver completato i passaggi in questa pagina, procedi su Configurazione della CNI per nodi ibridi per preparare i nodi ibridi per l’esecuzione delle applicazioni.

Prerequisiti

Prima di connettere i nodi ibridi al cluster Amazon EKS, assicurati di aver completato tutti i passaggi relativi ai prerequisiti.

Passaggio 1: installazione della CLI per nodi ibridi (nodeadm) su ogni host on-premises

Se si include la CLI Amazon EKS Hybrid Nodes (nodeadm) nelle immagini predefinite del sistema operativo, è possibile saltare questo passaggio. Per maggiori informazioni sulla versione per nodi ibridi del nodeadm, consultare Riferimento nodeadm dei nodi ibridi.

La versione di nodeadm per nodi ibridi è ospitata in Amazon S3 e gestita da Amazon CloudFront. Per installare nodeadm su ciascun host on-premises, puoi eseguire il seguente comando dagli 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

Passaggio 2: installazione delle dipendenze dei nodi ibridi con nodeadm

Se si stanno installando le dipendenze dei nodi ibridi in immagini del sistema operativo predefinite, è possibile ignorare questo passaggio. Il comando nodeadm install può essere utilizzato per installare tutte le dipendenze richieste per i nodi ibridi. Le dipendenze dei nodi ibridi includono containerd, kubelet, kubectl e i componenti SSM di AWS o IAM Roles Anywhere di AWS. Consultare Riferimento nodeadm dei nodi ibridi per ulteriori informazioni sui componenti e le posizioni dei file installati da nodeadm install. Consultare la sezione Preparazione della rete per i nodi ibridi dedicata ai nodi ibridi per ulteriori informazioni sui domini che devono essere consentiti nel firewall on-premises per il processo nodeadm install.

Eseguire il comando seguente per installare le dipendenze dei nodi ibridi sull’host on-premises. Il comando seguente deve essere eseguito con un utente con accesso sudo/root sull’host.

Importante

La CLI per nodi ibridi (nodeadm) deve essere eseguita con un utente con accesso sudo/root sull’host.

  • Sostituire K8S_VERSION con la versione secondaria Kubernetes del cluster Amazon EKS, ad esempio 1.31. Consultare Amazon EKS supported versions per un elenco delle versioni Kubernetes supportate.

  • Sostituire CREDS_PROVIDER con il provider di credenziali on-premises che si sta utilizzando. I valori validi sono ssm per SSM di AWS e iam-ra per IAM Roles Anywhere di AWS.

nodeadm install K8S_VERSION --credential-provider CREDS_PROVIDER

Passaggio 3: connessione dei nodi ibridi al cluster

Prima di connettere i nodi ibridi al cluster, assicurati di aver consentito l’accesso richiesto nel firewall on-premises e nel gruppo di sicurezza del cluster per il piano di controllo di Amazon EKS da/verso la comunicazione tra nodi ibridi. La maggior parte dei problemi in questa Passaggio riguarda la configurazione del firewall, la configurazione del gruppo di sicurezza o la configurazione del ruolo IAM dei nodi ibridi.

Importante

La CLI per nodi ibridi (nodeadm) deve essere eseguita con un utente con accesso sudo/root sull’host.

  1. Crea un file nodeConfig.yaml su ogni host con i valori per la tua implementazione. Per una descrizione completa delle impostazioni di configurazione disponibili, consulta Riferimento nodeadm dei nodi ibridi. Se il ruolo IAM dei nodi ibridi non dispone dell’autorizzazione per l’azione eks:DescribeCluster, devi passare l’endpoint dell’API Kubernetes, il cluster CA bundle e il servizio Kubernetes IPv4 CIDR nella sezione cluster del tuo nodeConfig.yaml.

    1. Utilizza il nodeConfig.yaml di esempio seguente se utilizzi attivazioni ibride SSM di AWS per il tuo provider di credenziali on-premises.

      1. Sostituisci CLUSTER_NAME con il nome del cluster.

      2. Sostituisci AWS_REGION con la Regione AWS in cui si trova il cluster. Ad esempio, us-west-2.

      3. Sostituisci ACTIVATION_CODE con il codice di attivazione che hai ricevuto durante la creazione dell’attivazione ibrida SSM di AWS. Per ulteriori informazioni, consulta Preparazione delle credenziali per i nodi ibridi.

      4. Sostituisci ACTIVATION_ID con l’ID di attivazione che hai ricevuto durante la creazione dell’attivazione ibrida SSM di AWS. È possibile recuperare queste informazioni dalla console Systems Manager di AWS o dal comando aws ssm describe-activations della AWS CLI.

        apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: CLUSTER_NAME region: AWS_REGION hybrid: ssm: activationCode: ACTIVATION_CODE activationId: ACTIVATION_ID
    2. Utilizza il nodeConfig.yaml di esempio seguente se utilizzi IAM Roles Anywhere di AWS per il tuo provider di credenziali on-premises.

      1. Sostituisci CLUSTER_NAME con il nome del cluster.

      2. Sostituisci AWS_REGION con la Regione AWS in cui si trova il cluster. Ad esempio, us-west-2.

      3. Sostituisci NODE_NAME con il nome del ruolo del nodo. Il nome del nodo deve corrispondere al CN del certificato sull’host se hai configurato la policy di attendibilità del ruolo IAM di Hybrid Nodes con la condizione della risorsa "sts:RoleSessionName": "${aws:PrincipalTag/x509Subject/CN}". Il nodeName che usi non deve superare i 64 caratteri.

      4. Sostituisci TRUST_ANCHOR_ARN con l’ARN dell’ancora di fiducia che hai configurato nei passaggi per Preparare le credenziali per i nodi ibridi.

      5. Sostituisci PROFILE_ARN con l’ARN dell’ancora di fiducia che hai configurato nei passaggi per Preparazione delle credenziali per i nodi ibridi.

      6. Sostituisci ROLE_ARN con l’ARN del ruolo IAM dei nodi ibridi.

      7. Sostituisci CERTIFICATE_PATH con il percorso su disco del certificato del tuo nodo. Se non lo specifichi, il valore predefinito è /etc/iam/pki/server.pem.

      8. Sostituisci KEY_PATH con il percorso su disco della chiave privata del certificato. Se non lo specifichi, il valore predefinito è /etc/iam/pki/server.key.

        apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: CLUSTER_NAME region: AWS_REGION hybrid: iamRolesAnywhere: nodeName: NODE_NAME trustAnchorArn: TRUST_ANCHOR_ARN profileArn: PROFILE_ARN roleArn: ROLE_ARN certificatePath: CERTIFICATE_PATH privateKeyPath: KEY_PATH
  2. Esegui il comando nodeadm init con il tuo nodeConfig.yaml per connettere i nodi ibridi al cluster Amazon EKS.

    nodeadm init -c file://nodeConfig.yaml

Se il comando precedente viene effettuato correttamente, il nodo ibrido si unisce al cluster Amazon EKS. Puoi verificarlo nella console Amazon EKS accedendo alla scheda Calcolo del tuo cluster (assicurati che il principale IAM disponga delle autorizzazioni per la visualizzazione) o con kubectl get nodes.

Importante

I nodi avranno lo stato Not Ready previsto, dovuto alla mancanza di una CNI in esecuzione sui nodi ibridi. Se i tuoi nodi non si sono uniti al cluster, consulta Risoluzione dei problemi relativi ai nodi ibridi.

Passaggio 4: configurazione di una CNI per i nodi ibridi

Per preparare i nodi ibridi all’esecuzione delle applicazioni, continua con i passaggi su Configurazione della CNI per nodi ibridi.