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, i cluster Anthos su AWS posiziona il cluster o il 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 nel cluster non è in esecuzione Kubernetes 1.20, devi prima eseguire 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 tuoi cluster Anthos sui cluster utente AWS, deve disporre dell'autorizzazione ec2:ModifyNetworkInterfaceAttribute.

Aggiorna i gruppi di sicurezza

In questa sezione verranno aggiornati 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 il 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 nella sezione Creazione di un cluster utente, il file YAML è denominato cluster-0.yaml. Apri il file in un editor di testo.

    kubectl modifica

    Per utilizzare kubectl edit per modificare il tuo AWSCluster, 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 di 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 ulteriori 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 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 automaticamente le modifiche. Se stai modificando il file YAML, applicalo al servizio di gestione con questo comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. Controlla lo stato dell'aggiornamento con le 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, quando il cluster è in stato di aggiornamento, l'output ha il seguente aspetto:

    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, segui questi passaggi:

  1. Dalla directory anthos-aws, utilizza anthos-gke per cambiare il 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 nella sezione Creazione di un cluster utente, il file YAML è denominato cluster-0.yaml. Apri il file in un editor di testo.

    kubectl modifica

    Per utilizzare kubectl edit per modificare il tuo AWSCluster, 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 di 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 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 automaticamente le modifiche. Se stai modificando il file YAML, applicalo al servizio di gestione con questo comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. Controlla lo stato dell'aggiornamento con le 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, quando il cluster è in stato di aggiornamento, l'output ha il seguente aspetto:

    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