Configuração de uma cota de recurso
As cotas de recursos em nível de namespace limitam a quantidade de recursos disponíveis para equipes ou usuários quando essas equipes ou usuários usam o mesmo cluster. As cotas incluem o número total de um tipo de objeto e a quantidade total de recursos de computação (CPU e memória) consumidos pelos objetos.
Utilização
Por padrão, os pods em execução podem usar as CPUs e a memória de um nó sem restrições. Isso significa que os pods em um namespace podem esgotar todos os recursos do cluster.
O Kubernetes fornece namespaces para você agrupar cargas de trabalho em um cluster. Ao definir cotas de recursos para cada namespace, você pode evitar o esgotamento de recursos e garantir a confiabilidade do cluster.
Você pode configurar cotas para recursos como CPU, memória e o número de pods em um namespace. Para obter mais informações, consulte Cotas de recursos.
A tabela a seguir recomenda quantos pods você pode configurar para seus clusters de tamanhos diferentes.
Escala do cluster |
Número recomendado de pods |
---|---|
50 nós |
2.500 pods |
200 nós |
10.000 pods |
1.000 nós |
30.000 pods |
2.000 nós |
50.000 pods |
A partir de clusters da v1.21 e posterior, as Cotas de recursos padrão são criadas quando um namespace é criado se você tiver habilitado enable-resource-quota no Gerenciamento de configuração de cluster. Tabela 1 lista as cotas de recursos com base nas especificações do cluster. Você pode modificá-las de acordo com suas necessidades de serviço.
Restrições
O Kubernetes fornece controle de simultaneidade otimista (OCC), também conhecido como bloqueio otimista, para atualizações frequentes de dados. Você pode usar o bloqueio otimista definindo o campo resourceVersion. Este campo está nos metadados do objeto. Este campo identifica o número da versão interna do objeto. Quando o objeto é modificado, este campo é modificado de acordo. Você pode usar kube-apiserver para verificar se um objeto foi modificado. Quando o servidor de API recebe uma solicitação de atualização contendo o campo resourceVersion, o servidor compara os dados solicitados com o número da versão do recurso do servidor. Se forem diferentes, o objeto no servidor foi modificado quando a atualização é enviada. Nesse caso, o servidor da API retorna um erro de conflito (409). Obtenha os dados do servidor, modifique os dados e envie os dados para o servidor novamente. A cota de recursos limita o consumo total de recursos de cada namespace e registra as informações de recursos no cluster. Portanto, depois que a opção enable-resource-quota é ativada, a probabilidade de conflitos de criação de recursos aumenta em cenários de simultaneidade em larga escala, afetando o desempenho da criação de recursos em lote.
Procedimento
- Efetue logon no console do CCE e clique no nome do cluster para acessar o console do cluster.
- No painel de navegação, clique em Namespaces.
- Clique em Quota Management ao lado do namespace de destino.
Esta operação não pode ser executada nos namespaces do sistema kube-system e kube-public.
- Defina as cotas de recursos e clique em OK.
- Depois de definir as cotas de CPU e memória para um namespace, você deve especificar os valores de solicitação e limite de recursos de CPU e memória ao criar uma carga de trabalho. Caso contrário, a carga de trabalho não poderá ser criada. Se a cota de um recurso for definida como 0, o uso do recurso não será limitado.
- O uso da cota acumulada inclui os recursos usados pelo CCE para criar componentes padrão, como os Serviços do Kubernetes (que podem ser visualizados usando o kubectl) criados no namespace default. Portanto, é aconselhável definir uma cota de recursos maior do que o esperado para reservar recursos para criar componentes padrão.