Configurar um cluster e uma carga de trabalho para o preparo


Embora os clusters do GKE no modo Autopilot forneçam padrões razoáveis para a maioria das configurações, é provável que você precise de configurações diferentes nos seus ambientes de desenvolvimento, teste e produção.

Objetivos

Aprenda algumas tarefas básicas para configurar um cluster de preparo e teste:

  1. Limitar o acesso ao serviço administrativo do cluster, chamado plano de controle. Isso impede que usuários não autorizados visualizem ou alterem as configurações do cluster e da carga de trabalho.

  2. Especifique que o aplicativo precisa de recursos de computação que sejam escalonados de maneira eficiente para atender à demanda.

  3. Teste o escalonamento automático, que replica automaticamente os pods quando a demanda aumenta além do limite especificado.

  4. Ajuste a retenção para manter apenas os registros necessários.

  5. Ative o painel de postura de segurança do GKE.

Essas são apenas algumas das tarefas para promover um cluster do desenvolvimento ao preparo. Leia a documentação do GKE para a lista completa de tarefas a serem consideradas.


Para seguir as instruções passo a passo desta tarefa diretamente no console do Google Cloud, clique em Orientação:

Orientações


Custos

Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:

Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Saiba mais em Limpeza.

Antes de começar

Crie um cluster do Kubernetes e implante uma carga de trabalho. Criar um cluster e implantar uma carga de trabalho mostra como fazer isso.

Limitar o acesso ao plano de controle

Para melhorar a postura de segurança, permita que apenas uma rede autorizada e o console do Google Cloud e o Cloud Shell acessem o plano de controle do cluster.

Configurar uma rede autorizada

  1. No console do Google Cloud, acesse a página Clusters do GKE.

    Acessar Clusters

  2. Na coluna Nome, clique no nome do seu cluster, hello-world-cluster.

  3. Na linha Redes autorizadas do plano de controle da tabela "Rede", clique em Editar.

  4. Na caixa de diálogo "Editar redes autorizadas do plano de controle", selecione Ativar redes autorizadas do plano de controle.

  5. Selecione Acesso usando endereços IP públicos do Google Cloud.

    Isso permite que você gerencie o cluster no console do Google Cloud e no Cloud Shell.

  6. Clique em Adicionar rede autorizada.

  7. Digite um nome, como My example on-prem network.

  8. Em Rede, insira o intervalo de endereços IP a que você quer conceder acesso ao plano de controle do cluster. Use a notação CIDR.

    Por exemplo, insira o seguinte intervalo:

    198.51.100.0/24
    
  9. Clique em Concluído.

  10. Clique em Salvar alterações.

    Essa operação leva alguns minutos para ser concluída.

  11. Clique no botão Notificações e aguarde até aparecer uma marca de seleção verde ao lado de Atualizar a configuração de redes autorizadas do plano de controle no cluster "hello-world-cluster" do Kubernetes Engine.

Você configurou um plano de controle de cluster que só pode ser acessado por meio da rede autorizada e dos endereços IP públicos do Google Cloud, o que permite que você gerencie o cluster no console do Google Cloud e no Cloud Shell.

Para acessar o endereço IP do plano de controle do cluster e confirmar os endereços da rede autorizada, clique em Próxima.

Acessar endereços IP

  1. Acessar a página de Clusters do GKE.

    Acessar Clusters

  2. Na coluna Nome, clique no nome do seu cluster, hello-world-cluster.

  3. Na tabela Princípios básicos do cluster, a linha Endpoint externo mostra o endereço IP do plano de controle do cluster.

  4. Na tabela Rede, a linha Redes autorizadas do plano de controle mostra os endereços IP da rede autorizada.

Agora, o plano de controle do cluster só pode ser acessado em uma rede autorizada, no console do Google Cloud e no Cloud Shell.

Especificar uma classe de computação

Por padrão, os pods do GKE Autopilot usam recursos de computação otimizados para cargas de trabalho de uso geral. Para cargas de trabalho que precisam ser escalonadas de maneira otimizada ou que tenham outros requisitos exclusivos, especifique uma classe de computação diferente.

Atualizar a especificação da implantação

  1. No console do Google Cloud, acesse a página Cargas de trabalho do GKE.

    Acesse "Cargas de trabalho"

  2. Na coluna Nome, clique no nome do aplicativo que você implantou, hello-world-app.

  3. Clique em Editar para editar a especificação de implantação.

  4. Na guia YAML, encontre a linha que começa com containers:.

  5. Acima dessa linha, adicione as seguintes linhas:

    nodeSelector:
      cloud.google.com/compute-class: "Scale-Out"
    

    Verifique se o arquivo corresponde ao recuo no exemplo a seguir:

    apiVersion: apps/v1
     kind: Deployment
     ...
     spec:
     ...
       template:
       ...
         spec:
           nodeSelector:
             cloud.google.com/compute-class: "Scale-Out"
           containers:
           - name: hello-app
             image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
    
  6. Para fazer o download desse arquivo e usá-lo como base para outras configurações de carga de trabalho, clique em Fazer o download.

  7. Clique em Salvar.

As réplicas de pod criadas para executar a carga de trabalho usarão a classe de computação especificada.

Teste o escalonamento automático

Agora que você tem uma carga de trabalho que pode ser escalonada com eficiência, atualize as configurações de escalonamento automático para facilitar o escalonamento vertical dela. Em seguida, gere carga para acionar o escalonamento automático.

