|
| 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