Criar e modificar um cluster do GKE com a ajuda da Duet AI

Neste tutorial, mostramos como usar a Duet AI, uma colaboradora com tecnologia de IA no Google Cloud, para criar, testar e modificar um cluster do Google Kubernetes Engine (GKE) no Autopilot. Você verá como a Duet AI 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 em contexto da Duet AI.
  • Enviar um prompt da Duet AI para fornecer comandos que podem ser usados para implantar um app básico em um cluster do GKE.
  • Criar, explorar e modificar o cluster do GKE usando a Duet AI 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 com base no uso previsto.

  • 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.

  • Duet AI. A Duet AI é uma colaboradora sempre ativa 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 fornecer uma experiência de assistência integrada, a Duet AI está incorporada a muitos produtos do Google Cloud.

Antes de começar

  1. Ative a API GKE.
  2. Verifique se a Duet AI está configurada para sua conta de usuário e projeto do Google Cloud.

Conheça o Kubernetes no Google Cloud

No 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, então 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, converse com a Duet AI para receber ajuda. Usando o painel Duet AI, você insere solicitações, que são perguntas ou instruções que descrevem a ajuda desejada, e a Duet AI retorna respostas. Ela não usa seus comandos ou as respostas deles como dados para treinar o modelo. Para mais informações, consulte Como a Duet AI no Google Cloud usa seus dados.

Para mais informações sobre como escrever comandos para gerar boas respostas, consulte Criar comandos melhores para a Duet AI.

Para solicitar que a Duet AI 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 em chat_spark Abrir a Duet AI.

  2. No painel Duet AI, 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?
    

    A resposta da Duet AI pode ser parecida com esta:

    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. Insira uma pergunta complementar. Por exemplo, se você quiser padronizar a criação de clusters do GKE no modo Autopilot usando o Terraform, digite o seguinte prompt:

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

    A resposta da Duet AI pode ser parecida com esta:

    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 a seguir, redefina o histórico: no painel da Duet AI, clique no ícone de exclusão 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 Autopilot. Antes de provisionar um cluster para seus desenvolvedores, você decide testar o GKE no modo Autopilot primeiro. Nesta seção, você vai usar a Duet AI 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 Duet AI, insira o prompt a seguir e clique em Enviar:

    How do I create a GKE Autopilot cluster?
    

    A Duet AI 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 de posição, 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 duet-ai-demo in the us-central region using the gcloud CLI?
    

    A Duet AI retorna uma resposta semelhante a esta:

    gcloud container clusters create-auto duet-ai-demo --region us-central1
    

    Para usar o comando fornecido pela Duet AI, abra o Cloud Shell e execute o comando gcloud anterior na resposta.

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

Implantar um aplicativo da Web de amostra

Agora que você criou um cluster do GKE no modo Autopilot, quer testar a execução de um aplicativo da Web de amostra semelhante ao aplicativo que sua equipe vai executar nessa infraestrutura. Internamente, você vê 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 Duet AI, insira o prompt 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?
    

    A Duet AI retorna uma resposta semelhante a:

    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 Duet AI, insira o prompt a seguir e clique em Enviar:

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

    A Duet AI retorna uma resposta semelhante a esta:

    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 a Duet AI 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á em execução e atendendo as solicitações corretamente. Para ver o aplicativo implantado, recupere o endereço IP externo do serviço do Kubernetes criado.

    Digite o seguinte comando:

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

    A Duet AI retorna uma resposta semelhante a esta:

    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 seu 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 fazer com que a equipe use o Autopilot do GKE, é necessário configurar 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 a Duet AI informou que o Autopilot do GKE lida com a manutenção do cluster para você, é recomendável ditar que essa manutenção ocorrerá fora dos horários de maior movimento do seu aplicativo da Web.

  1. Digite o seguinte comando:

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

    A Duet AI retorna uma resposta semelhante a esta:

    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 durante o horário de folga do aplicativo da Web usando gcloud. Digite 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 duet-ai-demo?
    

    A Duet AI retorna uma resposta semelhante a esta:

    To create a daily maintenance window using gcloud CLI for your
    duet-ai-demo GKE Autopilot cluster that goes from 22:00 to 02:00, you
    can use the following command:
    
    gcloud container clusters update duet-ai-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 sofre manutenção durante os períodos de menor movimento para os usuários. Está tudo pronto para você recomendar o Autopilot do GKE à 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