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 el OSSku parámetro tenga un valor de AzureLinux. 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.