Codelab: como gerenciar o Kubernetes com o kubectl-ai, um assistente do Kubernetes com tecnologia de IA

1. Introdução

O kubectl-ai é uma interface inteligente com tecnologia de IA que traduz a intenção do usuário em operações precisas do Kubernetes, tornando o gerenciamento do Kubernetes mais acessível e eficiente.

d62a763b2dba5ba7.png

O que você aprenderá

  • Você vai trabalhar com o kubectl-ai, uma ferramenta de assistente do Kubernetes com tecnologia de IA para gerenciar um cluster do GKE.

O que você vai aprender

  • Você vai criar um cluster do GKE e configurar o kubectl-ai..
  • Você vai realizar tarefas do Kubernetes, como gerenciar, criar e corrigir recursos com clusters e recursos de solução de problemas.

O que é necessário

  • Navegador da Web Google Chrome
  • Uma conta do Gmail
  • Um projeto do Cloud com faturamento ativado
  • Uma chave da API Gemini

Neste codelab, pressupomos que o usuário tenha conhecimento básico do Kubernetes.

2. Antes de começar

Criar um projeto

  1. No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
  2. Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto .
  3. Você vai usar o Cloud Shell, um ambiente de linha de comando executado no Google Cloud que vem pré-carregado com bq. Clique em "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Imagem do botão "Ativar o Cloud Shell"

  1. Depois de se conectar ao Cloud Shell, verifique se sua conta já está autenticada e se o projeto está configurado com seu ID do projeto usando o seguinte comando:
gcloud auth list
  1. Execute o comando a seguir no Cloud Shell para confirmar se o comando gcloud sabe sobre seu projeto.
gcloud config list project
  1. Se o projeto não estiver definido, use este comando:
gcloud config set project <YOUR_PROJECT_ID>
  1. Ative as APIs necessárias com o comando mostrado abaixo. Isso pode levar alguns minutos.
gcloud services enable cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       compute.googleapis.com \
                       container.googleapis.com

Após a execução do comando, você vai receber uma mensagem semelhante à mostrada abaixo:

Operation "operations/..." finished successfully.

Se alguma API for esquecida, você sempre poderá ativá-la durante a implementação.

Consulte a documentação para ver o uso e os comandos gcloud.

3. Configurar um cluster do GKE

Nesta etapa, vamos configurar um cluster do GKE em que vamos executar nossos comandos. Verifique se você seguiu as etapas anteriores, configurou o ID do projeto correto e ativou os serviços necessários no projeto do Google Cloud.

Criar cluster do GKE

Execute o comando a seguir no Cloud Shell. Se você quiser criar o cluster em outra zona, mude o valor de --zone.

gcloud container clusters create my-gke-cluster \
       --num-nodes 2 \
       --machine-type e2-standard-4 \
       --zone us-central1-a

Esse processo pode levar algum tempo. Quando o processo for concluído, você verá uma saída semelhante a esta:

