Baixe o material de estudo
Olá, querido (a) aluno(a)!
Neste artigo entenderemos conceitos importantes sobre Kubernetes: Explorando Configurações Essenciais para Orquestração de Containers e como são cobrados em questões de concursos.
Introdução à Configuração no Kubernetes
A operação eficiente de aplicações em Kubernetes depende não apenas do conceito de orquestração de containers, mas também de uma configuração sólida, estruturada e segura. A configuração no Kubernetes é declarativa: descrevemos o estado desejado dos recursos através de arquivos YAML, e o sistema se encarrega de atingir e manter esse estado.
Manifests YAML: O Coração da Configuração
No Kubernetes, todas as configurações são feitas através de manifests, normalmente arquivos no formato YAML. Esses arquivos descrevem recursos como Pods, Deployments, Services, ConfigMaps e muito mais. Cada manifest contém, no mínimo, quatro campos principais: apiVersion, kind, metadata e spec.
Exemplo básico de um Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: exemplo-deployment
spec:
replicas: 3
selector:
matchLabels:
app: exemplo
template:
metadata:
labels:
app: exemplo
spec:
containers:
– name: exemplo-container
image: nginx
Essa configuração cria três réplicas de um container Nginx.
ConfigMaps e Secrets: Separando Configuração do Código
ConfigMaps são usados para armazenar configurações não sensíveis, como variáveis de ambiente e arquivos de configuração. Já Secrets armazenam dados sensíveis como senhas e chaves de API. Ambos podem ser montados como volumes ou injetados como variáveis de ambiente dentro dos containers.
Exemplo de ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: config-exemplo
data:
APP_MODE: “production”
TIMEOUT: “30”
No caso dos Secrets, os dados são base64 codificados para transporte, mas precisam de proteção adicional em ambientes reais.
Volumes e Persistência de Dados
Containers, por natureza, são efêmeros. Para armazenar dados que sobrevivam a reinicializações de Pods, o Kubernetes utiliza Volumes. Existem diferentes tipos, como emptyDir, hostPath, e volumes mais sofisticados como PersistentVolume (PV) e PersistentVolumeClaim (PVC), que se integram a soluções de armazenamento externas.
Por exemplo, para usar um PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: meu-pvc
spec:
accessModes:
– ReadWriteOnce
resources:
requests:
storage: 1Gi
Probes: Monitorando Saúde dos Containers
O Kubernetes oferece dois tipos principais de verificações automáticas para garantir que os containers estejam funcionando corretamente:
- Liveness Probe: determina se o container deve ser reiniciado.
- Readiness Probe: determina se o container está pronto para receber tráfego.
Exemplo de Readiness Probe em um container:
readinessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
Essas probes ajudam a manter o ambiente saudável e evitar roteamento de requisições para serviços indisponíveis.
Estratégias de Atualização: Rolling Updates e Rollbacks
Atualizar aplicações sem downtime é uma capacidade crucial do Kubernetes. Através de configurações no Deployment, é possível realizar Rolling Updates, limitando o número de Pods indisponíveis ou excedentes durante a atualização.
Exemplo de configuração de estratégia:
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
Se algo der errado, o Kubernetes pode fazer rollback automaticamente para a versão anterior.
Resources Limits: Controlando o Uso de CPU e Memória
Para evitar que um container consuma todos os recursos do cluster, o Kubernetes permite configurar requests e limits de CPU e memória.
Exemplo em YAML:
resources:
requests:
memory: “64Mi”
cpu: “250m”
limits:
memory: “128Mi”
cpu: “500m”
Requests garantem recursos mínimos, enquanto Limits impõem um teto de consumo.
Namespace: Segmentação e Organização
Namespaces permitem dividir logicamente os recursos do cluster, isolando diferentes ambientes (como produção, homologação e desenvolvimento).
Exemplo de criação de um Namespace:
apiVersion: v1
kind: Namespace
metadata:
name: desenvolvimento
Com Namespaces, é possível aplicar políticas de segurança, limites de recursos e cotas específicas para diferentes grupos ou aplicações.
Policies e Segurança
O Kubernetes oferece mecanismos avançados de segurança através de:
- Network Policies: controlam o tráfego entre Pods.
- PodSecurity Standards: definem boas práticas de segurança para Pods (ex: evitar execução como root).
- RBAC (Role-Based Access Control): define permissões baseadas em papéis, restringindo o que usuários e serviços podem fazer no cluster.
Considerações Finais
Dominar as configurações do Kubernetes é essencial para construir aplicações resilientes, seguras e eficientes. Embora o sistema abstraia muita complexidade, é importante compreender a fundo como definir manifests corretos, como usar ConfigMaps, Secrets, Volumes, e como monitorar a saúde dos containers. O conhecimento dessas práticas eleva a qualidade da operação e prepara o ambiente para crescer de maneira sustentável.
Referências Bibliográficas:
HIGHTOWER, Kelsey; BURNS, Brendan; BEDA, Joe. Kubernetes: Up and Running: Dive into the Future of Infrastructure. 3rd ed. O’Reilly Media, 2022.
Principal base para configuração de Manifests YAML, conceitos de Deployments, Pods, Volumes, Rolling Updates e Rollbacks.
GARRISON, Justin; NOVA, Kris. Cloud Native DevOps with Kubernetes: Building, Deploying, and Scaling Modern Applications in the Cloud. O’Reilly Media, 2019.
Fonte para práticas DevOps com Kubernetes, detalhamento de Probes, ConfigMaps, Secrets e estratégias de segurança como RBAC e Network Policies.
THE LINUX FOUNDATION; CLOUD NATIVE COMPUTING FOUNDATION (CNCF). Kubernetes Documentation. Disponível em: https://kubernetes.io/docs/. Acesso em: abr. 2025.
Fonte primária oficial para validações técnicas sobre ConfigMaps, Secrets, Volumes, Liveness e Readiness Probes, Namespaces, políticas de rede, padrões de segurança e RBAC.
BURNS, Brendan. Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services. O’Reilly Media, 2018.
Apoio conceitual para estratégias de escalabilidade, segmentação via Namespaces e padrões de sistemas distribuídos usados no Kubernetes.
MICROSOFT AZURE. Kubernetes Best Practices. Disponível em: https://learn.microsoft.com/en-us/azure/architecture/best-practices/kubernetes. Acesso em: abr. 2025.
Complemento sobre melhores práticas de configuração de recursos (requests/limits) e segmentação de ambientes.
Então é isso!
Bons estudos e até o nosso próximo artigo.
Prof. Jósis Alves – Analista de TI no Supremo Tribunal Federal.
Instagram: @josisalvesprof @aprovati
Quer ficar por dentro dos concursos públicos abertos e previstos pelo Brasil? Clique nos links abaixo:
CONCURSOS 2025
CONCURSOS ABERTOS
QUESTÕES DE CONCURSOS
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos. Clique no link abaixo e inscreva-se:
TELEGRAM
Fonte: Gran Cursos Online