Aggiornamento dei cluster utente

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

Panoramica

Con i cluster utente che eseguono Kubernetes 1.20 e versioni 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 posiziona il cluster o il pool di nodi nello stato Updating. Al termine dell'aggiornamento, il cluster o il pool di nodi viene restituito allo stato Provisioned.

Prima di iniziare

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

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

Aggiorna gruppi di sicurezza

In questa sezione aggiorni i gruppi di sicurezza per un cluster e un pool di nodi. Per aggiornare i gruppi di sicurezza:

  1. Dalla directory anthos-aws, utilizza anthos-gke per cambiare contesto 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 disponi del file YAML iniziale, puoi usare kubectl edit.

    Modifica YAML

    Se hai seguito le istruzioni riportate in Creazione di un cluster utente, il file YAML sarà denominato cluster-0.yaml. Apri il file in un editor di testo.

    Modifica kubectl

    Per utilizzare kubectl edit per modificare il cluster AWS, esegui questo 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 campo 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 tue AWSNodePool risorse.

    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 è il 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 tipi di istanza

In questa sezione aggiorni i tipi di istanza per un cluster e un pool di nodi. Per aggiornare i tipi di istanza:

  1. Dalla directory anthos-aws, utilizza anthos-gke per cambiare contesto 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 disponi del file YAML iniziale, puoi usare kubectl edit.

    Modifica YAML

    Se hai seguito le istruzioni riportate in Creazione di un cluster utente, il file YAML sarà denominato cluster-0.yaml. Apri il file in un editor di testo.

    Modifica kubectl

    Per utilizzare kubectl edit per modificare il cluster AWS, esegui questo 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 campo 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, consulta Tipi di istanze supportati.

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

    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 è il 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