Solución de problemas comunes de Azure Linux Container Host para AKS
En este artículo se proporcionan pasos para solucionar algunos de los problemas notificados con frecuencia que puede experimentar al usar hosts de contenedor de Linux de Azure en Azure Kubernetes Service (AKS). Para obtener más información sobre cómo empezar a usar hosts de contenedor linux de Azure en AKS, consulte Uso de Azure Linux con AKS.
Antes de empezar
Lea la guía oficial para solucionar problemas de clústeres de Kubernetes. Lea también la guía del ingeniero de Microsoft para solucionar problemas de Kubernetes. Esta guía contiene comandos para solucionar problemas de pods, nodos, clústeres y otras características.
Por último, revise la lista de limitaciones conocidas en Azure Linux. Un problema que está intentando resolver puede ser uno en el que ya estamos trabajando.
Requisitos previos
-
CLI de Azure, versión 2.31 o una versión posterior. Si la CLI de Azure ya está instalada, puede encontrar el número de versión ejecutando
az --version
.
Acerca de Azure Linux Container Host para AKS
Azure Linux es una distribución de Linux de código abierto que Microsoft creó. Como sistema operativo ligero, Azure Linux tiene las siguientes características:
- Contiene solo los paquetes necesarios para ejecutar cargas de trabajo de contenedor
- Se somete a pruebas de validación de Azure
- Es compatible con los agentes de Azure
Azure Linux Container Host para AKS es una imagen de sistema operativo para AKS optimizada para ejecutar cargas de trabajo de contenedor. Microsoft lo mantiene y se basa en Azure Linux. Proporciona confiabilidad y coherencia de la nube al perímetro en los productos AKS, AKS en Azure Stack HCI y Azure Arc . Puede usar hosts de contenedor de Linux de Azure para realizar los procesos siguientes:
- Implementación de grupos de nodos linux de Azure en un nuevo clúster.
- Agregue grupos de nodos linux de Azure a los clústeres de Ubuntu existentes.
- Migre los nodos de Ubuntu a nodos linux de Azure.
Para obtener más información sobre Azure Linux, consulte el repositorio de GitHub linux de Azure .
Lista de comprobación para la solución de problemas
Paso 1: Revisión de comandos equivalentes en Ubuntu y Azure Linux
La mayoría de los comandos del sistema operativo Linux de Azure, como el comando de estado de proceso (ps
), son similares a los que se usan en Ubuntu. Sin embargo, la administración de paquetes se realiza mediante el comando Tiny DNF (tdnf
). En la tabla siguiente se enumeran algunos comandos comunes en Ubuntu y sus equivalentes en Azure Linux.
Comando de Ubuntu | Comando de Linux de Azure sugerido |
---|---|
apt -- list installed |
rpm -qa |
apt autoclean |
tdnf clean all |
apt autoremove |
dnf autoremove |
apt dist-upgrade |
dnf distro-sync |
apt download |
tdnf download |
apt install |
tdnf install |
apt install --reinstall |
tdnf reinstall |
apt list - upgradable |
dnf list updates |
apt remove |
tdnf remove |
apt search |
tdnf search |
apt show |
tdnf list |
apt upgrade |
tdnf upgrade |
apt cache dump |
tdnf list available |
apt-cache dumpavail |
tdnf list available |
apt-cache policy |
tdnf list |
apt-cache rdepends |
dnf repoquery -- alldeps - whatrequires |
apt-cache search |
tdnf search |
apt-cache show |
tdnf info |
apt-cache stats |
(sin equivalente exacto; lea el archivo Packages en la carpeta /var/lib/rpm ) |
apt-config shell |
dnf shell |
apt-file list |
dnf repoquery -l |
apt-file search |
tdnf provides |
apt-get autoremove |
dnf autoremove |
apt-get install |
tdnf install |
apt-get remove |
tdnf remove |
apt-get update |
dnf clean expire-cache dnf check-update |
apt-mark auto |
tdnf install dnf mark remove |
apt-mark manual |
dnf mark install |
apt-mark showmanual |
dnf history userinstalled |
Paso 2: Comprobación de la versión de Azure Linux
Asegúrese de que usa la versión correcta de Azure Linux. La versión compatible de Azure Linux para su consumo es Azure Linux 2.0. En la salida del siguiente comando az aks nodepool list , la osSKU
propiedad debe leer AzureLinux
.
az aks nodepool list --resource-group <resource-group-name> --cluster-name <aks-cluster-name>
Aunque es posible que este comando no solucione el problema que está experimentando, el control de versiones es un problema común para los usuarios que informan de que los agentes o extensiones no funcionan correctamente en Azure Linux.
Paso 3: Comprender la diferencia en las rutas de acceso del archivo de certificado
Azure Linux (y otras distribuciones rpm) almacenan certificados de forma diferente a Ubuntu.
En Azure Linux, la ruta de acceso /etc/ssl/certs es un vínculo simbólico a /etc/pki/tls/certs. Si un contenedor espera asignar /etc/ssl/certs para usar el archivo de certificado ca-certificates.crt en Azure Linux, el contenedor obtiene en su lugar un vínculo simbólico que apunta a ninguna parte. Este comportamiento provoca errores relacionados con el certificado en el contenedor. El contenedor también tiene que asignar /etc/pki para que el contenedor pueda seguir la cadena de vínculos simbólicos. Si el contenedor tiene que trabajar en hosts Linux de Ubuntu y Azure, puede asignar /etc/pki mediante el DirectoryOrCreate
tipo de un volumen hostPath.
Paso 4: Actualización de la CLI de Azure y la extensión de versión preliminar de AKS
Si intenta implementar un clúster de AKS de Linux de Azure mediante la CLI de Azure, es posible que reciba un mensaje de error que indica que la AzureLinux
opción no es compatible con el OSSku
parámetro . Este mensaje significa que podría usar una versión obsoleta de la CLI de Azure o la extensión de vista previa de AKS. Para corregir este problema, realice una o ambas de las dos acciones siguientes:
Si la CLI de Azure no está actualizada, instale la versión más reciente. Para actualizar la CLI de Azure, ejecute el siguiente comando az upgrade :
az upgrade
Si tiene instalada una versión anterior de la
aks-preview
extensión, instale una versión más reciente para que elOSSku
parámetro tenga un valor deAzureLinux
. Para actualizar la extensión, ejecute el siguiente comando az extension update :az extension update --name aks-preview
Aviso de declinación de responsabilidades sobre la información de terceros
Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.
Aviso de declinación de responsabilidades sobre la información de contacto de terceros
Microsoft proporciona información de contacto de otros proveedores para ayudarle a encontrar información adicional sobre este tema. Dicha información de contacto puede cambiar sin notificación previa. Microsoft no garantiza la precisión de esta información de contacto de terceros.
Ponte en contacto con nosotros para obtener ayuda
Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.