Atualizar as configurações de escalonamento automático do pod

  1. Acesse a página Cargas de trabalho do GKE.

    Acesse "Cargas de trabalho"

  2. Na coluna Nome, clique no nome da sua implantação, hello-world-app.

  3. Clique em Ações.

  4. Selecione Escalonamento automático e clique em Escalonamento automático horizontal de pods.

  5. Na caixa de diálogo Configurar escalonador automático horizontal de pods, em Métricas de escalonamento automático, clique em CPU.

  6. Altere o valor de Target para 2, o que escalona automaticamente os pods quando eles usarem pelo menos 2% dos recursos de CPU configurados. Esse valor desejado baixo garante que você consiga acionar facilmente o escalonamento automático na próxima etapa.

  7. Clique em Salvar.

Para acionar o escalonamento automático, clique em Próxima.

Gerar carga para acionar o escalonamento automático

  1. Para abrir o Cloud Shell, clique em Cloud Shell.

  2. Copie o seguinte comando no Cloud Shell:

      for i in $(seq -s' ' 1 10000); do wget -q -O- <var>external-IP-address</var>; done
    

    Substitua external-IP-address pelo endereço IP que aparece na coluna Endpoints.

  3. Pressione Enter para executar o comando e enviar 10.000 solicitações para hello-world-app.

  4. Aguarde até que o comando wget termine a execução e o prompt de linha de comando reapareça.

  5. Você pode fechar o Cloud Shell quando o comando wget for concluído.

Para observar a escala da carga de trabalho para acomodar o aumento do tráfego, clique em Próxima.

Acompanhe a escala da sua carga de trabalho

  1. Na página Detalhes da implantação da carga de trabalho, procure no pico de uso da CPU no gráfico CPU.

    Talvez seja necessário aguardar até cinco minutos para ver o pico.

  2. Clique em Atualizar para garantir que a página Detalhes da implantação mostre os dados mais recentes.

  3. Na tabela Pods gerenciados, veja que três réplicas da sua carga de trabalho estão em execução.

    Você pode ver inicialmente erros sobre pods não programáveis, mas essas mensagens são transitórias quando as réplicas são iniciadas.

  4. Aguarde cerca de 10 minutos, clique em Atualizar e confira que o uso da CPU diminuiu e, portanto, o número de pods em Pods gerenciados retorna para um.

Você testou o escalonamento automático e assistiu à sua escala de carga de trabalho.

Ajustar retenção de registros

Por padrão, o Cloud Logging ingere todos os registros dos clusters do GKE. A ingestão de grandes quantidades de dados de registros pode resultar em uma taxa. Para garantir a ingestão apenas dos dados de registros necessários para o ambiente de teste, ajuste a retenção de registros.

Criar um filtro de registros

  1. No console do Google Cloud, acesse a página Análise de registros.

    Acessar a Análise de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

    Observe que o painel Query results mostra registros de todos os recursos no projeto.

  2. Acima dos resultados da consulta:

    1. Clique em Recurso.

    2. Pesquise o cluster do Kubernetes e clique nele.

    3. Clique em us-central-1.

    4. Clique em hello-world-cluster.

    5. Clique em Aplicar.

  3. Clique em Gravidade e selecione Informações, que muda para Informações e versões mais recentes ao passar o cursor.

  4. Clique em Executar consulta.

  5. Os resultados da consulta agora contêm apenas mensagens INFO do cluster de preparo.

  6. Copie a consulta do editor de consultas. Você colará essa consulta ao criar um filtro para o coletor de registros.

Para criar um coletor de registros e um bucket de armazenamento, clique em Próxima.

Criar um coletor de registros e um bucket de armazenamento

  1. Acesse a página Roteador de registros do Logging.

    Acessar o roteador de registros

  2. Clique em Criar coletor.

  3. Em Nome, digite o seguinte:

    hello-world-cluster-sink
    
  4. Clique em Próxima.

  5. Em Selecionar serviço de coletor, selecione bucket do Logging.

  6. Em Selecionar um bucket de registros, selecione Criar novo bucket de registros.

  7. Em Detalhes do bucket, insira um nome exclusivo, como o seguinte:

    hello-world-bucket-<var>user-id</var>
    
  8. Clique em Criar bucket.

  9. Em Destino do coletor, clique em Próxima.

  10. Em Criar filtro de inclusão, cole a consulta que você criou na Análise de registros.

  11. Clique em Criar coletor.

Para conferir os registros do cluster, que estão armazenados no bucket de registro que você criou, clique em Avançar.

Acessar os registros do cluster

  1. No console do Google Cloud, acesse a página Análise de registros.

    Acessar a Análise de registros

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Logging.

  2. Clique em Refinar escopo.

  3. Selecione Visualização de registro.

  4. Selecione a visualização _AllLogs do bucket de registros.

  5. Clique em Aplicar.

    Os resultados da consulta mostram apenas os registros armazenados no bucket de registros.

Você ajustou a retenção de registros para que o cluster de preparo não armazene mensagens DEBUG. É possível definir permissões para que apenas determinados usuários possam visualizar os registros no bucket do cluster.

Ativar o painel de postura de segurança

O painel de postura de segurança analisa os clusters e as cargas de trabalho do GKE para fornecer recomendações opinativas e acionáveis para melhorar a postura de segurança.

Expressar qualquer preocupação

  1. Acesse a página Postura de segurança do GKE.

    Acessar postura de segurança

  2. Se for solicitado que você ative a API Container Security, clique em Ativar.

  3. A guia Painéis resume as preocupações relacionadas aos clusters e às cargas de trabalho do projeto.

  4. Clique na guia Preocupações.

  5. Se alguma preocupação aparecer na guia, clique nela para acessar mais informações.

Você concluiu algumas tarefas básicas para configurar um cluster para preparar e testar o aplicativo.

A seguir