Aggiornamento dei cluster utente

Questo argomento descrive come aggiornare la configurazione di un cluster utente esistente.

Panoramica

Con i cluster utente che eseguono Kubernetes versione 1.20 e successive, puoi modificare i seguenti attributi:

Con Kubernetes 1.22 e versioni successive, puoi aggiornare i tipi di istanza EC2.

Per aggiornare queste risorse, modifica le risorse AWSCluster e AWSNodePool.

Dopo aver aggiornato la configurazione, GKE su AWS imposta il cluster o pool di nodi sullo stato Updating. Al termine dell'aggiornamento, il cluster o il pool di nodi torna allo stato Provisioned.

Prima di iniziare

Per modificare i cluster utente, il cluster e il pool di nodi devono eseguire Kubernetes versione 1.20 o successive. Se il cluster non esegue Kubernetes 1.20, esegui prima l'upgrade del cluster utente.

Per modificare i gruppi di sicurezza del cluster, il ruolo IAM AWS (impostato come spec.authentication.awsIAM.adminIdentityARNs in anthos-gke.yaml) che gestisce i cluster utente GKE su AWS deve avere l'autorizzazione ec2:ModifyNetworkInterfaceAttribute.

Aggiorna i gruppi di sicurezza

In questa sezione aggiornerai i gruppi di sicurezza per un cluster e pool di nodi. Per aggiornare i gruppi di sicurezza, segui questi passaggi:

  1. Dalla directory anthos-aws, utilizza anthos-gke per passare al contesto del servizio di gestione.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Apri il file YAML che ha creato il tuo AWSCluster in un editor di testo. Se non hai il file YAML iniziale, puoi utilizzare kubectl edit.

    Modifica YAML

    Se hai seguito le istruzioni riportate in Creare un cluster utente, il file YAML si chiama cluster-0.yaml. Apri questo file in un editor di testo.

    kubectl edit

    Per utilizzare kubectl edit per modificare il tuo AWSCluster, esegui il comando seguente:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    Sostituisci cluster-name con il tuo AWSCluster. Ad esempio, per modificare il cluster predefinito, cluster-0, esegui il comando seguente:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Modifica il campo spec.controlPlane.securityGroupIDs del tuo AWSCluster.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    ...
    spec:
      controlPlane:
        securityGroupIDs:
          - SECURITY_GROUP_ID
        ...
    

    Sostituisci SECURITY_GROUP_ID con l'ID del nuovo gruppo di sicurezza. Per aggiungere più gruppi di sicurezza, aggiungi altri valori all'array in spec.controlPlane.securityGroupIDs.

    L'esempio seguente include i gruppi di sicurezza sg-12345678ab e sg-abcdef1234:

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    spec:
      controlPlane:
        securityGroupIDs:
          - sg-12345678ab
          - sg-abcdef1234
        ...
    
  4. Modifica il campo spec.securityGroupIDs delle risorse AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      securityGroupIDs:
        - SECURITY_GROUP_ID
      ...
    
  5. Salva il file. Se utilizzi kubectl edit, kubectl applica le modifiche automaticamente. Se stai modificando il file YAML, applicalo al servizio di gestione con il comando seguente:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. Controlla lo stato dell'aggiornamento con kubectl. Al termine dell'aggiornamento, lo stato dell'oggetto cambia da Updating a Provisioned.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters,AWSNodePools
    

    Ad esempio, mentre il cluster è in stato di aggiornamento, l'output è simile al seguente:

    NAME        STATE       AGE      VERSION           ENDPOINT
    cluster-0   Updating    10m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    
    NAME               CLUSTER     STATE       AGE       VERSION
    cluster-0-pool-0   cluster-0   Updating    10m40s    1.25.5-gke.2100
    

Aggiorna i tipi di istanza

In questa sezione aggiornerai i tipi di istanza per un cluster e pool di nodi. Per aggiornare i tipi di istanza, segui questi passaggi:

  1. Dalla directory anthos-aws, utilizza anthos-gke per passare al contesto del servizio di gestione.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Apri il file YAML che ha creato il tuo AWSCluster in un editor di testo. Se non hai il file YAML iniziale, puoi utilizzare kubectl edit.

    Modifica YAML

    Se hai seguito le istruzioni riportate in Creare un cluster utente, il file YAML si chiama cluster-0.yaml. Apri questo file in un editor di testo.

    kubectl edit

    Per utilizzare kubectl edit per modificare il tuo AWSCluster, esegui il comando seguente:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    Sostituisci cluster-name con il tuo AWSCluster. Ad esempio, per modificare il cluster predefinito, cluster-0, esegui il comando seguente:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Modifica il campo spec.controlPlane.instanceType del tuo AWSCluster.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    ...
    spec:
      controlPlane:
        instanceType: AWS_INSTANCE_TYPE
        ...
    

    Sostituisci AWS_INSTANCE_TYPE con il nuovo tipo di istanza. Per maggiori informazioni, consulta Tipi di istanza supportati.

  4. Modifica il campo spec.instanceType delle risorse AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      instanceType: AWS_INSTANCE_TYPE
      ...
    
  5. Salva il file. Se utilizzi kubectl edit, kubectl applica le modifiche automaticamente. Se stai modificando il file YAML, applicalo al servizio di gestione con il comando seguente:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. Controlla lo stato dell'aggiornamento con kubectl. Al termine dell'aggiornamento, lo stato dell'oggetto cambia da Updating a Provisioned.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters,AWSNodePools
    

    Ad esempio, mentre il cluster è in stato di aggiornamento, l'output è simile al seguente:

    NAME        STATE       AGE      VERSION           ENDPOINT
    cluster-0   Updating    10m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    
    NAME               CLUSTER     STATE       AGE       VERSION
    cluster-0-pool-0   cluster-0   Updating    10m40s    1.25.5-gke.2100
    

Passaggi successivi