Resolva problemas de conexão, atualização e GPU em clusters ACK Edge.
Diferença entre nós na nuvem e nós de borda
O ACK Edge utiliza o rótulo alibabacloud.com/is-edge-worker para identificar nós de borda.
Ao adicionar um nó a um pool de nós da nuvem ou de borda, o sistema inclui automaticamente o rótulo is-edge-worker. Se o valor de is-edge-worker for true, trata-se de um nó de borda. Caso seja false, o nó reside na nuvem.
Adicionar nós de borda via Express Connect
Para adicionar um nó de borda a um cluster ACK Edge pelo Express Connect, atenda aos requisitos abaixo. Consulte Configurações especiais para clusters ACK Edge em cenários de Express Connect.
-
Ao criar um pool de nós de borda, selecione Dedicated como tipo de pool. Em seguida, siga as instruções em Adicionar um nó de borda para gerar o script de conexão do nó.
Consulte Gerenciar pools de nós de borda.
NotaSe o seu cluster ACK Edge estiver na versão 1,22 ou posterior, não será possível usar o parâmetro
inDedicatedNetworkno script de conexão para adicionar nós via Express Connect. Caso seu cluster esteja em uma versão anterior à 1,22, atualize-o. Em cenários de linha dedicada, a integração do nó interage com serviços em nuvem por endpoints internos. Garanta a conectividade de rede com os serviços necessários, como OSS, Container Registry e Server Load Balancer (SLB).
Adicionar nós acelerados por GPU
Instale o driver da GPU antes de adicionar o nó.
-
Defina o parâmetro
gpuVersionno script de conexão do nó para corresponder ao modelo da sua GPU.Arquitetura do SO
Modelo de GPU
Versão do cluster ACK Edge
AMD64/x86_64
Nvidia_Tesla_T4
≥1.16.9-aliyunedge.1
AMD64/x86_64
Nvidia_Tesla_P4
≥1.16.9-aliyunedge.1
AMD64/x86_64
Nvidia_Tesla_P100
≥1.16.9-aliyunedge.1
AMD64/x86_64
Nvidia_Tesla_V100
≥1.18.8-aliyunedge.1
AMD64/x86_64
Nvidia_Tesla_A10
≥1.20.11-aliyunedge.1
AMD64/x86_64
Nvidia_L40
≥1.26.3-aliyun.1
No arquivo de configuração do nó, defina o campo
gpuVersioncom o modelo da sua GPU, por exemplo,Nvidia_Tesla_T4:{ "gpuVersion": "Nvidia_Tesla_T4", "enableIptables": true, "quiet": true, "manageRuntime": true, "allowedClusterAddons": [ "kube-proxy", "flannel", "coredns" ] } Após a configuração, a ferramenta de conexão instala automaticamente o nvidia-containerd-runtime. Consulte NVIDIA Container Runtime.
Solucionar falhas no script de conexão do nó
Caso o script falhe, use a tabela a seguir para solucionar o problema. Se a questão não estiver listada, colete as informações de diagnóstico do nó e envie um ticket. Consulte Como coletar informações de diagnóstico de um nó em um cluster ACK Edge.
|
Mensagem de erro |
Causa |
Solução |
|
The os XXX unsupport |
O sistema operacional do nó de borda não é suportado. |
Para verificar os sistemas operacionais suportados, consulte Adicionar um nó de borda. |
|
invalid nodeName |
O nome do nó é inválido. |
|
|
Node route overlaps with service cidr |
A tabela de rotas do nó entra em conflito com o bloco CIDR de pod ou serviço configurado durante a criação do cluster. |
Recrie o cluster. Certifique-se de que os blocos CIDR de pod e serviço não entrem em conflito com o endereço do NameServer ou com a tabela de rotas do nó de borda. |
|
response error msg: TOKEN_EXPIRED |
O token de conexão expirou. |
|
|
A node named XXX already exists in the cluster |
Já existe um nó com o mesmo nome no cluster. |
Remova o nó com o mesmo nome do cluster. |
|
error run phase join-node: failed to get cluster info: failed to get cluster-info configmap, Get "https://xx.xxx.xx.xx:6443/api/v1/namespaces/kube-public/configmaps/cluster-info": dial tcp xx.xxx.xx.xx:6443: i/o timeout |
Falha ao obter o ConfigMap cluster-info. |
Para adicionar nós de borda, o edgeadm acessa o servidor de API neste endereço. Verifique se as regras da lista de controle de acesso (ACL) da instância SLB do servidor de API restringem esse acesso. |
|
error run phase join-node: Install edge-hub failed: Copy file /tmp/edge-hub to /usr/bin/edge-hub fail: open /usr/bin/edge-hub: text file busy | 40009 | 40009 |
O binário edge-hub já existe no nó. |
Execute |
|
error run phase post-check: timed out waiting for the condition |
Um componente do sistema falhou ao iniciar. |
|
Falhas na atualização de nós de borda
Ao atualizar um pool de nós de borda, caso a mensagem This node has been upgraded successfully não seja retornada, use a tabela abaixo para solucionar o problema.
|
Mensagem de erro |
Causa |
Solução |
|
edgeadm version xxxx does not match cluster version |
A versão da ferramenta de atualização não corresponde à versão do cluster. |
|
|
node has already been upgraded to xxx |
O nó já está na versão de destino. |
Se alguns componentes do nó não foram atualizados, salve os logs e envie um ticket. |
|
kubelet target version xxxx does not match cluster version xxxx |
A versão do kubelet especificada para a atualização não corresponde à versão do plano de controle do cluster. |
|
|
Parameter currentVersion cann't null |
Uma versão desatualizada do edgeadm foi usada. |
|
|
upgrade kubelet failed at phase install, recover to previous state. error run phase upgrade: xxxx |
A atualização falhou e o sistema a reverteu automaticamente. O status do nó permanece inalterado. |
Salve os logs e envie um ticket. |
|
upgrade kubelet failed at phase install, recover to previous state recover kubelet failed, err: xxx error run phase upgrade: xxxx |
Tanto a atualização quanto a reversão automática falharam. O status do nó foi afetado. |
Salve os logs e envie um ticket. |
Coletar informações de diagnóstico de um nó em um cluster ACK Edge
Se um nó no seu cluster ACK Edge apresentar problemas, siga estas etapas para coletar as informações de diagnóstico.
Faça login no nó afetado no cluster ACK Edge.
-
Baixe o script de diagnóstico.
curl -o /usr/local/bin/diagnose_edge_node.sh https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/diagnose/diagnose_k8s.sh -
Torne o script de diagnóstico executável.
chmod u+x /usr/local/bin/diagnose_edge_node.sh -
Acesse o diretório do script:
cd /usr/local/bin/ -
Execute o script de diagnóstico.
./diagnose_edge_node.shExemplo de saída. Cada execução gera um arquivo de diagnóstico com nome exclusivo, como
diagnose_1578310147.tar.gz....... + echo 'please get diagnose_1578310147.tar.gz for diagnostics' please get diagnose_1578310147.tar.gz for diagnostics + echo 'Please submit diagnose_1578310147.tar.gz to technical support' Please submit diagnose_1578310147.tar.gz to technical support Execute
llpara verificar se o arquivodiagnose_1578310147.tar.gzexiste.