Criar e modificar um cluster do GKE com o Gemini para receber assistência do Google Cloud

Neste tutorial, mostramos como usar o Gemini para o Google Cloud, um colaborador com tecnologia de IA no Google Cloud, para criar, testar e modificar um cluster do Google Kubernetes Engine (GKE) no Autopilot. Você verá como o Genmini pode ajudar a implantar um app simples no cluster e criar uma janela de manutenção diária para o app. Este tutorial é destinado a engenheiros de qualquer nível de experiência.

Objetivos

  • Explore vários serviços do Google que podem ser usados para implantar um aplicativo no GKE fazendo perguntas baseadas no contexto do Gemini.
  • Peça ao Gemini para fornecer comandos que podem ser usados para implantar um app básico em um cluster do GKE.
  • Crie, analise e modifique o cluster do GKE usando o Gemini para explicar e gerar os comandos do shell.

Produtos do Google Cloud usados

Neste tutorial, usamos os seguintes produtos faturáveis do Google Cloud. Use a calculadora de preços para gerar uma estimativa de custo baseada na projeção de uso.

  • GKE. O GKE é um serviço gerenciado do Kubernetes que permite implantar e gerenciar aplicativos conteinerizados em escala. Para informações sobre preços, consulte Preços do GKE.

  • Gemini. O Gemini é um colaborador sempre ativo no Google Cloud que oferece assistência com tecnologia de IA generativa para uma ampla variedade de usuários, incluindo desenvolvedores e cientistas de dados. Para oferecer uma experiência de assistência integrada, o Gemini é incorporado a muitos produtos do Google Cloud.

Antes de começar

  1. Ative a API GKE.
  2. Verifique se o Gemini está configurado para sua conta de usuário e projeto do Google Cloud.

Conheça o Kubernetes no Google Cloud

Para o exemplo a seguir, considere que você é um administrador de infraestrutura responsável por configurar a infraestrutura para uma equipe que desenvolve um aplicativo da Web. A organização em geral padronizou o uso de contêineres e do Kubernetes. Portanto, a equipe quer entender como executar o aplicativo da Web no Kubernetes no Google Cloud. A equipe também quer o mínimo possível de overhead de gerenciamento de infraestrutura.

No console do Google Cloud, você pode conversar com o Gemini para receber ajuda. No painel Gemini, você insere solicitações, que são perguntas ou declarações que descrevem a ajuda que você quer, e o Gemini retorna respostas. Gemini não usa seus comandos ou suas respostas como dados para treinar o modelo. Para mais informações, consulte Como o Gemini para o Google Cloud usa seus dados.

Para mais informações sobre como escrever comandos para gerar boas respostas, consulte Criar comandos melhores para o Gemini.

Para solicitar que o Gemini ajude você a decidir como executar o Kubernetes no Google Cloud, siga estas etapas:

  1. Na barra de ferramentas do console do Google Cloud, clique no spark Abrir o Gemini.

  2. No painel Gemini, insira o comando a seguir com base nos seus requisitos e preferências e clique em Enviar:

    How can I run Kubernetes on Google Cloud without having to own
    management of nodes and the control plane?
    

    Gemini pode ser a seguinte:

    To run Kubernetes on Google Cloud without having to own management of
    nodes and the control plane, you can use Google Kubernetes Engine
    (Google Kubernetes Engine (GKE)) in Autopilot. In Autopilot mode, Google manages the
    control plane and system components for you, and also manages your
    worker nodes.
    
  3. Digite uma pergunta complementar. Por exemplo, se você quiser padronizar a criação de clusters do GKE no modo Autopilot usando o Terraform, insira o comando abaixo:

    Can you use Terraform to provision GKE clusters in Autopilot mode?
    

    Gemini pode ser a seguinte:

    Yes, you can use Terraform to provision GKE clusters in Autopilot
    mode. Terraform is a tool that can be used to create and manage
    infrastructure on Google Cloud Platform. Find more information
    for your question here:
    https://cloud.google.com/blog/products/containers-kubernetes/partner-devops-and-security-solutions-for-gke-autopilot
    
  4. Opcional: se o histórico de chat não for relevante para o que você vai perguntar em seguida, redefina o histórico de chat. No painel Gemini, clique no ícone excluir e selecione Redefinir chat.

Criar um cluster do GKE no modo Autopilot

Considere que você não sabe executar o Kubernetes usando o GKE no modo Autopiloto. Antes de provisionar um cluster para seus desenvolvedores, você decide testar o GKE no modo Autopilot primeiro. Nesta seção, você vai solicitar o Gemini para ajudar na criação e execução de um app da Web de teste em um cluster do GKE no modo Autopilot.

  1. No painel Gemini, insira o comando a seguir e clique em Enviar:

    How do I create a GKE Autopilot cluster?
    

    Gemini responde com as instruções para criar um cluster usando o console do Google Cloud e a Google Cloud CLI.

  2. Quando você vê uma resposta que inclui valores de marcador como CLUSTER_NAME, REGION e PROJECT_ID, adicionar essas informações ao comando pode gerar respostas ainda mais úteis. Refine o comando novamente com mais detalhes:

    What is the command to create a GKE Autopilot cluster in my current
    project named gemini-demo in the us-central region using the gcloud CLI?
    

    O Gemini retorna uma resposta parecida com:

    gcloud container clusters create-auto gemini-demo --region us-central1
    

    Para usar o comando fornecido pelo Gemini, abra o Cloud Shell e execute o comando gcloud anterior na resposta.

    Depois de alguns minutos, o cluster do Autopilot do GKE vai estar pronto para uso.

