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