Middle
O que são limites e solicitações no Kubernetes?
sobes.tech IA
Resposta da IA
Os limites (limits) e as solicitações (requests) no Kubernetes determinam o consumo de recursos (CPU e memória) para os contêineres.
requests: A quantidade mínima garantida de recursos que o contêiner tentará usar. O planejador do Kubernetes considera as solicitações ao distribuir os pods pelos nós para garantir a disponibilidade dos recursos declarados.limits: A quantidade máxima de recursos que o contêiner pode usar. Se o contêiner tentar exceder o limite de memória, será finalizado (OOMKilled). Exceder o limite de CPU limita seu desempenho, mas não causa sua finalização.
Exemplo na especificação do pod:
# Especificação do contêiner
containers:
- name: my-app
image: my-image
resources:
requests:
memory: "64Mi" # Solicita 64 megabytes de memória
cpu: "250m" # Solicita 0,25 núcleo de CPU (250 millicores)
limits:
memory: "128Mi" # Limite de 128 megabytes de memória
cpu: "500m" # Limite de 0,5 núcleo de CPU (500 millicores)
Unidades de medida:
- CPU: Em millicores (
m). 1000m = 1 núcleo. - Memória: Em bytes (B, kB, MB, GB, Ti, Pi...), preferencialmente usando potências de dois (Ki, Mi, Gi, Ti, Pi...).
Importância:
- Planeamento: Requests ajudam o Kubernetes a distribuir eficientemente os pods pelos nós, evitando sobrecarga.
- Estabilidade: Limits evitam a monopolização de recursos por um único pod, aumentando a estabilidade do cluster.
- Gestão de custos: Permitem estimar e controlar o consumo de recursos, influenciando os custos na nuvem.
Sem a definição de limites e solicitações, os contêineres podem obter recursos ilimitados, o que pode levar à instabilidade dos nós e de todo o cluster sob cargas elevadas.