A atualizar clusters de utilizadores

Este tópico descreve como atualizar a configuração de um cluster de utilizadores existente.

Vista geral

Com os clusters de utilizadores a executar a versão 1.20 e superior do Kubernetes, pode modificar os seguintes atributos:

Com o Kubernetes 1.22 e superior, pode atualizar os tipos de instâncias do EC2.

Para atualizar estes recursos, edite os recursos AWSCluster e AWSNodePool.

Depois de atualizar a configuração, o GKE on AWS coloca o cluster ou o conjunto de nós no estado Updating. Quando a atualização estiver concluída, o cluster ou o conjunto de nós é devolvido ao estado Provisioned.

Antes de começar

Para modificar os clusters de utilizadores, o cluster e o conjunto de nós têm de executar o Kubernetes versão 1.20 ou superior. Se o seu cluster não estiver a executar o Kubernetes 1.20, atualize primeiro o cluster de utilizadores.

Para modificar os grupos de segurança do cluster, a função do AWS IAM (definida como spec.authentication.awsIAM.adminIdentityARNs em anthos-gke.yaml) que gere os clusters de utilizadores do GKE no AWS tem de ter a autorização ec2:ModifyNetworkInterfaceAttribute.

Atualize grupos de segurança

Nesta secção, atualiza os grupos de segurança de um cluster e de um node pool. Para atualizar os grupos de segurança, siga estes passos:

  1. No diretório do anthos-aws, use anthos-gke para mudar o contexto para o seu serviço de gestão.

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

  2. Abra o ficheiro YAML que criou o seu AWSCluster num editor de texto. Se não tiver o ficheiro YAML inicial, pode usar kubectl edit.

    Edite o YAML

    Se seguiu as instruções em Criar um cluster de utilizadores, o seu ficheiro YAML tem o nome cluster-0.yaml. Abra este ficheiro num editor de texto.

    kubectl edit

    Para usar o kubectl edit para editar o seu AWSCluster, execute o seguinte comando:

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

    Substitua cluster-name pelo seu AWSCluster. Por exemplo, para editar o cluster predefinido, cluster-0, execute o seguinte comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Edite o campo spec.controlPlane.securityGroupIDs do seu AWSCluster.

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

    Substitua SECURITY_GROUP_ID pelo ID do novo grupo de segurança. Para adicionar vários grupos de segurança, adicione valores adicionais à matriz em spec.controlPlane.securityGroupIDs.

    O exemplo seguinte inclui os grupos de segurança sg-12345678ab e sg-abcdef1234:

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    spec:
      controlPlane:
        securityGroupIDs:
          - sg-12345678ab
          - sg-abcdef1234
        ...
    
  4. Edite o campo spec.securityGroupIDs dos seus recursos AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      securityGroupIDs:
        - SECURITY_GROUP_ID
      ...
    
  5. Guarde o ficheiro. Se estiver a usar o kubectl edit, o kubectl aplica as alterações automaticamente. Se estiver a editar o ficheiro YAML, aplique-o ao seu serviço de gestão com o seguinte comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. Verifique o estado da atualização junto do kubectl. Quando a atualização estiver concluída, o estado do objeto muda de Updating para Provisioned.

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

    Por exemplo, enquanto o cluster está no estado de atualização, o resultado assemelha-se ao seguinte:

    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
    

Atualize os tipos de instâncias

Nesta secção, atualiza os tipos de instâncias para um cluster e um node pool. Para atualizar os tipos de instâncias, siga estes passos:

  1. No diretório do anthos-aws, use anthos-gke para mudar o contexto para o seu serviço de gestão.

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

  2. Abra o ficheiro YAML que criou o seu AWSCluster num editor de texto. Se não tiver o ficheiro YAML inicial, pode usar kubectl edit.

    Edite o YAML

    Se seguiu as instruções em Criar um cluster de utilizadores, o seu ficheiro YAML tem o nome cluster-0.yaml. Abra este ficheiro num editor de texto.

    kubectl edit

    Para usar o kubectl edit para editar o seu AWSCluster, execute o seguinte comando:

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

    Substitua cluster-name pelo seu AWSCluster. Por exemplo, para editar o cluster predefinido, cluster-0, execute o seguinte comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Edite o campo spec.controlPlane.instanceType do seu AWSCluster.

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

    Substitua AWS_INSTANCE_TYPE pelo novo tipo de instância. Para mais informações, consulte o artigo Tipos de instâncias suportados.

  4. Edite o campo spec.instanceType dos seus recursos AWSNodePool.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      instanceType: AWS_INSTANCE_TYPE
      ...
    
  5. Guarde o ficheiro. Se estiver a usar o kubectl edit, o kubectl aplica as alterações automaticamente. Se estiver a editar o ficheiro YAML, aplique-o ao seu serviço de gestão com o seguinte comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. Verifique o estado da atualização junto do kubectl. Quando a atualização estiver concluída, o estado do objeto muda de Updating para Provisioned.

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

    Por exemplo, enquanto o cluster está no estado de atualização, o resultado assemelha-se ao seguinte:

    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
    

O que se segue?

  • Para mais informações sobre a atualização de um cluster de utilizadores, consulte o artigo Atualizar o GKE no AWS.