Solución de problemas comunes de Azure Linux Container Host para AKS
En este artículo se proporcionan pasos de solución de problemas para algunos de los problemas que se notifican habitualmente que puede experimentar al usar hosts de contenedor linux de Azure en Azure Kubernetes Service (AKS). Para 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. Además, lea 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 en el que está intentando resolver podría ser uno en el que ya estamos trabajando.
Requisitos previos
- CLI de Azure, versión 2.31 o posterior. Si la CLI de Azure ya está instalada, puede encontrar el número de versión ejecutando
az --version
.
Acerca del host de contenedor de Linux en Azure para AKS
Azure Linux es una distribución de Linux de código abierto creada por Microsoft. Como sistema operativo ligero, Azure Linux tiene las siguientes características:
- Contiene solo los paquetes necesarios para ejecutar cargas de trabajo de contenedor.
- Somete a pruebas de validación de Azure
- Es compatible con agentes de Azure
Azure Linux Container Host for AKS es una imagen de sistema operativo para AKS que está optimizada para ejecutar cargas de trabajo de contenedor. Microsoft mantiene y se basa en Azure Linux. Proporciona confiabilidad y coherencia desde la nube hasta el 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 siguientes procesos:
- Implemente grupos de nodos de Linux de Azure en un nuevo clúster.
- Agregue grupos de nodos de Linux de Azure a los clústeres de Ubuntu existentes.
- Migre los nodos de Ubuntu a los nodos de Linux de Azure.
Para más información sobre Azure Linux, consulte el repositorio de GitHub de Azure Linux .
Lista de comprobación de 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 estado del proceso (ps
), se asemejan a los comandos 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 ubuntu | Comando de Azure Linux 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 de paquetes 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 Linux de Azure
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 experimenta, 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: Descripción de la diferencia en las rutas de acceso de archivos de certificado
Azure Linux (y otras distribuciones rpm) almacenan certificados de forma diferente de 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 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 funcionar en hosts ubuntu y Linux de 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 indique 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 versión preliminar 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. Esta información de contacto puede cambiar sin previo aviso. 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.