Gerencie os nós Lingjun como um grupo por meio de um pool de nós Lingjun: crie o pool, adicione e remova nós, atualize o kubelet e lide com cenários comuns de O&M.
Escopo de aplicação
Tipo de cluster Lingjun: Basic Lingjun Cluster Service (Lite).
Tipo de cluster ACK: ACK managed Pro cluster, versão 1.31 ou posterior. Caso seja necessária uma atualização, consulte {{XREF_0}}.
-
Pool de nós Lingjun do cluster ACK:
Versão do kernel do SO: 5.10 ou posterior.
-
Versão do cgroup do SO: A comunidade Kubernetes oferece suporte ao cgroup v2 desde a versão 1.26 e descontinuou o cgroup v1 na versão 1.35. Se a versão do cluster for 1.35 ou posterior, os nós devem usar uma imagem de SO que utilize cgroup v2. Não é possível adicionar nós que usem um SO com cgroup v1 ao cluster ACK.
Ao atualizar um cluster ACK de uma versão anterior à 1.35 para a versão 1.35 ou posterior, os nós devem usar um SO com cgroup v2. Caso contrário, a atualização do cluster falhará. Para mais informações, consulte {{XREF_1}}.
-
Rede do cluster ACK:
Apenas clusters single-stack IPv4 são suportados. Clusters dual-stack IPv6 não são suportados.
-
Somente o modo ENI exclusiva do Terway é suportado.
-
Certifique-se de que o Pod vSwitch usado pelo pool de nós Lingjun do cluster ACK inclua a zona onde o cluster Lingjun está localizado.
O Pod vSwitch do cluster ACK pode ser configurado durante a criação do cluster. Após criar o cluster ACK e antes de adicionar nós Lingjun, você também pode configurá-lo modificando o parâmetro PodVswitchId do terway-eniip. Para obter o procedimento, consulte {{XREF_2}} .
-
-
Versões dos add-ons do cluster ACK:
Ao criar um ACK managed Pro cluster, as versões mais recentes dos add-ons são usadas por padrão. Se você criar um pool de nós Lingjun em um cluster existente que já utilize qualquer um dos add-ons abaixo, {{XREF_3}} para as versões especificadas.
Pré-requisitos
{{XREF_18}}. Selecione Basic Lingjun Cluster Service e adicione nós a um grupo de nós Lingjun.
{{XREF_19}}. Selecione a edição Pro. O cluster deve estar na mesma região e na mesma VPC que o cluster Lingjun.
{{XREF_20}}. Essa configuração pode ser feita durante a criação do cluster gerenciado ACK. Mantenha pelo menos três nós ECS para implantar alguns componentes de controle do ACK visando alta disponibilidade.
-
Instale os add-ons do cluster ACK.
Na página {{XREF_21}}, instale o add-on {{XREF_22}}.
Se os nós Lingjun usarem {{XREF_23}}, será necessário solicitar separadamente a lista de permissões do add-on {{XREF_24}}. Antes de criar um pool de nós Lingjun, instale o add-on ACK VPD CNI na página {{XREF_25}}.
-
Caso os nós Lingjun sejam nós PPU, instale adicionalmente os add-ons {{XREF_26}} e {{XREF_27}}.
ImportanteAo criar um pool de nós que contenha nós conectados ao Lingjun, o ACK adiciona automaticamente os blocos CIDR do grupo Lingjun ao grupo de segurança do cluster e permite o acesso de entrada. O ACK também adiciona o rótulo
alibabacloud.com/lingjun-network-type: vpdao pool de nós. Não remova esse rótulo.
Criar um pool de nós Lingjun
Configure as definições do pool de nós no console, incluindo configurações básicas, de rede e de armazenamento. Algumas configurações, especialmente aquelas relacionadas à disponibilidade e à rede do pool de nós, não podem ser modificadas após a criação. A criação de um pool de nós não afeta os nós ou as cargas de trabalho nos pools existentes.
Observações antes da criação
Por padrão, um pool de nós Lingjun armazena dados de runtime de contêiner no disco do sistema. Certifique-se de reservar espaço livre suficiente para o diretório de runtime de contêiner. Espaço insuficiente em disco pode causar a evicção de pods ou tornar os nós anormais.
Novos pools de nós Lingjun suportam apenas {{XREF_28}} para comunicação de rede VPC. Verifique se o {{XREF_29}} atende aos seus requisitos de negócios.
-
Os nós em um pool de nós Lingjun possuem o taint
node-role.alibabacloud.com/lingjun: NoSchedulepor padrão, o que impede que componentes do sistema (exceto DaemonSets) sejam agendados para nós Lingjun e ocupem recursos. Se desejar que pods sejam agendados para nós Lingjun, adicione uma tolerância para esse taint aos pods, garantindo que apenas cargas de trabalho específicas sejam agendadas nesses nós. Alternativamente, substitua-o por um taint personalizado adequado às suas necessidades para obter o mesmo efeito.É possível remover o taint depois que os add-ons atenderem aos {{XREF_30}} . No entanto, após a remoção do taint, componentes do sistema ou outras cargas de trabalho poderão ser agendados para nós Lingjun e ocupar recursos de nós GPU de alto custo.
Para obter a lista completa de rótulos que um pool de nós carrega por padrão, consulte a descrição da configuração {{XREF_31}}. Não remova os rótulos padrão.
Procedimento
Na página ACK Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Clique em ... > Create Lingjun Node Pool e siga as instruções na tela para criar o pool de nós Lingjun.
Após a criação do pool de nós, algumas configurações podem ser alteradas editando o pool. Nas tabelas a seguir, Modificável indica se uma configuração pode ser alterada após a criação do pool de nós.
-
Configurações básicas
Configuração
Descrição
Modificável
Node Pool Name
Nome personalizado do pool de nós.
Sim
Region
Por padrão, a região onde o cluster atual reside é selecionada e não pode ser alterada.
Não
Configure Managed Node Pool
Recurso de lista de permissões
Ative o pool de nós gerenciado para usar os recursos automatizados de O&M fornecidos pelo ACK.
Sim
Container Runtime
Apenas containerd é suportado.
Não
-
Lingjun Resources
Configuração
Descrição
Modificável
Lingjun Cluster
Selecione um cluster Lingjun do tipo Lite que esteja na mesma VPC do cluster ACK.
Não
Lingjun Group
Selecione um grupo Lingjun que esteja na mesma VPC do pool de nós Lingjun e que não esteja associado a nenhum pool de nós Lingjun.
Não
Worker RAM Role
Especifique uma função RAM de worker para o pool de nós Lingjun. Após a configuração, novos nós expandidos no grupo Lingjun herdarão automaticamente essa função.
É necessário selecionar primeiro um grupo Lingjun. Apenas tipos de instância Lingjun que usam disco cloud como disco do sistema permitem configurar uma função RAM de worker. Se o grupo Lingjun selecionado não oferecer suporte a esse recurso, esta configuração não será exibida.
Default Role: utiliza a função RAM de worker criada automaticamente pelo ACK, cuja entidade confiável é o Lingjun Intelligent Computing. Se essa função não existir no cluster, ela será criada e vinculada automaticamente a este pool de nós durante a criação.
Custom Role: utiliza uma função RAM especificada. Somente funções RAM cuja política de confiança inclui o Lingjun Intelligent Computing (
eflo-controller.eflo.aliyuncs.com) como serviço confiável podem ser selecionadas. Para mais informações, consulte {{XREF_33}}.
Se o grupo Lingjun selecionado já tiver uma função RAM configurada, esta configuração selecionará automaticamente Custom Role e ficará fixada na função RAM atual do grupo. Não é possível alterá-la ou reverter para Default Role.
ImportanteSe o grupo Lingjun já possuir uma função RAM configurada, a função RAM do pool de nós deve ser consistente com a do grupo Lingjun associado. Caso contrário, a criação do pool de nós Lingjun falhará.
Novos nós expandidos no grupo herdam automaticamente a função RAM do grupo. Os nós existentes no grupo não são afetados.
Após a criação do pool de nós, não modifique a função RAM do grupo Lingjun. Caso contrário, o pool de nós poderá apresentar mau funcionamento.
Não
-
Volumes
A configuração personalizada de disco de dados é um recurso de lista de permissões. Esse recurso monta o diretório de runtime de contêiner em um disco de dados local. Para ativar esse recurso, entre em contato com a equipe do Container Service por meio do seu gerente de atendimento ao cliente (PDSA).
ImportanteDurante uma atualização do pool de nós, se as configurações de armazenamento dos nós forem inconsistentes, cada nó será inicializado separadamente com base em sua configuração real.
Para garantir estabilidade, certifique-se de reservar espaço livre suficiente para o diretório de runtime de contêiner. O armazenamento local apresenta risco de perda de dados. Monte o diretório de runtime de contêiner em um disco do sistema cloud.
-
Advanced Options (Optional)
O diretório de montagem deve estar vazio. Após montar um diretório não vazio, os arquivos originais tornam-se inacessíveis.
Pools de nós Lingjun suportam a montagem do diretório de runtime de contêiner apenas em disco de dados local, não em disco de dados cloud. Se o diretório de runtime de contêiner estiver em um disco local, observe o seguinte comportamento quando um nó Lingjun for colocado offline para manutenção (substituição em standby). Os dados do disco local não são retidos, o que pode causar a exclusão de informações de runtime de contêiner, como kubelet e containerd, e tornar o estado do nó anormal. Para evitar a recuperação manual necessária, monte o diretório de runtime de contêiner em um disco do sistema cloud.
Ao ativar esse recurso, não configure simultaneamente o diretório de runtime de contêiner por meio do recurso Pre-defined Custom Data do ACK ou do recurso de dados personalizados Lingjun ({{XREF_35}}). Caso contrário, o nó pode não funcionar conforme esperado.
service.alibabacloud.com/exclude-nodealibabacloud.com/lingjun-workeralibabacloud.com/lingjun-hpnzonealibabacloud.com/lingjun-zoneidalibabacloud.com/lingjun-network-type: vpdalibabacloud.com/lingjun-machine-typek8s.aliyun.com/exclusive-mode-eni-type: eniOnlyDescrição: Sincroniza diretamente o hostname de um nó Lingjun com seu NodeName.
Exemplo: Se o hostname da instância for
test, o NodeName do nó serátest.
Configuração
Descrição
Modificável
System Disk
Configuração do disco do sistema cloud dos nós no grupo Lingjun atual. Quando um disco do sistema local é usado, a configuração específica não é exibida aqui.
Se você não selecionar Configure local disk mounting for the container runtime directory, o diretório de runtime de contêiner será montado no disco do sistema (disco do sistema local ou disco do sistema cloud) por padrão.
ImportanteQuando os dados de runtime de contêiner são armazenados no disco do sistema, espaço insuficiente pode causar a evicção de pods ou tornar os nós anormais. Para garantir estabilidade, certifique-se de reservar espaço livre suficiente no disco do sistema ou configure um disco de dados dedicado para o runtime de contêiner. Consulte {{XREF_34}} para soluções sobre espaço insuficiente em disco nos nós.
Não aplicável
Data Disk
Discos de dados locais usados pelos nós Lingjun. Após selecionar Configure local disk mounting for the container runtime directory, um disco de dados local aleatório será montado nos diretórios de runtime de contêiner, como
/var/lib/container,/var/lib/containerd,/var/lib/kubelete/var/log/pods.Configure as Initialization Settings: selecione o formato do sistema de arquivos (ext4 ou xfs). Isso só tem efeito em discos locais não formatados.
ImportanteSim
Configuração
Descrição
Modificável
Taints
Adicione taints chave-valor ao nó. Uma chave de taint válida consiste em um prefixo opcional e um nome. Se houver um prefixo, ele será separado do nome por uma barra (/).
Sim
Node Labels
ImportanteAo criar um pool de nós Lingjun, o ACK adiciona automaticamente rótulos ao pool de nós para habilitar o modo ENI exclusiva. Não os remova após a criação.
Não remova os seguintes rótulos padrão de um pool de nós Lingjun:
Adicione rótulos chave-valor ao nó. Uma chave válida consiste em um prefixo opcional e um nome. Se houver um prefixo, o prefixo e o nome são separados por uma barra (/).
Sim
Container Image Acceleration
Este recurso é suportado apenas para runtimes containerd da versão 1.6.34 e posteriores.
Os nós recém-adicionados detectarão automaticamente se uma imagem de contêiner suporta carregamento sob demanda. Em caso afirmativo, o carregamento sob demanda será usado por padrão para acelerar a inicialização do contêiner, reduzindo o tempo de início da aplicação. Para mais informações, consulte {{XREF_36}}.
Sim
Custom Node Name
Recurso de lista de permissões, não aplicável a pools de nós não-Lingjun
Não
Pre-defined Custom Data
Antes de um nó ingressar no cluster, os {{XREF_37}} de pré-personalização especificados serão executados.
Por exemplo, se você especificar os dados de pré-personalização como
touch /tmp/pre-script, o script combinado no nó será executado na seguinte ordem.#!/bin/bash # The input instance pre-customization data is executed here touch /tmp/pre-script # The ACK node initialization script is executed hereSim
User Data
Depois que um nó ingressa no cluster, os {{XREF_38}} da instância especificados serão executados.
Por exemplo, se você especificar os dados do usuário da instância como
touch /tmp/post-script, o script combinado no nó será executado na seguinte ordem.#!/bin/bash # The ACK node initialization script is executed here # The input instance user data is executed here touch /tmp/post-scriptA criação bem-sucedida do cluster ou a expansão de nós não garante que o script de dados do usuário da instância tenha sido executado com êxito. Você pode fazer login no nó e executar
grep cloud-init /var/log/messagespara visualizar os logs de execução.Sim
-
Modo ENI exclusiva do Terway
Os pools de nós Lingjun suportam apenas o modo ENI exclusiva do Terway (suportado pelo Terway desde a v1.14.4). Para acomodar as diferenças de rede subjacentes de diferentes tipos de instância e imagens Lingjun, atualize o Terway para a v1.16.8 ou posterior. Consulte o {{XREF_39}} para atualizar o terway-eniip.
Ao criar um pool de nós Lingjun, o ACK adiciona automaticamente o rótulo k8s.aliyun.com/exclusive-mode-eni-type: eniOnly ao pool de nós para habilitar o modo ENI exclusiva. Não remova este rótulo após a criação. Para mais informações, consulte {{XREF_40}}.
Se um pool de nós Lingjun não tiver esse rótulo, o pool de nós usará o modo de rede ENI compartilhada.
Quando os nós Lingjun usam comunicação de rede VPC no modo ENI compartilhada, podem ocorrer falhas intermitentes de rede nos pods em algumas imagens Lingjun mais antigas. Para restaurar temporariamente seus serviços, recrie os pods. Para resolver permanentemente esse problema, atualize o Terway para a versão mais recente fora do horário de pico e, em seguida, adicione nós Lingjun criando um pool de nós Lingjun no modo ENI exclusiva.
Adicionar nós Lingjun existentes
No console do Container Service, adicione em lote nós Lingjun do grupo Lingjun associado a um pool de nós Lingjun. Use esta operação para adicionar nós do grupo a um cluster ACK como nós workers ou para retornar ao pool nós workers removidos anteriormente. Os nós adicionados passam a ser gerenciados no nível do pool de nós.
A adição de nós Lingjun não substitui o SO original, o disco do sistema ou os discos de dados dos nós, e os dados armazenados são preservados.
Escopo de aplicação
As instâncias de nó a serem adicionadas já devem estar no grupo Lingjun associado a este pool de nós e não devem ter ingressado em outros pools de nós.
O {{XREF_41}} dos nós Lingjun deve ser Using.
Procedimento
Na página ACK Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Na página Node Pools, clique em ⋮ Add Existing Nodes e siga as instruções na tela para concluir as seguintes configurações:
Add Existing Lingjun Node: Selecione as instâncias a serem adicionadas na lista de instâncias. Selecione Show Unavailable Instances para visualizar instâncias indisponíveis.
-
Data Disk: Selecione como montar os discos de dados.
Disponível apenas quando a lista de permissões {{XREF_42}} estiver ativada
-
Configure by Node Pool: Usa a configuração de disco de dados predefinida pelo pool de nós para inicializar e montar os discos de dados.
Se o pool de nós não tiver uma configuração de disco de dados predefinida, a configuração original dos nós será mantida.
-
No Initialization: Não inicializa os discos de dados e mantém a configuração original dos discos de dados dos nós.
ImportanteSe as configurações de armazenamento dos nós forem diferentes, durante uma atualização do pool de nós, o sistema inicializa os discos de dados separadamente com base na configuração de armazenamento real de cada nó, em vez de usar uma configuração unificada.
Ao usar a opção de configuração por pool de nós, o diretório de montagem deve estar vazio. Após montar um diretório não vazio, os arquivos originais tornam-se inacessíveis.
-
Após a adição dos nós, o ACK adiciona automaticamente os seguintes rótulos às instâncias de nó Lingjun. Visualize-os em {{XREF_43}}:
ack.aliyun.com: o ID do ACK managed Pro cluster que gerencia o nó.ack.alibabacloud.com/nodepool-id: o ID do pool de nós Lingjun que gerencia o nó.
Remover nós Lingjun
Quando um nó não for mais necessário, remova-o do pool de nós. A remoção pode afetar seus serviços. Execute esta operação fora do horário de pico.
Observações
-
Drenar nós:
Se existirem pods em um nó, selecione Drain Node e certifique-se de que o cluster tenha recursos suficientes. Os pods serão migrados automaticamente para outros nós.
Se suas aplicações tiverem Pod Disruption Budgets (PDBs) configurados, a drenagem pode falhar, causando a falha da remoção. Trate isso manualmente com antecedência.
Após a drenagem, se suas aplicações não conseguirem iniciar corretamente em outros nós, a tarefa de remoção prosseguirá independentemente disso.
Ao remover nós em estado anormal, não selecione Drain Node. Caso contrário, a remoção pode falhar.
-
Estado do nó após a remoção:
A remoção de um nó Lingjun apenas retira o nó do pool de nós Lingjun. Ela não remove o nó do grupo Lingjun, nem libera ou cancela automaticamente a assinatura do nó.
As instâncias de nó Lingjun adicionadas a um pool de nós não são liberadas quando o cluster ACK ou o pool de nós Lingjun é excluído, nem são automaticamente reduzidas do grupo Lingjun. Preste atenção ao status de faturamento dos nós Lingjun para evitar custos adicionais.
Para realizar mais operações de gerenciamento em nós e grupos, acesse {{XREF_44}}.
A remoção é uma operação assíncrona. Verifique o progresso da remoção na lista de nós.
Procedimento
Na página ACK Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Clique no nome do pool de nós Lingjun desejado e remova os nós na página Nodes.
Remover um único nó: Localize o nó desejado e, na coluna Actions do nó, escolha .
Remover nós em lote: Selecione os nós desejados e clique em Batch Remove na parte inferior da página.
Escolha se deseja Drain Node, leia as observações na página e siga as instruções na tela.
Atualizar a versão do kubelet
As versões do kubelet e do runtime de contêiner dos pools de nós Lingjun podem ser atualizadas. Antes da atualização, execute verificações prévias para identificar riscos que possam afetar o processo. Após iniciar uma atualização, o sistema executa automaticamente as verificações prévias e ignora os nós que falharem nas verificações.
Atualização do kubelet: atualiza o kubelet dos nós no pool de nós para a mesma versão do plano de controle.
Atualização do runtime de contêiner: atualiza o runtime de contêiner dos nós para a versão mais recente.
A atualização está disponível apenas para pools de nós Lingjun que contêm nós.
Na página ACK Clusters, clique no nome do seu cluster. No painel de navegação à esquerda, clique em .
-
Na coluna Actions do pool de nós Lingjun desejado, escolha
Kubelet Update e siga as instruções na tela para concluir as seguintes configurações:-
Informações básicas
Configuração
Descrição
Informações de atualização do kubelet e runtime
Exibe a versão atual e as versões de atualização disponíveis do kubelet e do runtime de contêiner.
Update Nodes
Especifique os nós a serem atualizados (todos os nós ou alguns nós).
Update Method
Uma atualização in-place atualiza os componentes necessários diretamente nos nós originais. O disco do sistema não é substituído, os nós não são reinicializados e os dados nos nós originais não são afetados.
Ignore Warnings
Define se deve prosseguir caso a verificação prévia reporte avisos. Por exemplo, um pod usa um
hostPathapontando para o disco do sistema. -
Batch Update Policy
Configuração
Descrição
Maximum Number of Nodes per Batch
Durante a atualização, os nós são atualizados sequencialmente com base no paralelismo máximo configurado.
Automatic Pause Policy
Política de pausa durante as atualizações de nós.
Interval Between Batches
Quando a política de pausa automática estiver definida como Do Not Pause, escolha se deseja definir um intervalo de tempo entre os lotes de atualização e especifique a duração do intervalo. Valores válidos: 5 a 120 minutos.
-
Clique em Precheck. Se a verificação falhar, solucione os problemas com base nas soluções fornecidas na página e continue após a aprovação na verificação.
-
Clique em Start Update e siga as instruções na tela para concluir a atualização.
Durante a atualização, você pode:
-
Pause: Coloca o pool de nós em um estado intermediário. Evite outras operações no cluster e conclua a atualização prontamente. Atualizações pausadas por mais de sete dias são encerradas automaticamente, e eventos e logs relacionados são limpos.
Não é possível reverter as versões do kubelet ou do runtime de contêiner em nós já atualizados.
Cancel: Cancela a atualização. Após clicar em Cancel, não é possível reverter as versões do kubelet ou do runtime de contêiner em nós já atualizados.
-
Cenários comuns de O&M para nós Lingjun
A seguir estão descritos os procedimentos correspondentes no lado do ACK para nós Lingjun em vários cenários de O&M.
Cenário | Descrição |
Mover um nó Lingjun para um grupo diferente |
|
Reiniciar um nó Lingjun |
|
Reinstalar um nó Lingjun |
|
Manutenção offline do Lingjun (substituição em standby) |
|
Mais operações
Usar o recurso RDMA
Para habilitar a comunicação de rede Remote Direct Memory Access (RDMA) para pods em nós Lingjun, primeiro instale manualmente o add-on {{XREF_57}} na página {{XREF_58}}. Para instruções de uso, consulte {{XREF_59}}.
Usar nós PPU em um pool de nós Lingjun
Para {{XREF_60}}, primeiro instale manualmente os add-ons {{XREF_61}} e {{XREF_62}} na página {{XREF_63}}. Para usar o monitoramento PPU, instale o add-on ppu-device-plugin.
Usar supernós PPU com agendamento consciente de topologia de rede
Para permitir que o agendamento consciente de topologia do ACK agende tarefas para supernós PPU que suportam ICN Link, primeiro instale manualmente o add-on {{XREF_64}} na página {{XREF_65}}. Para instruções de uso, consulte Usar supernós Zhenwu PPU M890 com agendamento consciente de topologia de rede.
FAQ
Por que um nó permanece no estado Not Ready após a manutenção?
Sintoma: Um nó Lingjun é colocado offline para manutenção devido a problemas de hardware, mas após a conclusão da manutenção, o status do nó no cluster ACK ainda é Not Ready.
Causa: Durante a manutenção offline do nó Lingjun, é realizada a substituição da máquina. Os dados do disco local não são retidos, o que pode causar a exclusão de informações de runtime de contêiner, como kubelet e containerd, e tornar o estado do nó anormal.
Solução: Após a conclusão da manutenção, você deve remover manualmente o nó do pool de nós e readicioná-lo ao pool de nós Lingjun por meio de {{XREF_66}}.