Implantar um aplicativo da Web de amostra

Agora que você criou um cluster do GKE no modo Autopilot, teste a execução de um aplicativo da Web de amostra semelhante ao aplicativo que sua equipe vai executar na infraestrutura. Internamente, você encontra a seguinte imagem de contêiner do Google adicionada aos favoritos para testar um aplicativo da Web conteinerizado: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0.

  1. No painel Gemini, insira o comando a seguir e clique em Enviar:

    What is the kubectl command to create a deployment called
    hello-server for the image us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0?
    

    Gemini retorna uma resposta semelhante a esta:

    To create a deployment called hello-server for the image
    us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0, you
    can use the following kubectl command:
    
    kubectl create deployment hello-server --image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
    

    Execute o comando kubectl anterior no Cloud Shell.

  2. Com o servidor da Web criado, você decide testar o provisionamento de um balanceador de carga na frente do servidor da Web para expô-lo na Internet.

    No painel Gemini, insira o comando a seguir e clique em Enviar:

    What is the kubectl command to expose this deployment on port 80 with
    a load balancer?
    

    O Gemini retorna uma resposta parecida com:

    To expose the hello-server deployment on port 80 with a load
    balancer, you can use the following kubectl expose command:
    
    kubectl expose deployment hello-server \
      --type LoadBalancer \
      --port 80 \
      --target-port 8080
    

    A execução desse comando cria um balanceador de carga do Compute Engine para o contêiner.

    Embora fornecer mais contexto seja sempre útil, observe como o Gemini conseguiu extrair o nome de implantação hello-server do histórico de conversas sem que ele estivesse incluído no comando.

  3. Agora você quer ver se o servidor da Web está sendo executado e exibindo as solicitações corretamente. Para visualizar o aplicativo implantado, recupere o endereço IP externo do serviço do Kubernetes criado.

    Insira o seguinte comando:

    What is the kubectl command to see the external IP address
    associated with this load balancer?
    

    O Gemini retorna uma resposta parecida com:

    To see the external IP associated with a load balancer, you can use
    the following kubectl command:
    
    kubectl get service hello-server -w
    
    This will output the name of the service, the type of service, the
    cluster IP address, the external IP address, and the ports that the
    service is listening on.
    

    Após alguns minutos, a execução do comando kubectl anterior vai gerar um resultado semelhante a:

    NAME           TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
    hello-server   LoadBalancer   34.118.227.57   35.225.15.112   80:31473/TCP   6m18s
    

    Agora é possível acessar o aplicativo da Web em execução no GKE usando o valor retornado para EXTERNAL-IP.

Planejar uma estratégia de upgrade do cluster

Você testou o caso de uso principal da sua equipe em um cluster do GKE no modo Autopiloto. No entanto, antes de continuar usando o Autopilot do GKE, configure um horário para manutenção ou upgrades do cluster.

Você sabe que os padrões de tráfego dos usuários do aplicativo da Web da sua equipe são diários. Como o Gemini informou que o Autopilot do GKE lida com a manutenção do cluster para você, convém ditar que essa manutenção ocorre fora dos horários de maior movimento do seu aplicativo da Web.

  1. Insira o seguinte comando:

    How can I configure periods of time where GKE Autopilot won't
    perform maintenance or upgrades on my cluster nodes?
    

    O Gemini retorna uma resposta parecida com:

    To configure periods of time where GKE Autopilot won't perform
    maintenance or upgrades on your cluster nodes, you can use
    maintenance windows and exclusions.
    
    Maintenance windows are periods of time when GKE Autopilot is allowed
    to perform maintenance and upgrades on your cluster nodes. You can
    specify a maintenance window for your cluster when you create it, or
    you can update an existing cluster to specify a maintenance
    window.
    
    Maintenance exclusions are periods of time when GKE Autopilot is not
    allowed to perform maintenance or upgrades on your cluster nodes. You
    can create a maintenance exclusion for your cluster when you create
    it, or you can update an existing cluster to create a maintenance
    exclusion.
    
    To create a maintenance window or a maintenance exclusion, you can
    use the Google Cloud console, the gcloud CLI, or the Kubernetes
    API.
    
  2. Você decide criar uma janela de manutenção diária fora do horário comercial do seu aplicativo da Web usando gcloud. Insira o seguinte comando:

    How can I create a daily maintenance window from 22:00 to 02:00 using
    `gcloud` for my GKE Autopilot cluster named gemini-demo?
    

    O Gemini retorna uma resposta parecida com:

    To create a daily maintenance window using gcloud CLI for your
    gemini-demo GKE Autopilot cluster that goes from 22:00 to 02:00, you
    can use the following command:
    
    gcloud container clusters update gemini-demo \
      --maintenance-window-start 22:00 \
      --maintenance-window-end 02:00 \
      --maintenance-window-recurrence "FREQ=DAILY"
    
    This command will create a daily maintenance window that runs from
    22:00 to 02:00 UTC time zone.
    

    A execução desse comando garante que a infraestrutura provisionada para sua equipe passe por manutenção durante os horários de menor movimento para seus usuários. Está tudo pronto para avançar com a recomendação do GKE Autopilot para sua equipe de aplicativos da Web.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, exclua o projeto do Google Cloud criado para este tutorial. A outra opção é excluir os recursos individuais.

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

A seguir