Comandos do Kubernetes, crie e gerencie recursos no Kubernetes através do terminal

Kubernetes é uma plataforma de orquestração de contêineres que permite gerenciar facilmente aplicativos em contêineres em um cluster. Com o Kubernetes, é possível implantar, escalar e gerenciar aplicativos sem se preocupar com os detalhes da infraestrutura subjacente. Neste post, vamos nos aprofundar nos principais comandos do Kubernetes e como eles são usados.

Lista de comandos gerais

kubectl get

O comando “kubectl get” é usado para listar recursos Kubernetes. Ele permite que você veja uma lista de recursos Kubernetes disponíveis em seu cluster. Por exemplo, você pode usar “kubectl get pods” para listar todos os pods em seu cluster.

Exemplo:

kubectl get pods
Terminal

Exemplo de saída:

kubectl get pods
NAME                  READY     STATUS    RESTARTS   AGE
nginx-6f4f6d4bf4-4x  1/1       Running   0          1h
nginx-6f4f6d4bf4-5d  1/1       Running   0          1h
nginx-6f4f6d4bf4-zz  1/1       Running   0          1h
Terminal

kubectl create

O comando “kubectl create” é usado para criar novos recursos Kubernetes. Ele permite que você crie um novo objeto em seu cluster, como um pod, um serviço ou uma implantação.

Exemplo:

kubectl create deployment nginx --image=nginx deployment.apps/nginx created
Terminal

kubectl apply

O comando “kubectl apply” é usado para aplicar uma configuração a um recurso existente no cluster. Ele permite que você atualize um objeto existente no cluster, como um pod, um serviço ou uma implantação.

Exemplo:

kubectl apply -f nginx-deployment.yaml deployment.apps/nginx-deployment configured
Terminal

kubectl describe

O comando “kubectl describe” é usado para exibir informações detalhadas sobre um recurso Kubernetes. Ele permite que você veja informações como o status atual do recurso, os eventos relacionados a ele e as configurações aplicadas.

Exemplo:

kubectl describe pod nginx-6f4f6d4bf4-4x
Terminal

Exemplo de saída:

kubectl describe pod nginx-6f4f6d4bf4-4x
Name:               nginx-6f4f6d4bf4-4x
Namespace:          default
Priority:           0
PriorityClassName:  <none>
Node:               minikube/192.168.64.2
Start Time:         Mon, 22 Mar 2023 11:25:57 -0400
Labels:             app=nginx
                    pod-template-hash=6f4f6d4bf4
Annotations:        <none>
Status:             Running
IP:                 172.17.0.4
...
Terminal

kubectl logs

O comando “kubectl logs” é usado para exibir os logs de um contêiner em um pod. Ele permite que você veja o que está acontecendo dentro do contêiner e depure problemas.

Exemplo:

kubectl logs nginx-6f4f6d4bf4-4x
Terminal

Exemplo de saída:

kubectl logs nginx-6f4f6d4bf4-4x
127.0.0.1 - - [22/Mar/2023:15:25:38 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3
...
Terminal

Gerenciamento de Pods

Os pods são a unidade básica de implantação no Kubernetes, contendo um ou mais contêineres. Abaixo estão alguns comandos úteis para gerenciá-los:

Criando um Pod

Este comando criará um pod com o nome especificado e a imagem fornecida.

kubectl run nome-do-pod --image=imagem:tag
Terminal

Listando todos os Pods

Este comando exibirá uma lista de todos os pods no cluster.

kubectl get pods
Terminal

Obtendo informações detalhadas de um Pod

Este comando exibirá informações detalhadas sobre um pod específico.

kubectl describe pod nome-do-pod
Terminal

Excluindo um Pod

Este comando excluirá um pod específico.

kubectl delete pod nome-do-pod
Terminal

Acompanhando logs de um Pod

Este comando exibirá os logs de um pod específico.

kubectl logs nome-do-pod
Terminal

Gerenciamento de Deployments

Os deployments são responsáveis por gerenciar o estado desejado dos pods em um cluster Kubernetes. Abaixo estão alguns comandos úteis para gerenciá-los:

Criando um deployment

Este comando cria um deployment.

kubectl create deployment nome-do-deployment
Terminal

Comandos do Kubernetes para gerenciamento de recursos

kubectl create

O comando kubectl create é usado para criar um novo recurso no cluster Kubernetes. Ele pode ser usado para criar vários tipos de recursos, como pods, serviços, implantações, configmaps e segredos. Abaixo está um exemplo de como criar um novo pod usando o comando kubectl create.

kubectl create pod nginx --image=nginx
Terminal

Este comando cria um novo pod chamado “nginx” usando a imagem “nginx”.

kubectl apply

O comando kubectl apply é semelhante ao kubectl create, mas pode ser usado para criar ou atualizar recursos existentes no cluster Kubernetes. Ele usa arquivos YAML para definir o estado desejado do recurso e aplica as alterações necessárias. Abaixo está um exemplo de como criar um novo serviço usando o comando kubectl apply.

kubectl apply -f service.yaml
Terminal

Este comando cria um novo serviço com base nas informações definidas no arquivo YAML “service.yaml”.

kubectl get

O comando kubectl get é usado para listar os recursos disponíveis no cluster Kubernetes. Ele pode ser usado para listar vários tipos de recursos, como pods, serviços, implantações e nós. Abaixo está um exemplo de como listar todos os pods em um namespace específico usando o comando kubectl get.

kubectl get pods -n my-namespace
Terminal

Este comando lista todos os pods no namespace “my-namespace”.

kubectl describe

O comando kubectl describe é usado para obter informações detalhadas sobre um recurso específico no cluster Kubernetes. Ele pode ser usado para obter informações sobre vários tipos de recursos, como pods, serviços, implantações e nós. Abaixo está um exemplo de como obter informações detalhadas sobre um serviço usando o comando kubectl describe.

kubectl describe service my-service
Terminal

Este comando obtém informações detalhadas sobre o serviço chamado “my-service”.

kubectl delete

O comando kubectl delete é usado para excluir um recurso específico no cluster Kubernetes. Ele pode ser usado para excluir vários tipos de recursos, como pods, serviços, implantações e nós. Abaixo está um exemplo de como excluir um pod usando o comando kubectl delete.

kubectl delete pod nginx
Terminal

Este comando exclui o pod chamado “nginx”.

Comandos de gerenciamento de implantação

kubectl scale

O comando kubectl scale é usado para aumentar ou diminuir o número de réplicas de uma implantação. Ele pode ser usado para aumentar a capacidade de um aplicativo durante períodos de pico de tráfego ou diminuir a capacidade quando o tráfego é menor. Abaixo está um exemplo de como escalar uma implantação usando o comando kubectl scale.

kubectl scale deployment my-app --replicas=3
Terminal

Este comando aumenta o número de réplicas da implantação chamada “my-app” para 3.

kubectl rollout

O comando kubectl rollout é usado para gerenciar os rollouts de implantações do Kubernetes. Ele permite que você atualize as implantações com novas versões de contêineres, reverta para uma versão anterior, interrompa ou retome um rollout em andamento e visualize o histórico de atualizações.

Aqui está um exemplo de como usar o comando kubectl rollout:

Primeiro, crie uma implantação do Kubernetes usando o seguinte comando:

kubectl create deployment my-app --image=my-app:v1
Terminal

Isso criará uma implantação chamada my-app usando a imagem my-app:v1.

Em seguida, execute o seguinte comando para verificar o status da implantação:

code kubectl rollout status deployment/my-app
Terminal

Isso mostrará o status da implantação e informará se está em andamento ou concluída.

Agora, suponha que você queira atualizar a imagem para a versão my-app:v2. Você pode fazer isso usando o seguinte comando:

kubectl set image deployment/my-app my-app=my-app:v2
Terminal

Isso iniciará um rollout da implantação, atualizando todos os pods para a nova versão do contêiner.

Para verificar o status do rollout, você pode usar o seguinte comando:

kubectl rollout status deployment/my-app
Terminal

Isso mostrará o status do rollout e informará se está em andamento ou concluído.

Se você precisar reverter para a versão anterior, execute o seguinte comando:

kubectl rollout undo deployment/my-app
Terminal

Isso reverterá a implantação para a versão anterior.

Para visualizar o histórico de rollouts, execute o seguinte comando:

kubectl rollout history deployment/my-app
Terminal

Isso mostrará o histórico de todas as atualizações da implantação e permitirá que você selecione uma versão específica para reverter ou pausar o rollout.

Links

Mauricio Lima
Mauricio Lima

Bacharel em Ciência da Computação, profissional dedicado ao desenvolvimento de software e entusiasta da tecnologia.

Artigos: 65