Notícias
Halloween na Serverspace: você consegue escapar do Labirinto de Servidores?
Serverspace Black Friday
RP
outubro 30, 2025
Atualizado outubro 30, 2025

Como implantar e gerenciar o Kubernetes?

O cenário digital moderno é marcado pelo crescimento acelerado de aplicações, serviços e soluções em nuvem, que exigem o uso eficiente de recursos. Com o aumento da capacidade computacional e a necessidade de otimização, surgiu a demanda por ferramentas que permitam:

  • Implantar várias aplicações no mesmo hardware.
  • Gerenciar recursos (CPU, RAM, armazenamento) com o mínimo de custos.
  • Garantir isolamento e segurança das cargas de trabalho.

Simplifique o trabalho com contêineres usando Managed Kubernetes — escalonamento automático, balanceamento de carga e atualizações de aplicativos sem tempo de inatividade.

O primeiro passo para resolver esses desafios foram os hipervisores, que permitiram executar máquinas virtuais isoladas. No entanto, com o avanço da containerização, surgiu a necessidade de soluções mais leves e flexíveis. Foi para isso que o Kubernetes foi criado.

Definição

Kubernetes (K8s) é uma plataforma aberta para orquestração de aplicativos em contêineres. Suas principais funções incluem:

  • Automação da implantação, escalonamento e gerenciamento de aplicações.
  • Otimização do uso de recursos do cluster.
  • Garantia de alta disponibilidade e autorrecuperação.

Inicialmente desenvolvido pelo Google com base no sistema interno Borg, o Kubernetes tornou-se, em 2014, um projeto da Cloud Native Computing Foundation (CNCF). Hoje, é o padrão de fato para gerenciar sistemas distribuídos em ambientes híbridos e multicloud.

Por que Kubernetes e não hipervisores?

Diferente dos hipervisores, que trabalham com máquinas virtuais, o Kubernetes opera com contêineres — processos leves e rápidos que compartilham o mesmo sistema operacional. Isso proporciona:

  • Maior densidade de cargas de trabalho.
  • Redução de custos operacionais.
  • Portabilidade entre diferentes ambientes.

Finalidade

A principal finalidade do Kubernetes é automatizar o ciclo de vida de aplicações em contêineres — incluindo implantação, escalonamento, balanceamento de carga, armazenamento persistente, segurança e suporte a ambientes híbridos. Ele oferece resiliência, eficiência e um controle unificado sobre aplicações em nuvem ou infraestrutura local.

O K8s resolve simultaneamente vários problemas:

  1. Evita falhas de contêineres com processos de autorrecuperação.
  2. Automatiza o escalonamento sem interromper serviços.
  3. Reduz a complexidade de configuração de rede.
  4. Melhora a utilização de recursos e elimina períodos de inatividade.

Conceitos principais

  1. Deployment — gerencia o ciclo de vida dos Pods: implantação, escalonamento e atualizações.
  2. Pod — unidade mínima do Kubernetes que executa um ou mais contêineres com rede e armazenamento compartilhados.
  3. Service — abstração que fornece acesso estável aos Pods via balanceamento de carga e DNS.
  4. ConfigMap e Secret — armazenam configurações e dados sensíveis, respectivamente.
  5. Volume — armazenamento persistente para Pods, preservando dados após reinicializações.
  6. Namespace — divide logicamente o cluster em ambientes isolados (por exemplo, dev/prod).

Arquitetura

A arquitetura do Kubernetes é composta por duas partes:

  1. Control Plane (Plano de Controle) – responsável pelo gerenciamento do cluster.
  2. Worker Nodes (Nós de Trabalho) – responsáveis pela execução das cargas de trabalho.

Requisitos de implantação

Para implantar o K8s, são necessários:

  1. Pelo menos um nó mestre (control plane) e um ou mais nós de trabalho.
  2. Um endereço IP para cada nó.
  3. Mínimo de 2 vCPUs e 2 GB de RAM.
  4. Comunicação entre os nós.

Instalação do Kubernetes

1. Atualização do sistema e instalação de dependências
Instale pacotes necessários para trabalhar com os repositórios do Kubernetes e CRI-O:

sudo apt update && sudo apt install -y apt-transport-https gnupg2

2. Desativar a memória swap — evita conflitos de gerenciamento de memória.

swapoff -a
sudo rm /swap.img
sed -i '/swap/d' /etc/fstab

3. Ativar módulos do kernel para rede e armazenamento:

modprobe br_netfilter overlay
echo "br_netfilter" >> /etc/modules
echo "overlay" >> /etc/modules

4. Habilitar o encaminhamento de IP:

echo 1 > /proc/sys/net/ipv4/ip_forward

5. Instalar kubelet, kubeadm e kubectl:

apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

6. Instalar o CRI-O (ambiente de execução de contêineres):

apt-get update
apt-get install -y cri-o cri-o-runc
systemctl enable crio && systemctl start crio

7. Inicializar o cluster com kubeadm:

kubeadm init --pod-network-cidr=10.100.0.0/16

8. Adicionar um nó de trabalho (worker):

kubeadm join :6443 --token --discovery-token-ca-cert-hash

9. Configurar acesso local via kubectl:

mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config

Gerenciamento do Kubernetes

Principais comandos do kubectl

Verificar recursos:

kubectl get pods
kubectl get nodes
kubectl describe pod

Implantar ou atualizar:

kubectl apply -f deployment.yaml
kubectl create deployment nginx --image=nginx:1.25

Escalonar:

kubectl scale deployment/nginx --replicas=5

Atualizar imagens:

kubectl set image deployment/nginx nginx=nginx:1.26
kubectl rollout undo deployment/nginx

Excluir recursos:

kubectl delete -f deployment.yaml

Logs e depuração

kubectl logs
kubectl exec -it -sh
kubectl top nodes
kubectl top pods

Configurações e segredos

ConfigMap:

apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
app.env: |
LOG_LEVEL=INFO
DB_HOST=postgres

Secret:

apiVersion: v1
kind: Secret
metadata:
name: db-secret
type: Opaque
data:
password: dGVzdC1wYXNzd29yZA==

Uso em Pods:

env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-secret
key: password

Armazenamento persistente

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi

Segurança

RBAC:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]

Network Policies:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-all-ingress
spec:
podSelector: {}
policyTypes:
- Ingress

Monitoramento e logging

Ferramentas recomendadas:

  • Prometheus + Grafana — coleta e visualização de métricas.
  • EFK Stack (Elasticsearch, Fluentd, Kibana) — agregação e análise de logs.
  • Kubernetes Dashboard — interface web de gerenciamento.

Instalação via Helm:

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/prometheus

Automação e CI/CD

GitOps com Argo CD:

argocd app create my-app --repo https://github.com/user/repo --path manifests

Integração com GitLab CI:

deploy:
stage: deploy
script:
- kubectl apply -f k8s/

Solução de problemas

Verificação de eventos do cluster:

kubectl get events --sort-by=.metadata.creationTimestamp

Verificação do estado dos nós:

kubectl describe node

Diagnóstico de rede:

kubectl run -it --rm debug --image=nicolaka/netshoot -- sh
Avaliação:
5 fora de 5
Аverage rating : 5
Avaliado por: 1
CEP 01311-930 São Paulo Avenida Paulista, nº 1765, 7º andar, Cj. 72, CV 10172, Bela Vista
+ 55 11 5118-1047
ITGLOBAL.COM BR LTDA

Você também pode gostar...

Usamos cookies para melhorar sua experiência no Serverspace. Ao continuar a navegar em nosso site, você concorda com o Uso de Cookies e com a Política de Privacidade.