Implementazione di un EKS IPv6 cluster Amazon e nodi Amazon Linux gestiti - Amazon EKS

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à.

Implementazione di un EKS IPv6 cluster Amazon e nodi Amazon Linux gestiti

In questo tutorial, distribuisci un IPv6 AmazonVPC, un EKS cluster Amazon con la IPv6 famiglia e un gruppo di nodi gestiti con nodi Amazon EC2 Amazon Linux. Non puoi distribuire Amazon EC2 Windows nodi in un IPv6 cluster. Puoi anche distribuire nodi Fargate sul tuo cluster, anche se queste istruzioni non sono fornite in questo argomento per semplicità.

Prerequisiti

Completa quanto segue prima di iniziare il tutorial:

Installa e configura i seguenti strumenti e risorse necessari per creare e gestire un EKS cluster Amazon.

  • Ti consigliamo di acquisire familiarità con tutte le impostazioni e di distribuire un cluster con le impostazioni che soddisfano i tuoi requisiti. Per ulteriori informazioni, vedere Crea un EKS cluster AmazonSemplifica il ciclo di vita dei nodi con gruppi di nodi gestiti, e le considerazioni relative a questo argomento. Alcune impostazioni possono essere abilitate solo quando viene creato il cluster.

  • Lo strumento da kubectl riga di comando è installato sul dispositivo o AWS CloudShell. La versione può essere uguale o superiore a una versione secondaria precedente o successiva alla Kubernetes versione del cluster. Ad esempio, se la versione del cluster è 1.29, puoi usare kubectl versione 1.28, 1.29 o 1.30. Per installare o aggiornare kubectl, consulta Configura kubectl ed eksctl:

  • Il responsabile della IAM sicurezza che stai utilizzando deve disporre delle autorizzazioni per lavorare con EKS IAM i ruoli Amazon, i ruoli collegati ai servizi AWS CloudFormationVPC, a e le risorse correlate. Per ulteriori informazioni, consulta Azioni e utilizzo dei ruoli collegati ai servizi nella Guida per l'IAMutente.

  • Se utilizzi il plugin eksctl, installa la versione 0.194.0 o una versione successiva sul tuo computer. Per installarlo o aggiornarlo, consulta la sezione Installation nella documentazione di eksctl.

  • Versione 2.12.3 o successiva o versione 1.27.160 o successiva dell'interfaccia a riga di AWS comando (AWS CLI) installata e configurata sul dispositivo o AWS CloudShell. Per verificare la versione attuale, usa aws --version | cut -d / -f2 | cut -d ' ' -f1. Package manager come yumapt-get, o Homebrew for macOS sono spesso presenti diverse versioni precedenti alla versione più recente di AWS CLI. Per installare la versione più recente, consulta Installazione e configurazione rapida con aws configure nella Guida per l'utente dell'interfaccia a riga di AWS comando. La AWS CLI versione installata in AWS CloudShell potrebbe anche contenere diverse versioni precedenti alla versione più recente. Per aggiornarla, consulta Installazione nella home directory nella Guida AWS CLI per l' AWS CloudShell utente. Se si utilizza la AWS CloudShell, potrebbe essere necessario installare la versione 2.12.3 o successiva o la versione 1.27.160 o successiva di AWS CLI, poiché la AWS CLI versione predefinita installata in AWS CloudShell potrebbe essere una versione precedente.

Puoi utilizzare il plugin eksctl o per distribuire un CLI cluster. IPv6

Implementa un cluster con IPv6 eksctl

  1. Crea il file ipv6-cluster.yaml. Copia il comando seguente sul tuo dispositivo. Apportare le seguenti modifiche al comando, se necessario, quindi esegui il comando modificato:

    • Replace (Sostituisci) my-cluster con un nome per il tuo cluster. Il nome può contenere solo caratteri alfanumerici (con distinzione tra lettere maiuscole e minuscole) e trattini. Deve iniziare con un carattere alfanumerico e non può superare i 100 caratteri. Il nome deve essere univoco all'interno della AWS regione e AWS dell'account in cui stai creando il cluster.

    • Replace (Sostituisci) region-code con qualsiasi AWS regione supportata da AmazonEKS. Per un elenco delle AWS regioni, consulta gli EKSendpoint e le quote di Amazon nella guida di riferimento AWS generale.

    • Il valore per version con la versione del tuo cluster. Per ulteriori informazioni, consulta Comprendi il ciclo di vita della versione Kubernetes su EKS.

    • Replace (Sostituisci) my-nodegroup con un nome per il tuo gruppo di nodi. Il nome del gruppo di nodi non può superare i 63 caratteri. Deve iniziare con una lettera o un numero, ma può anche includere trattini e caratteri di sottolineatura.

    • Replace (Sostituisci) t3.medium con qualsiasi tipo di istanza di AWS Nitro System.

      cat >ipv6-cluster.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: "X.XX" kubernetesNetworkConfig: ipFamily: IPv6 addons: - name: vpc-cni version: latest - name: coredns version: latest - name: kube-proxy version: latest iam: withOIDC: true managedNodeGroups: - name: my-nodegroup instanceType: t3.medium EOF
  2. Creare il cluster.

    eksctl create cluster -f ipv6-cluster.yaml

    La creazione di cluster richiede diversi minuti. Non procedere finché non viene visualizzata l'ultima riga di output, che è simile all'output seguente.

    [...] [✓] EKS cluster "my-cluster" in "region-code" region is ready
  3. Conferma l'impostazione predefinita Pods vengono assegnati IPv6 indirizzi.

    kubectl get pods -n kube-system -o wide

    Di seguito viene riportato un output di esempio:

    NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES aws-node-rslts 1/1 Running 1 5m36s 2600:1f13:b66:8200:11a5:ade0:c590:6ac8 ip-192-168-34-75.region-code.compute.internal <none> <none> aws-node-t74jh 1/1 Running 0 5m32s 2600:1f13:b66:8203:4516:2080:8ced:1ca9 ip-192-168-253-70.region-code.compute.internal <none> <none> coredns-85d5b4454c-cw7w2 1/1 Running 0 56m 2600:1f13:b66:8203:34e5:: ip-192-168-253-70.region-code.compute.internal <none> <none> coredns-85d5b4454c-tx6n8 1/1 Running 0 56m 2600:1f13:b66:8203:34e5::1 ip-192-168-253-70.region-code.compute.internal <none> <none> kube-proxy-btpbk 1/1 Running 0 5m36s 2600:1f13:b66:8200:11a5:ade0:c590:6ac8 ip-192-168-34-75.region-code.compute.internal <none> <none> kube-proxy-jjk2g 1/1 Running 0 5m33s 2600:1f13:b66:8203:4516:2080:8ced:1ca9 ip-192-168-253-70.region-code.compute.internal <none> <none>
  4. Confermare che ai servizi di default siano assegnati indirizzi IPv6.

    kubectl get services -n kube-system -o wide

    Di seguito viene riportato un output di esempio:

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR kube-dns ClusterIP fd30:3087:b6c2::a <none> 53/UDP,53/TCP 57m k8s-app=kube-dns
  5. (Facoltativo) Implementa un'applicazione di esempio o implementa il Load AWS Balancer Controller e un'applicazione di esempio per HTTP bilanciare il carico delle applicazioni o del traffico di Indirizza l'applicazione e HTTP il traffico con Application Load Balancer rete con Percorso TCP e UDP traffico con Network Load Balancer IPv6 Pods.

  6. Dopo aver finito con il cluster e i nodi che hai creato per questo tutorial, dovresti ripulire le risorse che hai creato con il seguente comando.

    eksctl delete cluster my-cluster

Distribuisci un IPv6 cluster con AWS CLI