Note: Your Pod address range (`--cluster-ipv4-cidr`) can accommodate at most 1008 node(s).
Creating cluster my-gke-cluster in us-central1-a... Cluster is being health-checked (Kubernetes Control Plane is healthy)...done.                                                                                                             
Created [https://container.googleapis.com/v1/projects/YOUR_PROJECT_ID/zones/us-central1-a/clusters/my-gke-cluster].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1-a/my-gke-cluster?project=YOUR_PROJECT_ID
kubeconfig entry generated for my-gke-cluster.
NAME: my-gke-cluster
LOCATION: us-central1-a
MASTER_VERSION: 1.33.4-gke.1350000
MASTER_IP: 34.59.221.183
MACHINE_TYPE: e2-standard-4
NODE_VERSION: 1.33.4-gke.1350000
NUM_NODES: 2
STATUS: RUNNING
STACK_TYPE: IPV4

Verificar detalhes do cluster do GKE

Primeiro, vamos buscar as credenciais do cluster:

gcloud container clusters get-credentials my-gke-cluster \
                 --zone us-central1-a

Você vai encontrar uma saída como esta:

Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.

Em seguida, vamos verificar os detalhes do cluster:

kubectl get nodes

Você vai ver uma saída parecida com esta:

NAME                                            STATUS   ROLES    AGE     VERSION
gke-my-gke-cluster-default-pool-c63d5936-2f1z   Ready    <none>   2m58s   v1.33.4-gke.1350000
gke-my-gke-cluster-default-pool-c63d5936-fqtl   Ready    <none>   3m2s    v1.33.4-gke.1350000

Por fim, valide o namespace do cluster:

kubectl get namespaces

Você vai ver uma saída parecida com esta:

NAME                          STATUS   AGE
default                       Active   6m16s
gke-managed-cim               Active   4m21s
gke-managed-system            Active   4m6s
gke-managed-volumepopulator   Active   4m
gmp-public                    Active   3m40s
gmp-system                    Active   3m41s
kube-node-lease               Active   6m16s
kube-public                   Active   6m16s
kube-system                   Active   6m16s

4. Instalar a CLI kubectl-ai

Vamos usar a forma de instalação rápida (recomendada) do kubectl-ai CLI.

Insira o seguinte comando no Cloud Shell:

curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash

Isso vai fazer o download e instalar o kubectl-ai CLI. No final, você vai ver uma mensagem que diz:

✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.

Para verificar se o comando kubectl-ai está funcionando, execute o seguinte comando:

kubectl-ai

Observação: o comando acima vai retornar o erro informando que

creating llm client: GEMINI_API_KEY environment variable not set

O kubectl-ai é compatível com modelos de IA de gemini, vertexai, azopenai, openai, grok, bedrock e provedores de LLM locais, como ollama e llama.cpp. No nosso caso, vamos usar o Gemini (Google) e vamos precisar de uma chave de API para isso no Google AI Studio. Depois de gerar a chave e ter o valor pronto, use o seguinte comando no Cloud Shell para definir a variável de ambiente GEMINI_API_KEY que aponta para sua chave.

export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"

Observação: use "GEMINI_API_KEY" apenas como valor de chave.

Inicie o kubectl-ai mais uma vez. Agora ele vai iniciar e aguardar seu comando no terminal interativo.

$ kubectl-ai

  Hey there, what can I help you with today?                                  

>>>  

Teste algumas consultas relacionadas a comandos kubectl no prompt. Confira alguns exemplos:

  • What is the command to get the nodes in a cluster?
  • list pods

Para sair do terminal kubectl-ai, digite quit.

5. Como usar o kubectl-ai

Agora que você configurou o kubectl-ai, o ponto principal é que você pode interagir com o cluster usando consultas de linguagem natural. Vamos testar alguns outros comandos:

Execute este comando:

kubectl-ai --model gemini-2.5-flash "list pods in default namespace"

Isso vai gerar a seguinte saída:

Running: kubectl get pods -n default

There are no resources found in the default namespace.      

>>>

Observe como ele traduziu nossa consulta em linguagem natural para listar pods no comando kubectl equivalente.

Além disso, observe que agora estamos dentro do terminal interativo kubectl-ai (>>>), onde podemos continuar interagindo com ele.

Dê o seguinte comando:

how many pods are there in kube-system namespace

A saída é mostrada abaixo:

>>> how many pods are there in kube-system namespace

Running: kubectl get pods -n kube-system --output=jsonpath='{.items[*].metadata.name}'

There are 18 pods in the kube-system namespace.

Comando de disparo único

A seção anterior mostrou como iniciar o kubectl-ai e permanecer no terminal interativo para dar comandos subsequentes. Isso não é adequado para comandos que você quer executar de forma autônoma e sem um prompt interativo aguardando o próximo comando.

Insira o método de comando único com o parâmetro --quiet.

Confira um exemplo de comando para criar uma implantação.

kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions

Isso vai resultar na execução do comando create deployment, conforme mostrado abaixo:

Running: kubectl create deployment nginx --image=nginx --replicas=2

I have created a deployment named nginx with 2 replicas. You can verify this by running kubectl get deployments .

Dessa forma, conseguimos configurar o kubectl-ai para interagir com nosso cluster do GKE atual.

Acabamos de executar alguns comandos e demonstrar um modo de trabalhar com kubectl-ai. Você pode redirecionar a saída para outras ferramentas, entender erros, persistência entre diferentes execuções de sessão do kubectl-ai e muito mais. Consulte a seção Uso da documentação da ferramenta.

6. (Opcional) Interface de chat do kubectl-ai

Em algumas situações, talvez você prefira trabalhar com kubectl-ai usando uma interface de chat padrão. O Kubectl-ai vem com uma interface própria que pode ser iniciada com o comando mostrado abaixo no Cloud Shell:

kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080

Isso vai iniciar o utilitário em uma interface de chat, e você vai ver uma saída semelhante a esta:

listening on http://[::]:8080

Clique em "Visualização da Web" no Cloud Shell, conforme mostrado abaixo:

f990712162e8e924.png

Em seguida, clique em Visualizar na porta 8080. Isso vai iniciar um navegador e disponibilizar a interface de chat na Web, como mostrado abaixo:

90fce57ad7f16842.png

Confira um exemplo de consulta que executamos na interface de chat:

6a304d227d3fa5a6.png

Teste outras consultas nessa interface. Ele também dá dicas sobre outras consultas em linguagem natural que você pode executar.

7. Limpar

Para evitar cobranças contínuas na sua conta do Google Cloud, exclua os recursos criados durante este workshop.

Se você não precisar mais do cluster do GKE criado na seção anterior deste laboratório, exclua-o com o seguinte comando:

gcloud container clusters delete my-gke-cluster --zone=us-central1-a

8. Parabéns

Parabéns! Você usou o kubectl-ai, um assistente do Kubernetes com tecnologia de IA, para gerenciar seu cluster do Kubernetes com consultas em linguagem natural. Para mais informações, consulte os recursos listados na próxima seção.

9. Recursos