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.
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
- No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
- Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto .
- 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.
- 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
- Execute o comando a seguir no Cloud Shell para confirmar se o comando gcloud sabe sobre seu projeto.
gcloud config list project
- Se o projeto não estiver definido, use este comando:
gcloud config set project <YOUR_PROJECT_ID>
- 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:
Em seguida, clique em Visualizar na porta 8080. Isso vai iniciar um navegador e disponibilizar a interface de chat na Web, como mostrado abaixo:
Confira um exemplo de consulta que executamos na interface de chat:
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.