Salta al contenuto

Come posso aggiungere nuove sottoreti a un cluster Amazon EKS esistente?

4 minuti di lettura
0

Desidero aggiungere nuove sottoreti al piano di controllo (control-plane) di un cluster Amazon Elastic Kubernetes Service (Amazon EKS).

Breve descrizione

Se aggiungi sottoreti a nuove zone di disponibilità o rimuovi sottoreti da zone di disponibilità esistenti, potresti ricevere un messaggio di errore simile al seguente:

“An error occurred (InvalidParameterException) when calling the UpdateClusterConfig operation: Provided subnets belong to the AZs 'us-west-2a,us-west-2c,us-west-2d'. But they should belong to the exact set of AZs 'us-west-2a,us-west-2c' in which subnets were provided during cluster creation.”

Le sottoreti devono trovarsi nello stesso set di zone di disponibilità che AWS ha scelto per te al momento della creazione del cluster. Le sottoreti devono inoltre trovarsi nello stesso Amazon Virtual Private Cloud (Amazon VPC) fornito da AWS al momento della creazione del cluster. Il VPC deve avere un numero sufficiente di indirizzi IP disponibili per il cluster. Per ulteriori informazioni, consulta Creazione di una sottorete e Considerazioni e requisiti relativi al VPC.

Risoluzione

Per modificare le sottoreti di un cluster Amazon EKS, puoi utilizzare la console Amazon EKS, AWS CLI o eksctl CLI.

Utilizza la console Amazon EKS

Completa i seguenti passaggi:

  1. Apri la console Amazon EKS.
  2. Nel pannello di navigazione scegliCluster.
  3. Scegli Rete, quindi Gestisci le risorse VPC.
  4. Nel menu Sottoreti, seleziona le sottoreti da aggiungere.
  5. Scegli Salva.
  6. Nella sezione Rete, verifica che le sottoreti siano state aggiunte.

Utilizza AWS CLI

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Il comando AWS CLI sostituisce le sottoreti del cluster esistenti con le sottoreti incluse nel comando. Per aggiungere sottoreti, specificare le sottoreti esistenti e le sottoreti aggiuntive.

  1. Esegui il comando describe-subnets per identificare le zone di disponibilità configurate per il cluster EKS:

    aws ec2 describe-subnets --subnet-ids $(aws eks describe-cluster --name your-cluster-name --query 'cluster.resourcesVpcConfig.subnetIds' --output text) --query 'Subnets[*].AvailabilityZone'

    Nota: sostituisci your-cluster-name con il nome del tuo cluster e gli esempi di ID delle sottoreti con gli ID delle tue sottoreti.
    Esempio di output:

    [
        "us-west-2c",
        "us-west-2d",
        "us-west-2a"
    ]
  2. Esegui il comando update-cluster-config per aggiornare le sottoreti del piano di controllo (control-plane) del cluster:

    aws eks update-cluster-config --name your-cluster-name \
    --resources-vpc-config subnetIds=subnet-1234,subnet-5678,subnet-9101

    Nota: sostituisci your-cluster-name con il nome del tuo cluster e gli esempi di ID delle sottoreti con gli ID delle tue sottoreti. Quando aggiungi nuove sottoreti, assicurati di far rappresentare ciascuna zona di disponibilità del set originale da almeno una sottorete. Per mantenere una sottorete esistente per una zona di disponibilità, includi la sottorete nel comando.
    L'esempio seguente ottiene le zone di disponibilità correnti del cluster EKS e aggiunge nuove sottoreti alle zone esistenti. Il comando update-cluster-config include le sottoreti originali e nuove per mantenere la configurazione della zona di disponibilità del cluster ed espandere le sottoreti in ciascuna zona:

    aws eks describe-cluster --name gpusharing-demo --query 'cluster.resourcesVpcConfig.subnetIds'
    [
        "subnet-03d59dfc8d9380b4c",
        "subnet-0c4f51f27d109fa32",
        "subnet-037b42db1a08da5ae"
    ]
    
    aws eks update-cluster-config --name gpusharing-demo --resources-vpc-config subnetIds=subnet-xxxxxxx80b4c,subnet-xxxxxxx8da5ae,subnet-xxxxxxx9fa32,subnet-xxxxxxee3bb,subnet-xxxxxxa761ac,subnet-xxxxxxde8b8
    {
    "update": {
    "id": "e7ed1fbf-01ab-3472-8204-149cdc3337be",
    "status": "InProgress",
    "type": "VpcConfigUpdate",
    "params": [
    {
    "type": "Subnets",
    "value": "[subnet-xxxxxxx80b4c, subnet-xxxxxxx8da5ae, subnet-xxxxxxxx9fa32, subnet-xxxxxxxee3bb, subnet-xxxxxxxxa761ac, subnet-xxxxxxde8b8]"
    }
    ],
    "createdAt": "2024-09-09T18:06:16.493000+00:00",
    "errors": []
    }
    }

Utilizza eksctl CLI

Il comando eksctl CLI sostituisce le sottoreti del cluster esistenti con le sottoreti incluse nel comando. Per aggiungere sottoreti, specificare le sottoreti esistenti e le sottoreti aggiuntive.

Esegui questo comando eksctl per aggiornare le sottoreti del piano di controllo (control-plane) del cluster:

eksctl utils update-cluster-vpc-config --cluster=your-cluster-name \
--control-plane-subnet-ids=subnet-1234,subnet-5678 --approve

L'esempio di output seguente mostra che il cluster è stato aggiornato a una sottorete per ogni zona di disponibilità:

eksctl utils update-cluster-vpc-config --cluster=gpusharing-demo  --control-plane-subnet-ids=subnet-03d59dfc8d9380b4c,subnet-0c4f51f27d109fa32,subnet-037b42db1a08da5ae --approve
2024-09-09 18:23:54 [ℹ]  using region us-west-2
2024-09-09 18:23:54 [ℹ]  will update control plane subnet IDs for cluster "gpusharing-demo" in "us-west-2" to: [subnet-xxxxxxx80b4c subnet-xxxxxxx9fa32 subnet-xxxxxx8da5ae]
2024-09-09 18:32:07 [✔]  control plane subnets and security groups for cluster "gpusharing-demo" in "us-west-2" have been updated to: controlPlaneSubnetIDs=[subnet-xxxxxxx80b4c subnet-xxxxxxxx9fa32 subnet-xxxxxxxx8da5ae], controlPlaneSecurityGroupIDs=[sg-xxxxx31d2]

Per aggiornare le sottoreti utilizzando il file config.yaml, esegui questo comando:

eksctl utils update-cluster-vpc-config -f config.yaml

Esempio di output:

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
  name: cluster
  region: us-west-2

vpc:
  controlPlaneSubnetIDs: [subnet-1234, subnet-5678, subnet-9101]
  controlPlaneSecurityGroupIDs: [sg-1234, sg-5678]

Informazioni correlate

Enhanced VPC flexibility: modify subnets and security groups in Amazon EKS (Flessibilità VPC migliorata: modifica di sottoreti e gruppi di sicurezza in Amazon EKS)

Updating control plane subnets and security groups (Aggiornamento delle sottoreti e dei gruppi di sicurezza del piano di controllo (control-plane)) sul sito web eksctl

AWS UFFICIALEAggiornata 5 mesi fa