Resuelva problemas de conexión, actualización y GPU en clústeres de ACK Edge cluster.
Diferencias entre nodos en la nube y nodos perimetrales
ACK Edge utiliza la etiqueta alibabacloud.com/is-edge-worker para identificar los nodos perimetrales.
Al agregar un nodo a un node pool en la nube o a un node pool perimetral, se añade automáticamente la etiqueta is-edge-worker. Si el valor de is-edge-worker es true, el nodo es perimetral. Si el valor es false, el nodo está en la nube.
Agregar nodos perimetrales a través de Express Connect
Para agregar un nodo perimetral a un ACK Edge cluster mediante Express Connect, debe cumplir con los siguientes requisitos. Consulte Special configurations for ACK Edge clusters in Express Connect scenarios.
-
Al crear un node pool perimetral, seleccione Dedicated como tipo de node pool. A continuación, siga las instrucciones de Add an edge node para generar un script de conexión de nodos.
Consulte Manage edge node pools.
NotaSi su ACK Edge cluster tiene la versión 1.22 o posterior, no puede usar el parámetro
inDedicatedNetworken el script de conexión de nodos para agregar nodos a través de Express Connect. Si su clúster tiene una versión anterior a la 1.22, actualícelo. En un escenario de línea dedicada, la incorporación de nodos interactúa con servicios en la nube a través de endpoints internos. Asegúrese de que exista conectividad de red hacia los servicios obligatorios, como OSS, Container Registry y Server Load Balancer (SLB).
Agregar nodos acelerados por GPU
Instale el controlador de GPU antes de agregar el nodo.
Consulte NVIDIA driver versions supported by ACK.
-
Configure el parámetro
gpuVersionen el script de conexión de nodos para que coincida con su modelo de GPU.Arquitectura del sistema operativo
Modelo de GPU
Versión del clúster 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
En el archivo de configuración del nodo, establezca el campo
gpuVersioncon su modelo de GPU, por ejemploNvidia_Tesla_T4:{ "gpuVersion": "Nvidia_Tesla_T4", "enableIptables": true, "quiet": true, "manageRuntime": true, "allowedClusterAddons": [ "kube-proxy", "flannel", "coredns" ] } Después de la configuración, la herramienta de conexión instala automáticamente nvidia-containerd-runtime. Consulte NVIDIA Container Runtime.
Solución de problemas por fallos en el script de conexión de nodos
Si el script falla, utilice la siguiente tabla para solucionar el problema. Si el inconveniente no aparece en la lista, recopile la información de diagnóstico del nodo y envíe un ticket. Consulte How to collect diagnostic information for a node in an ACK Edge cluster.
|
Mensaje de error |
Causa |
Solución |
|
The os XXX unsupport |
El sistema operativo del nodo perimetral no es compatible. |
Para consultar los sistemas operativos compatibles, vea Add an edge node. |
|
invalid nodeName |
El nombre del nodo no es válido. |
|
|
Node route overlaps with service cidr |
La tabla de rutas del nodo entra en conflicto con el bloque CIDR de pods o servicios configurado durante la creación del clúster. |
Vuelva a crear el clúster. Asegúrese de que los bloques CIDR de pods y servicios no entren en conflicto con la dirección de NameServer ni con la tabla de rutas del nodo perimetral. |
|
response error msg: TOKEN_EXPIRED |
El token de conexión ha caducado. |
|
|
A node named XXX already exists in the cluster |
Ya existe un nodo con el mismo nombre en el clúster. |
Elimine el nodo con el mismo nombre del clúster. |
|
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 |
No se pudo obtener el ConfigMap cluster-info. |
Para agregar nodos perimetrales, edgeadm accede al servidor API en esta dirección. Compruebe si las reglas de la lista de control de acceso (ACL) de la instancia SLB del servidor API restringen este acceso. |
|
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 |
El binario edge-hub ya existe en el nodo. |
Ejecute |
|
error run phase post-check: timed out waiting for the condition |
Un componente del sistema falló al iniciarse. |
|
Fallos en la actualización de nodos perimetrales
Cuando upgrade an edge node pool, si no se devuelve el mensaje This node has been upgraded successfully, utilice la siguiente tabla para solucionar el problema.
|
Mensaje de error |
Causa |
Solución |
|
edgeadm version xxxx does not match cluster version |
La versión de la herramienta de actualización no coincide con la versión del clúster. |
|
|
node has already been upgraded to xxx |
El nodo ya se encuentra en la versión objetivo. |
Si algunos componentes del nodo no se actualizaron, guarde los registros y envíe un ticket. |
|
kubelet target version xxxx does not match cluster version xxxx |
La versión de kubelet especificada para la actualización no coincide con la versión del plano de control del clúster. |
|
|
Parameter currentVersion cann't null |
Se utilizó una versión obsoleta de edgeadm. |
|
|
upgrade kubelet failed at phase install, recover to previous state. error run phase upgrade: xxxx |
La actualización falló y se revirtió automáticamente. El estado del nodo no se vio afectado. |
Guarde los registros y envíe un ticket. |
|
upgrade kubelet failed at phase install, recover to previous state recover kubelet failed, err: xxx error run phase upgrade: xxxx |
Tanto la actualización como la reversión automática fallaron. El estado del nodo se vio afectado. |
Guarde los registros y envíe un ticket. |
Recopilación de información de diagnóstico para un nodo en un clúster ACK Edge
Si un nodo en su ACK Edge cluster presenta un problema, siga estos pasos para recopilar su información de diagnóstico.
Inicie sesión en el nodo afectado dentro del ACK Edge cluster.
-
Descargue el 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 -
Otorgue permisos de ejecución al script de diagnóstico.
chmod u+x /usr/local/bin/diagnose_edge_node.sh -
Cambie al directorio del script:
cd /usr/local/bin/ -
Ejecute el script de diagnóstico.
./diagnose_edge_node.shSalida de ejemplo. Cada ejecución genera un archivo de diagnóstico con un nombre único, 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 Ejecute
llpara verificar que el archivodiagnose_1578310147.tar.gzexista.