Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste artigo, você aprenderá sobre reservas de recursos dos nós no AKS (Serviço de Kubernetes do Azure).
Reservas de recursos
O AKS usa recursos dos nós para ajudar os nós a funcionar como parte do cluster. Esse uso pode causar uma discrepância entre os recursos totais do nó e os recursos alocáveis no AKS.
O AKS reserva dois tipos de recursos, CPU e memória, em cada nó para manter o desempenho e a funcionalidade do nó. À medida que um nó aumenta em recursos, as reservas de recursos também crescem devido a uma necessidade maior de gerenciamento de pods implantados pelo usuário. Tenha em mente que você não pode alterar reservas de recursos em um nó.
Reservas de CPU
A CPU reservada depende do tipo de nó e da configuração do cluster, o que pode resultar em menos CPU alocável por executar funcionalidades extras. A tabela a seguir mostra as reservas de CPU em milicores:
| Núcleos de CPU no host | Um núcleo | 2 núcleos | 4 núcleos | 8 núcleos | 16 núcleos | 32 núcleos | 64 núcleos |
|---|---|---|---|---|---|---|---|
| CPU reservada para o Kubernetes (millicores) | 60 | 100 | 140 | 180 | 260 | 420 | 740 |
Reservas de memória
No AKS, a memória reservada consiste na soma de dois valores:
AKS 1.29 e versões posteriores
Por padrão, o
kubeletdaemon tem a regra de despejo memory.available < 100 Mi. Essa regra garante que um nó tenha pelo menos 100 Mi passíveis de alocação em todos os momentos. Quando um host está abaixo do limite de memória disponível, okubeletdispara o encerramento de um dos pods em execução e libera a memória no computador host.Uma taxa de reserva de memória definida com base no menor dos seguintes valores: 20 MB * número máximo de pods com suporte pelo nó + 50 MB ou 25% dos recursos totais de memória do sistema.
Exemplos:
- Se a máquina virtual (VM) fornecer 8 GB de memória e o nó der suporte a até 30 pods, o AKS reservará 20 MB * 30 pods no máximo + 50 MB = 650 MB para kube-reserved.
Allocatable space = 8 GB - 0.65 GB (kube-reserved) - 0.1 GB (eviction threshold) = 7.25 GB or 90.625% allocatable. - Se a VM fornecer 4 GB de memória e o nó der suporte a até 70 pods, o AKS reservará 25% * 4 GB = 1.000 MB para kube-reserved, pois isso é inferior a 20 MB * 70 pods no máximo + 50 MB = 1.450 MB.
Para obter mais informações, confira Configurar o número máximo de pods por nó em um cluster do AKS.
- Se a máquina virtual (VM) fornecer 8 GB de memória e o nó der suporte a até 30 pods, o AKS reservará 20 MB * 30 pods no máximo + 50 MB = 650 MB para kube-reserved.
Observação
Para personalizar kubeReserved os valores de CPU e memória ou hardEvictionThreshold nos pools de nós Linux, use as configurações de visualização para configuração personalizada de nós e registre o sinalizador de recurso AKSNodeCustomizationPreview. Para obter mais informações, consulte Personalizar a configuração do nó dos pools de nós do AKS (Serviço de Kubernetes do Azure).
Versões do AKS anteriores à 1.29
-
kubeletdaemon tem a regra de despejo memory.available < 750 Mi por padrão. Essa regra garante que um nó tenha pelo menos 750 Mi passíveis de alocação em todos os momentos. Quando um host está abaixo do limite de memória disponível, okubeletdispara o encerramento de um dos pods em execução e libera a memória no computador host. -
Uma taxa regressiva de reservas de memória para o daemon kubelet funcionar adequadamente (kube-reserved).
- 25% dos primeiros 4 GB de memória
- 20% dos primeiros 4 GB de memória (até 8 GB)
- 10% dos primeiros 8 GB de memória (até 16 GB)
- 6% dos primeiros 112 GB de memória (até 128 GB)
- 2% de qualquer memória com mais de 128 GB
Observação
O AKS reserva 2 GB extras para os processos do sistema nos nós do Windows, que não são incluídos no cálculo da memória.
As regras de alocação de memória e CPU foram projetadas para:
- Mantenha a integridade dos nós de agente, incluindo alguns pods de sistema de hospedagem críticos para a integridade do cluster.
- Faz com que o nó relate menos memória alocável e CPU do que relataria se ele não fosse parte de um cluster Kubernetes.
Por exemplo, se um nó oferecer 7 GB, ele relata 34% de memória não alocável, incluindo o limite de remoção rígido de 750 Mi.
0.75 + (0.25*4) + (0.20*3) = 0.75 GB + 1 GB + 0.6 GB = 2.35 GB / 7 GB = 33.57% reserved
Além das reservas para o Kubernetes em si, o sistema operacional do nó subjacente também reserva uma quantidade de recursos de CPU e memória para manter o funcionamento das funções do SO.
Para ver as melhores práticas associadas, confira Melhores práticas para recursos básicos do agendador no AKS.
Próximas etapas
- Saiba mais sobre configuração personalizada de nós no AKS.