Skip to content

Commit 9e75590

Browse files
authored
Merge pull request #39354 from AnaCarolinaRodriguesLeite/windows-resource
[pt-br] Add docs/concepts/configuration/windows-resource-management.md
2 parents 5a05d6e + 20d71a2 commit 9e75590

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
title: Gerenciamento de recursos para nós Windows
3+
content_type: concept
4+
weight: 75
5+
---
6+
7+
<!-- overview -->
8+
9+
Esta página descreve as diferenças em como os recursos são gerenciados entre o Linux e o Windows.
10+
11+
<!-- body -->
12+
13+
Em nós Linux, {{< glossary_tooltip text="cgroups" term_id="cgroup" >}} são usados ​​como uma divisão para o controle de recursos em Pods.
14+
Os contêineres são criados dentro desse limite para o isolamento de rede, processo e sistema de arquivos.
15+
As APIs de cgroup do Linux podem ser usadas para coletar estatísticas de uso de CPU, E/S e memória.
16+
17+
Em contraste, o Windows usa um [_objeto de trabalho_](https://docs.microsoft.com/windows/win32/procthread/job-objects) por contêiner com um filtro de namespace do sistema
18+
para conter todos os processos em um contêiner e fornecer isolamento lógico ao hospedar.
19+
(Os objetos de trabalho são um mecanismo de isolamento de processo do Windows e são diferentes dos
20+
que o Kubernetes chama de {{< glossary_tooltip term_id="job" text="Job" >}}).
21+
22+
Não há como executar um contêiner do Windows sem a filtragem de namespace.
23+
Isso significa que os privilégios do sistema não podem ser assegurados no contexto do host e,
24+
portanto, os contêineres privilegiados não estão disponíveis no Windows.
25+
Os contêineres não podem assumir uma identidade do host porque o Gerente de Conta de Segurança (Security Account Manager, ou SAM) é separado.
26+
27+
## Gerenciamento de memória {#resource-management-memory}
28+
29+
O Windows não possui um eliminador de processo por falta de memória como o Linux.
30+
O Windows sempre trata todas as alocações de memória do modo de usuário como
31+
virtuais e os arquivos de paginação são obrigatórios.
32+
33+
Os nós Windows não superdimensionam a memória para os processos. O efeito real
34+
é que o Windows não atingirá as condições de falta de memória
35+
da mesma forma que o Linux, e estará processando a página em disco em vez de estar
36+
sujeito ao encerramento por falta de memória (OOM). Se a memória for
37+
superprovisionada e toda a memória física estiver esgotada, a paginação poderá diminuir o desempenho.
38+
39+
## Gerenciamento de CPU {#resource-management-cpu}
40+
41+
O Windows pode limitar a quantidade de tempo de CPU alocado para diferentes processos,
42+
mas não pode garantir uma quantidade mínima de tempo de CPU.
43+
44+
No Windows, o kubelet oferece suporte a uma flag de linha de comando para definir a
45+
[prioridade do escalonador](https://docs.microsoft.com/windows/win32/procthread/scheduling-priorities) do processo kubelet:
46+
`--windows-priorityclass`. Essa flag permite que o processo kubelet obtenha
47+
mais fatias de tempo de CPU quando comparado a outros processos em execução no host do Windows.
48+
Mais informações sobre os valores permitidos e os seus significados estão disponíveis em
49+
[classes de prioridade do Windows](https://docs.microsoft.com/en-us/windows/win32/procthread/scheduling-priorities#priority-class).
50+
Para garantir que os Pods em execução não deixem o kubelet sem ciclos de CPU, defina essa flag como `ABOVE_NORMAL_PRIORITY_CLASS` ou acima.
51+
52+
## Reserva de recursos {#resource-reservation}
53+
54+
Para contabilizar a memória e a CPU usadas pelo sistema operacional, o agente de execução de contêiner
55+
e os processos de host do Kubernetes, como o kubelet, você pode (e deve)
56+
reservar recursos de memória e CPU com as flags `--kube-reserved` e/ou `--system-reserved` do kubelet.
57+
No Windows, esses valores são usados apenas para calcular o recursos
58+
[alocáveis](/docs/tasks/administer-cluster/reserve-compute-resources/#node-allocatable) ​​pelo nó.
59+
60+
{{< caution >}}
61+
Conforme você implanta cargas de trabalho, defina a memória de recursos e os limites de CPU nos contêineres.
62+
Isso também subtrai de `NodeAllocatable` e ajuda o escalonador de todo o cluster a determinar quais pods colocar em quais nós.
63+
64+
Alocar pods sem limites pode superprovisionar os nós do Windows e, em casos extremos, fazer com que os nós não sejam íntegros.
65+
{{< /caution >}}
66+
67+
No Windows, uma boa prática é reservar pelo menos 2GiB de memória.
68+
69+
Para determinar quanta CPU reservar, identifique a densidade máxima do pod para cada
70+
nó e monitore o uso da CPU dos serviços do sistema em execução, depois escolha um valor que atenda às necessidades das suas cargas de trabalho.

0 commit comments

Comments
 (0)