Importante
  • È necessario che tutti i passaggi di questa guida siano completati dallo stesso utente. Esegui il comando seguente per controllare l'utente corrente:

    aws sts get-caller-identity
  • È necessario completare tutti i passaggi di questa procedura nella stessa shell. Diversi passaggi utilizzano le variabili impostate nelle fasi precedenti. I passaggi che utilizzano le variabili non funzioneranno correttamente se i valori delle variabili sono impostati in una shell diversa. Se utilizzate il AWS CloudShellper completare la procedura seguente, ricordate che se non interagite con essa utilizzando la tastiera o il puntatore per circa 20-30 minuti, la sessione di shell termina. I processi in esecuzione non sono considerati interazioni.

  • Le istruzioni sono scritte per la shell Bash e per altre shell potrebbero essere necessarie ulteriori regolazioni.

Sostituisci tutto example values nei passaggi di questa procedura con i propri valori.

  1. Emettere i seguenti comandi per impostare alcune variabili utilizzate nelle fasi successive. Replace (Sostituisci) region-code con la AWS regione in cui desideri distribuire le tue risorse. Il valore può essere qualsiasi AWS regione supportata da AmazonEKS. Per un elenco delle AWS regioni, consulta gli EKSendpoint e le quote di Amazon nella guida di riferimento AWS generale. Replace (Sostituisci) my-cluster con un nome per il tuo cluster. Il nome può contenere solo caratteri alfanumerici (con distinzione tra lettere maiuscole e minuscole) e trattini. Deve iniziare con un carattere alfanumerico e non può superare i 100 caratteri. Il nome deve essere univoco all'interno della AWS regione e AWS dell'account in cui stai creando il cluster. Replace (Sostituisci) my-nodegroup con un nome per il tuo gruppo di nodi. Il nome del gruppo di nodi non può superare i 63 caratteri. Deve iniziare con una lettera o un numero, ma può anche includere trattini e caratteri di sottolineatura. Replace (Sostituisci) 111122223333 con l'ID del tuo account.

    export region_code=region-code export cluster_name=my-cluster export nodegroup_name=my-nodegroup export account_id=111122223333
  2. Crea un Amazon VPC con sottoreti pubbliche e private che soddisfi i requisiti di AmazonEKS. IPv6

    1. Esegui il comando seguente per impostare una variabile per il nome AWS CloudFormation dello stack. Puoi sostituire my-eks-ipv6-vpc con qualsiasi nome tu scelga.

      export vpc_stack_name=my-eks-ipv6-vpc
    2. Crea e IPv6 VPC utilizza un AWS CloudFormation modello.

      aws cloudformation create-stack --region $region_code --stack-name $vpc_stack_name \ --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-ipv6-vpc-public-private-subnets.yaml

      La creazione dello stack richiede alcuni minuti. Esegui il comando seguente. Non proseguite con il passaggio successivo finché l'output del comando non sarà raggiuntoCREATE_COMPLETE.

      aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name --query Stacks[].StackStatus --output text
    3. Recupera le IDs sottoreti pubbliche che sono state create.

      aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \ --query='Stacks[].Outputs[?OutputKey==`SubnetsPublic`].OutputValue' --output text

      Di seguito viene riportato un output di esempio:

      subnet-0a1a56c486EXAMPLE,subnet-099e6ca77aEXAMPLE
    4. Abilitare l'opzione di assegnazione automatica dell'indirizzo IPv6 per le sottoreti pubbliche create.

      aws ec2 modify-subnet-attribute --region $region_code --subnet-id subnet-0a1a56c486EXAMPLE --assign-ipv6-address-on-creation aws ec2 modify-subnet-attribute --region $region_code --subnet-id subnet-099e6ca77aEXAMPLE --assign-ipv6-address-on-creation
    5. Recupera i nomi delle sottoreti e dei gruppi di sicurezza creati dal modello dallo AWS CloudFormation stack distribuito e memorizzali in variabili da utilizzare in un passaggio successivo.

      security_groups=$(aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \ --query='Stacks[].Outputs[?OutputKey==`SecurityGroups`].OutputValue' --output text) public_subnets=$(aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \ --query='Stacks[].Outputs[?OutputKey==`SubnetsPublic`].OutputValue' --output text) private_subnets=$(aws cloudformation describe-stacks --region $region_code --stack-name $vpc_stack_name \ --query='Stacks[].Outputs[?OutputKey==`SubnetsPrivate`].OutputValue' --output text) subnets=${public_subnets},${private_subnets}
  3. Crea un IAM ruolo del cluster e allega la policy EKS IAM gestita di Amazon richiesta. Kubernetes i cluster gestiti da Amazon EKS effettuano chiamate ad altri AWS servizi per tuo conto per gestire le risorse che utilizzi con il servizio.

    1. Per creare il file eks-cluster-role-trust-policy.json, emetti il seguente comando:

      cat >eks-cluster-role-trust-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF
    2. Eseguire questo comando per impostare una variabile per il nome del ruolo. Puoi sostituire myAmazonEKSClusterRole con qualsiasi nome tu scelga.

      export cluster_role_name=myAmazonEKSClusterRole
    3. Crea il ruolo.

      aws iam create-role --role-name $cluster_role_name --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
    4. Recupera ARN il IAM ruolo e memorizzalo in una variabile per un passaggio successivo.

      CLUSTER_IAM_ROLE=$(aws iam get-role --role-name $cluster_role_name --query="Role.Arn" --output text)
    5. Allega la IAM policy EKS gestita di Amazon richiesta al ruolo.

      aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy --role-name $cluster_role_name
  4. Creare il cluster.

    aws eks create-cluster --region $region_code --name $cluster_name --kubernetes-version 1.XX \ --role-arn $CLUSTER_IAM_ROLE --resources-vpc-config subnetIds=$subnets,securityGroupIds=$security_groups \ --kubernetes-network-config ipFamily=ipv6
    1. NOTE: Potresti ricevere un errore che indica che una delle zone di disponibilità nella tua richiesta non ha una capacità sufficiente per creare un EKS cluster Amazon. In questo caso, l'output di errore contiene le zone di disponibilità in grado di supportare un nuovo cluster. Riprova a creare il cluster con almeno due sottoreti che si trovano nelle zone di disponibilità supportate per il tuo account. Per ulteriori informazioni, consulta Capacità insufficiente.

      La creazione del cluster richiede diversi minuti. Esegui il comando seguente. Non continuare con il passaggio successivo finché l'output del comando non è disponibileACTIVE.

      aws eks describe-cluster --region $region_code --name $cluster_name --query cluster.status
  5. Creare o aggiornare un file kubeconfig per il cluster in modo che sia possibile comunicare con il cluster.

    aws eks update-kubeconfig --region $region_code --name $cluster_name

    Per impostazione predefinita, il config file viene creato in ~/.kube o la configurazione del nuovo cluster viene aggiunta a un config file esistente in~/.kube.

  6. Crea un IAM ruolo del nodo.

    1. Per creare il file vpc-cni-ipv6-policy.json, emetti il seguente comando:

      cat >vpc-cni-ipv6-policy <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AssignIpv6Addresses", "ec2:DescribeInstances", "ec2:DescribeTags", "ec2:DescribeNetworkInterfaces", "ec2:DescribeInstanceTypes" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws: ec2:*:*:network-interface/*" ] } ] } EOF
    2. Crea la IAM politica.

      aws iam create-policy --policy-name AmazonEKS_CNI_IPv6_Policy --policy-document file://vpc-cni-ipv6-policy.json
    3. Per creare il file node-role-trust-relationship.json, emetti il seguente comando:

      cat >node-role-trust-relationship.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF
    4. Eseguire questo comando per impostare una variabile per il nome del ruolo. Puoi sostituire AmazonEKSNodeRole con qualsiasi nome tu scelga.

      export node_role_name=AmazonEKSNodeRole
    5. Crea il IAM ruolo.

      aws iam create-role --role-name $node_role_name --assume-role-policy-document file://"node-role-trust-relationship.json"
    6. Allega la IAM policy al IAM ruolo.

      aws iam attach-role-policy --policy-arn arn:aws: iam::$account_id:policy/AmazonEKS_CNI_IPv6_Policy \ --role-name $node_role_name
      Importante

      Per semplicità, in questo tutorial, la policy è allegata a questo IAM ruolo. In un cluster di produzione, tuttavia, consigliamo di assegnare la politica a un IAM ruolo separato. Per ulteriori informazioni, consulta Configura il VPC CNI plug-in Amazon da utilizzare IRSA.

    7. Allega due politiche IAM gestite obbligatorie al IAM ruolo.

      aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy \ --role-name $node_role_name aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \ --role-name $node_role_name
    8. Recupera ARN il IAM ruolo e memorizzalo in una variabile per un passaggio successivo.

      node_iam_role=$(aws iam get-role --role-name $node_role_name --query="Role.Arn" --output text)
  7. Creare un gruppo di nodi gestito.

    1. Visualizza le IDs sottoreti che hai creato in un passaggio precedente.

      echo $subnets

      Di seguito viene riportato un output di esempio:

      subnet-0a1a56c486EXAMPLE,subnet-099e6ca77aEXAMPLE,subnet-0377963d69EXAMPLE,subnet-0c05f819d5EXAMPLE
    2. Creare il gruppo di nodi. Replace (Sostituisci) 0a1a56c486EXAMPLE, 099e6ca77aEXAMPLE, 0377963d69EXAMPLEe 0c05f819d5EXAMPLE con i valori restituiti nell'output del passaggio precedente. Assicurati di rimuovere le virgole tra subnet IDs dall'output precedente nel comando seguente. È possibile sostituire t3.medium con qualsiasi tipo di istanza di AWS Nitro System.

      aws eks create-nodegroup --region $region_code --cluster-name $cluster_name --nodegroup-name $nodegroup_name \ --subnets subnet-0a1a56c486EXAMPLE subnet-099e6ca77aEXAMPLE subnet-0377963d69EXAMPLE subnet-0c05f819d5EXAMPLE \ --instance-types t3.medium --node-role $node_iam_role

      La creazione del gruppo di nodi richiede alcuni minuti. Esegui il comando seguente. Non procedere al passaggio successivo finché non viene ACTIVE restituito l'output.

      aws eks describe-nodegroup --region $region_code --cluster-name $cluster_name --nodegroup-name $nodegroup_name \ --query nodegroup.status --output text
  8. Conferma che è l'impostazione predefinita Pods vengono assegnati IPv6 gli indirizzi nella IP colonna.

    kubectl get pods -n kube-system -o wide

    Di seguito viene riportato un output di esempio:

    NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES aws-node-rslts 1/1 Running 1 5m36s 2600:1f13:b66:8200:11a5:ade0:c590:6ac8 ip-192-168-34-75.region-code.compute.internal <none> <none> aws-node-t74jh 1/1 Running 0 5m32s 2600:1f13:b66:8203:4516:2080:8ced:1ca9 ip-192-168-253-70.region-code.compute.internal <none> <none> coredns-85d5b4454c-cw7w2 1/1 Running 0 56m 2600:1f13:b66:8203:34e5:: ip-192-168-253-70.region-code.compute.internal <none> <none> coredns-85d5b4454c-tx6n8 1/1 Running 0 56m 2600:1f13:b66:8203:34e5::1 ip-192-168-253-70.region-code.compute.internal <none> <none> kube-proxy-btpbk 1/1 Running 0 5m36s 2600:1f13:b66:8200:11a5:ade0:c590:6ac8 ip-192-168-34-75.region-code.compute.internal <none> <none> kube-proxy-jjk2g 1/1 Running 0 5m33s 2600:1f13:b66:8203:4516:2080:8ced:1ca9 ip-192-168-253-70.region-code.compute.internal <none> <none>
  9. Confermare che ai servizi di default siano assegnati gli indirizzi IPv6 nella colonna IP.

    kubectl get services -n kube-system -o wide

    Di seguito viene riportato un output di esempio:

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR kube-dns ClusterIP fd30:3087:b6c2::a <none> 53/UDP,53/TCP 57m k8s-app=kube-dns
  10. (Facoltativo) Implementa un'applicazione di esempio o implementa il Load AWS Balancer Controller e un'applicazione di esempio per HTTP bilanciare il carico delle applicazioni o del traffico di Indirizza l'applicazione e HTTP il traffico con Application Load Balancer rete con Percorso TCP e UDP traffico con Network Load Balancer IPv6 Pods.

  11. Dopo aver finito con il cluster e i nodi che hai creato per questo tutorial, dovresti ripulire le risorse che hai creato con i seguenti comandi. Assicurati di non utilizzare nessuna delle risorse al di fuori di questo tutorial prima di eliminarle.

    1. Se stai completando questo passaggio in una shell diversa da quella in cui hai completato i passaggi precedenti, imposta i valori di tutte le variabili utilizzate nei passaggi precedenti, sostituendo il example values con i valori che hai specificato quando hai completato i passaggi precedenti. Se stai completando questo passaggio nella stessa shell in cui hai completato i passaggi precedenti, passa al passaggio successivo.

      export region_code=region-code export vpc_stack_name=my-eks-ipv6-vpc export cluster_name=my-cluster export nodegroup_name=my-nodegroup export account_id=111122223333 export node_role_name=AmazonEKSNodeRole export cluster_role_name=myAmazonEKSClusterRole
    2. Eliminare il gruppo di nodi.

      aws eks delete-nodegroup --region $region_code --cluster-name $cluster_name --nodegroup-name $nodegroup_name

      L'eliminazione richiede pochi minuti. Esegui il comando seguente. Non procedere al passaggio successivo se viene restituito un output.

      aws eks list-nodegroups --region $region_code --cluster-name $cluster_name --query nodegroups --output text
    3. Elimina il cluster.

      aws eks delete-cluster --region $region_code --name $cluster_name

      L'eliminazione del cluster richiede alcuni minuti. Prima di continuare, accertarsi che il cluster sia eliminato con il comando seguente:

      aws eks describe-cluster --region $region_code --name $cluster_name

      Non procedete al passaggio successivo finché l'output non sarà simile a quello successivo.

      An error occurred (ResourceNotFoundException) when calling the DescribeCluster operation: No cluster found for name: my-cluster.
    4. Eliminate le IAM risorse che avete creato. Replace (Sostituisci) AmazonEKS_CNI_IPv6_Policy con il nome che hai scelto, se hai scelto un nome diverso da quello usato nei passaggi precedenti.

      aws iam detach-role-policy --role-name $cluster_role_name --policy-arn arn:aws: iam::aws:policy/AmazonEKSClusterPolicy aws iam detach-role-policy --role-name $node_role_name --policy-arn arn:aws: iam::aws:policy/AmazonEKSWorkerNodePolicy aws iam detach-role-policy --role-name $node_role_name --policy-arn arn:aws: iam::aws:policy/AmazonEC2ContainerRegistryReadOnly aws iam detach-role-policy --role-name $node_role_name --policy-arn arn:aws: iam::$account_id:policy/AmazonEKS_CNI_IPv6_Policy aws iam delete-policy --policy-arn arn:aws: iam::$account_id:policy/AmazonEKS_CNI_IPv6_Policy aws iam delete-role --role-name $cluster_role_name aws iam delete-role --role-name $node_role_name
    5. Elimina lo AWS CloudFormation stack che ha creato ilVPC.

      aws cloudformation delete-stack --region $region_code --stack-name $vpc_stack_name