Atualizando clusters de usuários

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

Visão geral

Com clusters de usuários executando o Kubernetes versão 1.20 e superior, você pode modificar os seguintes atributos:

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

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

Após atualizar a configuração, o GKE na AWS coloca o cluster ou pool de nós no estado Updating . Quando a atualização for concluída, o cluster ou pool de nós retornará ao estado Provisioned .

Antes de começar

Para modificar seus clusters de usuários, o cluster e o pool de nós devem executar o Kubernetes versão 1.20 ou superior. Se o seu cluster não estiver executando o Kubernetes 1.20, atualize-o primeiro.

Para modificar os grupos de segurança do seu cluster, a função do AWS IAM (definida como spec.authentication.awsIAM.adminIdentityARNs em anthos-gke.yaml ) que gerencia seus clusters de usuários do GKE na AWS, deve ter a permissão ec2:ModifyNetworkInterfaceAttribute .

Atualizar grupos de segurança

Nesta seção, você atualizará os grupos de segurança de um cluster e de um pool de nós. Para atualizar os grupos de segurança, siga estas etapas:

  1. No seu diretório anthos-aws , use anthos-gke para alternar o contexto para seu serviço de gerenciamento.

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

  2. Abra o arquivo YAML que criou seu AWSCluster em um editor de texto. Se você não tiver o arquivo YAML inicial, pode usar kubectl edit .

    Editar YAML

    Se você seguiu as instruções em Criando um cluster de usuários , seu arquivo YAML será chamado cluster-0.yaml . Abra este arquivo em um editor de texto.

    kubectl editar

    Para usar kubectl edit para editar 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 padrão, 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 a seguir 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. Salve o arquivo. Se você estiver usando kubectl edit , kubectl aplicará as alterações automaticamente. Se estiver editando o arquivo YAML, aplique-o ao seu serviço de gerenciamento com o seguinte comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. Verifique o status da atualização com kubectl . Quando a atualização for concluída, o estado do objeto mudará 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, a saída se parece com o 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
    

Atualizar tipos de instância

Nesta seção, você atualizará os tipos de instância de um cluster e de um pool de nós. Para atualizar os tipos de instância, siga estas etapas:

  1. No seu diretório anthos-aws , use anthos-gke para alternar o contexto para seu serviço de gerenciamento.

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

  2. Abra o arquivo YAML que criou seu AWSCluster em um editor de texto. Se você não tiver o arquivo YAML inicial, pode usar kubectl edit .

    Editar YAML

    Se você seguiu as instruções em Criando um cluster de usuários , seu arquivo YAML será chamado cluster-0.yaml . Abra este arquivo em um editor de texto.

    kubectl editar

    Para usar kubectl edit para editar 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 padrão, 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 obter mais informações, consulte Tipos de instância 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. Salve o arquivo. Se você estiver usando kubectl edit , kubectl aplicará as alterações automaticamente. Se estiver editando o arquivo YAML, aplique-o ao seu serviço de gerenciamento com o seguinte comando:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. Verifique o status da atualização com kubectl . Quando a atualização for concluída, o estado do objeto mudará 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, a saída se parece com o 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 vem a seguir