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 assistente do Kubernetes com tecnologia de IA para gerenciar um cluster do GKE.

O que você 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

Este codelab espera 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 na nuvem. 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 o ID do seu projeto usando o comando a seguir:
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 usando o comando mostrado abaixo. Isso pode levar alguns minutos. Aguarde.
gcloud services enable cloudresourcemanager.googleapis.com \
                       servicenetworking.googleapis.com \
                       compute.googleapis.com \
                       container.googleapis.com

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

Operation "operations/..." finished successfully.

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

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

3. Configurar o cluster do GKE

Nesta etapa, vamos configurar um cluster do GKE em que vamos executar nossos comandos. Siga as etapas anteriores e configure o ID do projeto correto e ative os serviços necessários no seu projeto na nuvem do Google Cloud.

Criar um cluster do GKE

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

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

Isso pode levar um tempo para ser concluído. Aguarde. Quando terminar, você verá uma saída semelhante à mostrada abaixo:

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 os 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ê verá uma saída como a mostrada abaixo:

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ê verá uma saída como 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, vamos validar o namespace do cluster:

kubectl get namespaces

Você verá uma saída como 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 do kubectl-ai

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

Forneça o comando a seguir no Cloud Shell:

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

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

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

Podemos verificar se o comando kubectl-ai está funcionando ou não executando 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

Observe que o kubectl-ai oferece suporte a modelos de IA dos provedores gemini, vertexai, azopenai, openai, grok, bedrock e LLMs 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 comando a seguir 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 da chave

Inicie o kubectl-ai mais uma vez. Desta vez, você verá que ele é iniciado e está aguardando no terminal interativo o comando.

$ kubectl-ai

  Hey there, what can I help you with today?                                  

>>>  

Teste algumas consultas relacionadas a comandos kubectl no prompt. Alguns exemplos são fornecidos abaixo:

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

Você pode sair do terminal kubectl-ai digitando quit.

5. Como usar o kubectl-ai

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

Vamos executar o seguinte 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 de linguagem natural para listar pods no comando kubectl equivalente.

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

Forneça 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 demonstrou como iniciar o kubectl-ai e permanecer no terminal interativo para dar comandos subsequentes. Isso não é adequado para comandos que você gostaria de executar de forma autônoma e sem um prompt interativo aguardando o próximo comando.

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

Confira um comando de exemplo 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 canalizar 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 o kubectl-ai usando uma interface de chat padrão. Kubectl-ai vem com a própria interface da IU que pode ser iniciada usando 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ê 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 da Web, conforme mostrado abaixo:

90fce57ad7f16842.png

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

6a304d227d3fa5a6.png

Teste outras consultas nessa interface. Ela também fornece dicas sobre outras consultas de linguagem natural que você pode executar.

7. Liberar espaço

Para evitar cobranças contínuas na sua conta do Google Cloud, é importante excluir os recursos que criamos durante este workshop.

Se você não precisar do cluster do GKE que criamos na seção anterior deste laboratório, exclua-o usando 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 o cluster do Kubernetes usando consultas de linguagem natural. Para mais informações, consulte os recursos listados na próxima seção.

9. Recursos