Ferramenta 01 · roda no seu navegador
Conversor de CPU e memória do Kubernetes
Digite como está no manifesto (500m, 0.5, 512Mi, 1Gi, 2G) e veja o valor em todas as unidades, o total para as réplicas e o YAML pronto para colar.
privacidadeRoda no seu navegador. Nada sai da sua máquina.
erro
precisão mínima: 1m (0,001 núcleo). Documentação do Kubernetes, "Resource units in Kubernetes".
erro
aviso
Ki, Mi, Gi são potências de 1024; k, M, G são potências de 1000. Documentação do Kubernetes, "Resource units in Kubernetes".
As unidades, explicadas
documentação do Kubernetes, "Resource Management for Pods and Containers"CPU
A unidade é o núcleo: 1 CPU no Kubernetes equivale a 1 núcleo físico ou virtual. Frações são aceitas: 0.5 e 500m são o mesmo valor, e "m" quer dizer milli (milésimo). A precisão mínima é 1m. CPU é um recurso compressível: passar do limite gera throttling, não morte.
| No manifesto | vCPU | Leitura |
|---|---|---|
| 1 | 1,0 | um núcleo inteiro |
| 500m | 0,5 | meio núcleo; igual a 0.5 |
| 100m | 0,1 | um décimo de núcleo |
| 1m | 0,001 | o mínimo aceito |
Memória
A unidade é o byte. Sufixos com "i" (Ki, Mi, Gi, Ti) são potências de 1024; sem "i" (k, M, G, T) são potências de 1000. 512M e 512Mi diferem em 4,9%, e é aí que um limite "igual ao de antes" começa a matar pods. Memória não é compressível: passar do limite é OOMKilled.
| Sufixo | Bytes | Base |
|---|---|---|
| 1Ki | 1.024 | 1024¹ |
| 1Mi | 1.048.576 | 1024² |
| 1Gi | 1.073.741.824 | 1024³ |
| 1M | 1.000.000 | 1000² |
| 1G | 1.000.000.000 | 1000³ |
Passou do limite? Veja OOMKilled: o container passou do limite de memória.
Perguntas frequentes
Por que 512M e 512Mi não são a mesma coisa?
M é potência de 1000 (512.000.000 bytes) e Mi é potência de 1024 (536.870.912 bytes). A diferença é de 4,9%. O Kubernetes aceita as duas grafias e trata cada uma ao pé da letra, conforme a documentação, "Resource units in Kubernetes".
Posso escrever 0.5 em vez de 500m?
Sim, são equivalentes; o kubectl costuma mostrar 500m. A documentação não permite especificar CPU com precisão menor que 1m (0,001 núcleo).
O que acontece se eu passar do limite?
CPU é compressível: o container é limitado (throttling) e fica mais lento, mas não morre. Memória não é: passar de limits.memory é OOMKilled, exit code 137. Veja a página de erro OOMKilled.
Requests ou limits: qual entra na conta de capacidade?
O scheduler soma os requests dos pods do nó para decidir se cabe mais um. Limits não entram nessa soma, o que permite overcommit. Por isso o total das réplicas aqui usa requests.
Este conversor envia meus valores para algum servidor?
Não. A página é estática e todo o cálculo roda em JavaScript no seu navegador. Você pode confirmar na aba Network das ferramentas do desenvolvedor: nenhuma requisição sai enquanto você digita.