Visão geral do pool de nós
Introdução
O CCE apresenta pools de nós para ajudá-lo a gerenciar melhor os nós em clusters do Kubernetes. Um pool de nós contém um nó ou um grupo de nós com configuração idêntica em um cluster.
Você pode criar pools de nós personalizados no console do CCE. Com pools de nós, você pode criar, gerenciar e destruir nós rapidamente sem afetar o cluster. Todos os nós em um pool de nós personalizados têm parâmetros e tipo de nó idênticos. Você não pode configurar um único nó em um pool de nós; quaisquer alterações de configuração afetam todos os nós no pool de nós.
Você também pode usar pools de nós para dimensionamento automático (suportado apenas por pools de nós de pagamento por uso).
- Quando um pod em um cluster não pode ser agendado devido a recursos insuficientes, a expansão pode ser acionada automaticamente.
- Quando há um nó ocioso ou um limite de métrica de monitoramento é atingido, a redução pode ser acionada automaticamente.
Esta seção descreve como os pools de nós funcionam no CCE e como criar e gerenciar pools de nós.
Arquitetura do pool de nós
Geralmente, todos os nós em um pool de nós têm os mesmos atributos a seguir:
- Sistema operacional do nó
- Especificações do nó
- Modo de logon do nó
- Tempo de execução do contêiner do nó
- Parâmetros de inicialização de componentes do Kubernetes em um nó
- Script de inicialização definido pelo usuário de um nó
- Rótulos e manchas do Kubernetes
O CCE fornece os seguintes atributos estendidos para pools de nós:
- SO do pool de nós
- Número máximo de pods em cada nó em um pool de nós
Descrição de DefaultPool
O DefaultPool não é um pool de nós real. Ele classifica apenas os nós que não estão nos pools de nós criados pelo usuário. Esses nós são criados diretamente no console ou chamando APIs. O DefaultPool não oferece suporte a funções de pool de nós criadas pelo usuário, incluindo dimensionamento e configuração de parâmetros. O DefaultPool não pode ser editado, excluído, expandido ou dimensionado automaticamente, e os nós nele não podem ser migrados.
Cenários aplicáveis
Quando um cluster de grande escala é necessário, é aconselhável usar pools de nós para gerenciar nós.
A tabela a seguir descreve vários cenários de gerenciamento de cluster em larga escala e as funções dos pools de nós em cada cenário.
Cenário |
Função |
---|---|
Vários nós heterogêneos (com diferentes modelos e configurações) no cluster |
Os nós podem ser agrupados em diferentes pools para gerenciamento. |
dimensionado de nó frequente necessário em um cluster |
Os pools de nós suportam o escalonamento automático para adicionar ou reduzir nós dinamicamente. |
Regras complexas de agendamento de aplicações em um cluster |
As tags de pool de nós podem ser usadas para especificar rapidamente as regras de agendamento de serviços. |
Funções e precauções
Função |
Descrição |
Precaução |
---|---|---|
Criar um pool de nós |
Adicionar um pool de nós. |
Recomenda-se que um cluster não contenha mais de que 100 conjuntos de nós. |
Excluir um pool de nós |
Quando um pool de nós é excluído, os nós no pool de nós são excluídos primeiro. Quando um pool de nós anual/mensal é excluído, os nós são migrados para o pool de nós padrão primeiro. As cargas de trabalho nos nós originais são migradas automaticamente para os nós disponíveis em outros pools de nós. |
Se os pods no pool de nós tiverem um seletor de nó específico e nenhum dos outros nós no cluster satisfizer o seletor de nó, os pods se tornarão não escalonáveis. |
Ativar o dimensionamento automático para um pool de nós |
Depois que o dimensionamento automático for ativado, os nós serão criados ou excluídos automaticamente no pool de nós com base nas cargas do cluster. |
Não armazene dados importantes em nós em um pool de nós, pois os nós podem ser excluídos após o dimensionamento. Os dados nos nós excluídos não podem ser restaurados. |
Ativar o dimensionamento automático para um pool de nós |
Depois que o dimensionamento automático for desativado, o número de nós em um pool de nós não será alterado automaticamente com as cargas do cluster. |
Nenhuma |
Ajustar o tamanho de um pool de nós |
O número de nós em um pool de nós pode ser ajustado diretamente. Se o número de nós for reduzido, os nós serão removidos aleatoriamente do pool de nós atual. |
Depois que o dimensionamento automático estiver ativado, não é aconselhável ajustar manualmente o tamanho do pool de nós. |
Alterar configurações de pool de nós |
Você pode modificar o nome do pool de nós, a quantidade de nós, os rótulos do Kubernetes (e sua quantidade), as tags de recursos e as manchas e ajustar as configurações de disco, sistema operacional e mecanismo de contêiner do pool de nós. |
Os rótulos e manchas do Kubernetes excluídos ou adicionados (bem como sua quantidade) serão aplicados a todos os nós no pool de nós, o que pode causar o reagendamento do pod. Portanto, tenha cuidado ao realizar esta operação. |
Remover um nó de um pool de nós |
Os nós em um pool de nós podem ser migrados para o pool de nós padrão do mesmo cluster. |
Os nós no pool de nós padrão não podem ser migrados para outros pools de nós, e os nós em um pool de nós criado pelo usuário não podem ser migrados para outros pools de nós criados pelo usuário. |
Clonar um pool de nós |
Você pode copiar a configuração de um pool de nós existente para criar um novo pool de nós. |
Nenhuma |
Configurar parâmetros do Kubernetes |
Você pode configurar os componentes principais com granularidade fina. |
|
Implementar uma carga de trabalho em um pool de nós especificado
Ao criar uma carga de trabalho, você pode restringir pods para serem executados em um pool de nós especificado.
Por exemplo, no console do CCE, você pode definir a afinidade entre a carga de trabalho e o nó na página de guia Scheduling Policies na página de detalhes da carga de trabalho para implementar forçosamente a carga de trabalho em um pool de nós específico. Dessa forma, a carga de trabalho é executada apenas em nós no pool de nós. Para controlar melhor onde a carga de trabalho deve ser agendada, você pode usar políticas de afinidade ou antiafinidade entre cargas de trabalho e nós descritos em Política de agendamento (afinidade/antiafinidade).
Por exemplo, você pode usar a solicitação de recurso do contêiner como um nodeSelector para que as cargas de trabalho sejam executadas apenas nos nós que atendem à solicitação de recurso.
Se o arquivo de definição de carga de trabalho definir um contêiner que exija quatro CPUs, o agendador não escolherá os nós com duas CPUs para executar cargas de trabalho.
Operações relacionadas
Você pode fazer logon no console do CCE e consultar as seguintes seções para executar operações em pools de nós: