{"id":64,"date":"2026-08-17T00:35:46","date_gmt":"2026-08-17T03:35:46","guid":{"rendered":"https:\/\/telapreta.dev.br\/blog\/index.php\/calcular-numero-de-nos-kubernetes\/"},"modified":"2026-08-17T16:44:43","modified_gmt":"2026-08-17T19:44:43","slug":"calcular-numero-de-nos-kubernetes","status":"publish","type":"post","link":"https:\/\/telapreta.dev.br\/blog\/index.php\/calcular-numero-de-nos-kubernetes\/","title":{"rendered":"Como Calcular o N\u00famero de N\u00f3s Kubernetes com Base nas Suas Cargas de Trabalho"},"content":{"rendered":"<div class=\"telapreta-post-body\" style=\"line-height: 1.8;font-size: 1.05rem;color: #e2e8f0\">\n<p><em>Aprenda a f\u00f3rmula pr\u00e1tica para dimensionar corretamente o tamanho e a quantidade de worker nodes em um cluster Kubernetes de alta disponibilidade.<\/em><\/p>\n<hr style=\"border-color: #1e293b;margin: 30px 0\" \/>\n<h2 style=\"color: #10b981;margin-top: 30px\">\ud83d\udcca A F\u00f3rmula do Dimensionamento<\/h2>\n<p>Dimensionar um cluster n\u00e3o \u00e9 apenas somar a mem\u00f3ria de todos os Pods. \u00c9 preciso considerar a reserva do sistema (<code>kube-reserved<\/code> e <code>system-reserved<\/code>), r\u00e9plicas de redund\u00e2ncia e margem de surto (surge capability).<\/p>\n<h2 style=\"color: #10b981;margin-top: 30px\">\u2699\ufe0f Passo a Passo do C\u00e1lculo<\/h2>\n<ol style=\"line-height: 1.8\">\n<li><strong>Calcular a Demanda Total de CPU\/RAM dos Pods:<\/strong> Some os <code>requests<\/code> de recursos declarados nos seus deployments.<\/li>\n<li><strong>Adicionar Margem de Failover N+1:<\/strong> Garanta que o cluster suporte a perda de pelo menos 1 n\u00f3 sem desapontar workloads em produ\u00e7\u00e3o.<\/li>\n<li><strong>Descontar Recursos Reservados do Kubelet:<\/strong> Em um n\u00f3 de 16GB, cerca de 2GB a 3GB s\u00e3o alocados para o sistema operacional e dem\u00f4nios do Kubernetes.<\/li>\n<\/ol>\n<h2 style=\"color: #10b981;margin-top: 30px\">\ud83d\udcd0 Exemplo Pr\u00e1tico<\/h2>\n<p>Para uma aplica\u00e7\u00e3o exigindo 64 vCPUs e 256 GB de RAM com toler\u00e2ncia a falhas N+1:<\/p>\n<ul style=\"line-height: 1.8\">\n<li>Op\u00e7\u00e3o A (Muitos n\u00f3s pequenos): 9x n\u00f3s de 8 vCPU \/ 32 GB.<\/li>\n<li>Op\u00e7\u00e3o B (Poucos n\u00f3s grandes): 5x n\u00f3s de 16 vCPU \/ 64 GB (Recomendado para melhor densidade de Pods e menor overhead).<\/li>\n<\/ul>\n<hr style=\"border-color: #1e293b;margin: 35px 0\" \/>\n<p style=\"color: #94a3b8;font-size: 0.95rem\"><em>Artigo originalmente publicado por <strong>Fabio Silva<\/strong> \u2014 Arquiteto de Solu\u00e7\u00f5es em Cloud, DevOps e IA Generativa.<\/em><\/p>\n<\/div>\n<div class=\"vscode-window-mockup\" style=\"background: #1e1e1e;border-radius: 10px;border: 1px solid #3c3c3c;overflow: hidden;margin: 30px 0;font-family: monospace\">\n<div style=\"background: #252526;padding: 8px 15px;display: flex;align-items: center;justify-content: space-between;border-bottom: 1px solid #333\">\n<div style=\"display: flex;gap: 8px\">      <span style=\"width: 12px;height: 12px;border-radius: 50%;background: #ff5f56;display: inline-block\"><\/span>      <span style=\"width: 12px;height: 12px;border-radius: 50%;background: #ffbd2e;display: inline-block\"><\/span>      <span style=\"width: 12px;height: 12px;border-radius: 50%;background: #27c93f;display: inline-block\"><\/span>    <\/div>\n<div style=\"color: #cccccc;font-size: 12px;font-weight: 500\">      <span>\ud83d\udcc4 deployment.yaml \u2014 Visual Studio Code [Linux x64]<\/span>    <\/div>\n<div style=\"color: #10b981;font-size: 11px;font-weight: bold\">Copilot Enabled \ud83e\udd16<\/div>\n<\/p><\/div>\n<div style=\"background: #2d2d2d;display: flex;border-bottom: 1px solid #1e1e1e;font-size: 13px\">\n<div style=\"background: #1e1e1e;color: #ffffff;padding: 6px 16px;border-right: 1px solid #252526;border-top: 2px solid #10b981;display: flex;align-items: center;gap: 8px\">      <span style=\"color: #10b981\">\u26a1<\/span> deployment.yaml    <\/div>\n<\/p><\/div>\n<div style=\"padding: 18px;font-size: 13px;line-height: 1.6;color: #d4d4d4;background: #1e1e1e\">\n<pre style=\"margin: 0;background: transparent;padding: 0;border: none;color: inherit;font-family: monospace\"><span style=\"color: #569cd6\">apiVersion<\/span>: <span style=\"color: #ce9178\">apps\/v1<\/span>\r\n<span style=\"color: #569cd6\">kind<\/span>: <span style=\"color: #ce9178\">Deployment<\/span>\r\n<span style=\"color: #569cd6\">metadata<\/span>:\r\n  <span style=\"color: #569cd6\">name<\/span>: <span style=\"color: #ce9178\">telapreta-app<\/span>\r\n<span style=\"color: #569cd6\">spec<\/span>:\r\n  <span style=\"color: #569cd6\">replicas<\/span>: <span style=\"color: #b5cea8\">3<\/span><\/pre>\n<\/p><\/div>\n<div style=\"background: #181818;border-top: 1px solid #2b2b2b;padding: 12px 16px;font-size: 12px;color: #cccccc\">\n<div style=\"color: #10b981;font-weight: bold;margin-bottom: 6px;display: flex;align-items: center;gap: 8px\">      <span>\ud83d\udda5\ufe0f TERMINAL (bash)<\/span> <span style=\"color: #666;font-weight: normal\">\u2014 ubuntu@telapreta-server:~<\/span>    <\/div>\n<div style=\"color: #4ec9b0;font-family: monospace\">      <span style=\"color: #10b981\">fabio@ubuntu-linux<\/span>:<span style=\"color: #569cd6\">~\/projects<\/span>$ <span style=\"color: #ce9178\">kubectl apply -f deployment.yaml -n production<\/span>    <\/div>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Aprenda a f\u00f3rmula pr\u00e1tica para dimensionar corretamente o tamanho e a quantidade de worker nodes em um cluster Kubernetes de alta disponibilidade. \ud83d\udcca A F\u00f3rmula do Dimensionamento Dimensionar um cluster n\u00e3o \u00e9 apenas somar a mem\u00f3ria de todos os Pods. \u00c9 preciso considerar a reserva do sistema (kube-reserved e system-reserved), r\u00e9plicas de redund\u00e2ncia e margem &#8230; <a title=\"Como Calcular o N\u00famero de N\u00f3s Kubernetes com Base nas Suas Cargas de Trabalho\" class=\"read-more\" href=\"https:\/\/telapreta.dev.br\/blog\/index.php\/calcular-numero-de-nos-kubernetes\/\" aria-label=\"Read more about Como Calcular o N\u00famero de N\u00f3s Kubernetes com Base nas Suas Cargas de Trabalho\">Ler mais<\/a><\/p>\n","protected":false},"author":1,"featured_media":65,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5],"tags":[],"class_list":["post-64","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops-cloud","category-infraestrutura"],"_links":{"self":[{"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/posts\/64","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=64"}],"version-history":[{"count":3,"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/posts\/64\/revisions"}],"predecessor-version":[{"id":221,"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/posts\/64\/revisions\/221"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/media\/65"}],"wp:attachment":[{"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=64"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=64"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/telapreta.dev.br\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=64"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}