Aggiornamento dei cluster utente

Questo argomento descrive come aggiornare la configurazione di un cluster di utenti 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 istanze 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 1.20 o versioni 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 IAM AWS (impostato su 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 aggiorni i gruppi di sicurezza per un cluster e un pool di nodi. Per aggiornare i gruppi di sicurezza, svolgi i seguenti passaggi:

  1. Dalla directory anthos-aws, utilizza anthos-gke per cambiare contesto e 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 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 il seguente 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 sotto 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 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 passa 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 istanze

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

  1. Dalla directory anthos-aws, utilizza anthos-gke per cambiare contesto e 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 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 il seguente 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, consulta 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 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 passa 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