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 inserisce il cluster o pool di nodi nello 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 tuo cluster non esegue Kubernetes 1.20, esegui prima l'upgrade del cluster utente.

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

Aggiorna i gruppi di sicurezza

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

  1. Dalla directory anthos-aws, utilizza anthos-gke per passare al 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 Creazione di 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 seguente comando:

    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 questo comando:

    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 tuo servizio di gestione con il seguente comando:

    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, aggiorna i tipi di istanza per un cluster e un pool di nodi. Per aggiornare i tipi di istanza, segui questi passaggi:

  1. Dalla directory anthos-aws, utilizza anthos-gke per passare al 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 Creazione di 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 seguente comando:

    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 questo comando:

    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 ulteriori informazioni, vedi Tipi di istanze 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 tuo servizio di gestione con il seguente comando:

    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