Résolvez les problèmes de connexion, de mise à niveau et de GPU des nœuds de périphérie dans les clusters ACK Edge.
Distinction entre les nœuds cloud et les nœuds de périphérie
ACK Edge utilise le libellé alibabacloud.com/is-edge-worker pour identifier les nœuds de périphérie.
Lorsque vous ajoutez un nœud à un pool de nœuds cloud ou à un pool de nœuds de périphérie, le système ajoute automatiquement le libellé is-edge-worker. Si la valeur de is-edge-worker est true, le nœud est un nœud de périphérie. Si la valeur est false, le nœud est un nœud cloud.
Ajouter des nœuds de périphérie via Express Connect
Pour ajouter un nœud de périphérie à un cluster ACK Edge via Express Connect, respectez les exigences suivantes. Consultez la rubrique Configurations spéciales pour les clusters ACK Edge dans les scénarios Express Connect.
-
Lors de la création d'un pool de nœuds de périphérie, sélectionnez Dedicated comme type de pool. Ensuite, suivez les instructions de la rubrique Ajouter un nœud de périphérie pour générer un script de connexion de nœud.
Consultez la rubrique Gérer les pools de nœuds de périphérie.
RemarqueSi votre cluster ACK Edge est en version 1,22 ou ultérieure, vous ne pouvez pas utiliser le paramètre
inDedicatedNetworkdans le script de connexion de nœud pour ajouter des nœuds via Express Connect. Si votre cluster est antérieur à la version 1,22, mettez-le à niveau. Dans un scénario de ligne dédiée, l'intégration des nœuds interagit avec les services cloud via des endpoints internes. Assurez-vous que la connectivité réseau vers les services requis (tels qu'OSS, Container Registry et Server Load Balancer (SLB)) est établie.
Ajouter des nœuds accélérés par GPU
Installez le pilote GPU avant d'ajouter le nœud.
Consultez la rubrique Versions des pilotes NVIDIA prises en charge par ACK.
-
Définissez le paramètre
gpuVersiondans le script de connexion de nœud afin qu'il corresponde à votre modèle de GPU.Architecture du système d'exploitation
Modèle de GPU
Version du 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
Dans le fichier de configuration du nœud, définissez le champ
gpuVersionsur votre modèle de GPU, par exempleNvidia_Tesla_T4:{ "gpuVersion": "Nvidia_Tesla_T4", "enableIptables": true, "quiet": true, "manageRuntime": true, "allowedClusterAddons": [ "kube-proxy", "flannel", "coredns" ] } Après la configuration, l'outil de connexion installe automatiquement nvidia-containerd-runtime. Consultez la page NVIDIA Container Runtime.
Résoudre les échecs du script de connexion de nœud
En cas d'échec du script, utilisez le tableau suivant pour le dépannage. Si le problème n'est pas répertorié, collectez les informations de diagnostic du nœud et ouvrez un ticket. Consultez la rubrique Comment collecter des informations de diagnostic pour un nœud dans un cluster ACK Edge.
|
Message d'erreur |
Cause |
Solution |
|
The os XXX unsupport |
Le système d'exploitation du nœud de périphérie n'est pas pris en charge. |
Pour connaître les systèmes d'exploitation pris en charge, consultez la rubrique Ajouter un nœud de périphérie. |
|
invalid nodeName |
Le nom du nœud n'est pas valide. |
|
|
Node route overlaps with service cidr |
La table de routage du nœud entre en conflit avec le bloc CIDR de pod ou de service configuré lors de la création du cluster. |
Recréez le cluster. Assurez-vous que les blocs CIDR de pod et de service n'entrent pas en conflit avec l'adresse NameServer ou la table de routage du nœud de périphérie. |
|
response error msg: TOKEN_EXPIRED |
Le jeton de connexion a expiré. |
|
|
A node named XXX already exists in the cluster |
Un nœud portant le même nom existe déjà dans le cluster. |
Supprimez du cluster le nœud portant le même nom. |
|
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 |
Échec de l'obtention de ConfigMap cluster-info. |
Pour ajouter des nœuds de périphérie, edgeadm accède au serveur API à cette adresse. Vérifiez si les règles de liste de contrôle d'accès (ACL) de l'instance SLB du serveur API restreignent cet accès. |
|
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 |
Le binaire edge-hub existe déjà sur le nœud. |
Exécutez |
|
error run phase post-check: timed out waiting for the condition |
Un composant système n'a pas pu démarrer. |
|
Échecs de mise à niveau des nœuds de périphérie
Lorsque vous mettez à niveau un pool de nœuds de périphérie, si le message This node has been upgraded successfully n'est pas renvoyé, utilisez le tableau suivant pour le dépannage.
|
Message d'erreur |
Cause |
Solution |
|
edgeadm version xxxx does not match cluster version |
La version de l'outil de mise à niveau ne correspond pas à la version du cluster. |
|
|
node has already been upgraded to xxx |
Le nœud est déjà à la version cible. |
Si certains composants du nœud n'ont pas été mis à niveau, enregistrez les journaux et ouvrez un ticket. |
|
kubelet target version xxxx does not match cluster version xxxx |
La version kubelet spécifiée pour la mise à niveau ne correspond pas à la version du plan de contrôle du cluster. |
|
|
Parameter currentVersion cann't null |
Une version obsolète de edgeadm a été utilisée. |
|
|
upgrade kubelet failed at phase install, recover to previous state. error run phase upgrade: xxxx |
La mise à niveau a échoué et un retour automatique à l'état précédent a été effectué. L'état du nœud n'est pas affecté. |
Enregistrez les journaux et ouvrez un ticket. |
|
upgrade kubelet failed at phase install, recover to previous state recover kubelet failed, err: xxx error run phase upgrade: xxxx |
La mise à niveau et le retour automatique ont tous deux échoué. L'état du nœud est affecté. |
Enregistrez les journaux et ouvrez un ticket. |
Collecter des informations de diagnostic pour un nœud dans un cluster ACK Edge
Si un nœud de votre cluster ACK Edge rencontre un problème, suivez ces étapes pour collecter ses informations de diagnostic.
Connectez-vous au nœud concerné dans le cluster ACK Edge.
-
Téléchargez le script de diagnostic.
curl -o /usr/local/bin/diagnose_edge_node.sh https://aliacs-k8s-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/public/diagnose/diagnose_k8s.sh -
Rendez le script de diagnostic exécutable.
chmod u+x /usr/local/bin/diagnose_edge_node.sh -
Accédez au répertoire du script :
cd /usr/local/bin/ -
Exécutez le script de diagnostic.
./diagnose_edge_node.shExemple de sortie. Chaque exécution génère un fichier de diagnostic avec un nom unique, tel que
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 Exécutez
llpour vérifier que le fichierdiagnose_1578310147.tar.gzexiste.