Imágenes de nodo

En esta página se describen las imágenes de nodo disponibles para nodos de Google Kubernetes Engine. Para aprender a seleccionar una imagen de nodo, consulta Especificar una imagen de nodo.

Descripción general

Cuando creas un grupo de nodos o un clúster de GKE, puedes elegir la imagen de sistema operativo que se ejecuta en cada nodo. También puedes actualizar un clúster existente para que use otro tipo de imagen de nodo.

Imágenes de nodos disponibles

GKE ofrece las siguientes opciones de imágenes para tu clúster:

Container-Optimized OS

La imagen del nodo Container-Optimized OS está basada en una versión reciente del kernel de Linux y está optimizada para mejorar la seguridad del nodo. Cuenta con el respaldo de un equipo de Google que puede aplicar parches rápidamente para mejorar la seguridad y para realizar iteraciones en las funciones. La imagen Container-Optimized OS ofrece un mejor nivel de asistencia, seguridad y estabilidad que otras.

Container-Optimized OS con containerd (cos_containerd)

Containerd es una pieza fundamental y el componente más importante del entorno de ejecución de Docker. cos_containerd es una variante de la imagen de Container-Optimized OS que tiene containerd como principal entorno de ejecución de los contenedores integrado directamente en Kubernetes.

Para realizar depuraciones o solucionar problemas en el nodo, puedes interactuar con containerd con la herramienta de línea de comandos portátil compilada para entornos de ejecución del contenedor de Kubernetes: crictl. crictl admite funciones comunes para ver imágenes y contenedores, leer registros y ejecutar comandos en los contenedores. Consulta la guía del usuario de crictl para ver el conjunto completo de características admitidas y la información de uso.

cos_containerd requiere Kubernetes desde la versión 1.11.0 en adelante.

Para obtener más información, visita Usar Container-Optimized OS con containerd.

Ubuntu

La imagen del nodo de Ubuntu se validó con los requisitos de la imagen del nodo de GKE. Deberías usar la imagen del nodo de Ubuntu si tus nodos requieren compatibilidad con paquetes XFS, CephFS o Debian.

Comparación entre las imágenes de nodo

En las siguientes secciones, se comparan los aspectos operativos de Container-Optimized OS y las imágenes del nodo de Ubuntu, incluido lo siguiente:

  • Reparación y actualización automática
  • Administración del paquete de software
  • Inicialización del sistema
  • Recopilación de registros
  • Diseño del sistema de archivos
  • Compatibilidad con controladores de almacenamiento

Reparación y actualización automática

Container-Optimized OS admite las funciones de reparación y actualización automática del nodo de GKE.

La imagen del nodo de Ubuntu no admite la reparación ni la actualización automáticas, pero estas funciones se encuentran en desarrollo.

Administrador del paquete de software

Las imágenes de nodo cos y cos_containerd usan un sistema de archivos raíz mínimo con compatibilidad integrada para el entorno de ejecución del contenedor de Docker (containerd), que también sirve como el administrador del paquete de software para realizar instalaciones en el host. La imagen de Ubuntu usa el administrador del paquete Aptitude.

Administrar software en Container-Optimized OS

No puedes instalar paquetes de software en un host con la imagen de Container-Optimized OS (es decir, fuera de los contenedores) ni actualizar paquetes de software de manera independiente. Sin embargo, la imagen del nodo de Container-Optimized OS incluye algunas herramientas de depuración comunes en la imagen y proporciona un wrapper de toolbox para ejecutar las herramientas de depuración que prefieras. A continuación, se muestran algunos ejemplos:

sudo toolbox ping www.google.com
sudo toolbox apt-get install psmisc
sudo toolbox pstree -p

Para obtener más ejemplos sobre cómo usar el wrapper para instalar software adicional en un host con la imagen del nodo cos, consulta las guías prácticas de Container-Optimized OS.

Administrar software en Ubuntu

La imagen de Ubuntu tiene preinstalado el administrador del paquete Aptitude. Puedes usar el comando apt-get para instalar paquetes en estas imágenes. Por ejemplo, para instalar paquetes de ceph:

sudo apt-get update
sudo apt-get install ceph

Inicialización del sistema

Las imágenes del nodo de Container-Optimized OS y de Ubuntu usan systemd para administrar los recursos y servicios del sistema durante el proceso de inicialización.

Ambas imágenes de nodo usan archivos del sistema systemd para definir services en el nodo y systemd.targets a fin de agrupar los objetivos de inicio mediante dependencias.

Recopilación de registros

Las imágenes de nodo de Container-Optimized OS y Ubuntu usan systemd-journald para recopilar registros del sistema.

Ver registros en Container-Optimized OS y Ubuntu

Para ver registros en un nodo con las imágenes de nodo de Container-Optimized OS o Ubuntu, debes usar el comando journalctl. Por ejemplo, para ver registros del daemon de Docker:

sudo journalctl -u docker

Para ver registros de kubelet, ejecuta el siguiente comando:

sudo journalctl -u kubelet

Diseño del sistema de archivos

La imagen del nodo de Ubuntu usa el diseño estándar del sistema de archivos de Linux.

El diseño del sistema de archivos de la imagen del nodo de Container-Optimized OS está optimizado para mejorar la seguridad del nodo. El espacio del disco de arranque se divide en tres tipos de particiones:

  • Partición raíz, que es de solo lectura
  • Particiones con estado, en las que se puede escribir y tienen estado
  • Particiones sin estado, en las que se puede escribir, pero el contenido se pierde cuando el sistema se reinicia

Cuando uses Container-Optimized OS, ten en cuenta las particiones si ejecutas servicios que necesiten un diseño especial del sistema de archivos aparte de los contenedores.

Trabaja con el sistema de archivos de Container-Optimized OS

A continuación, se muestra una lista de las rutas del sistema de archivos de las imágenes de nodo de Container-Optimized OS, junto con sus propiedades y uso recomendado:

Ruta Propiedades Motivo
/
  • solo lectura
  • ejecutable
El sistema de archivos raíz es de solo lectura a fin de mantener su integridad. El kernel verifica la integridad del sistema de archivos raíz durante el arranque y, en caso de encontrar errores, no inicia el sistema.
/home
/var
  • admite escritura
  • no ejecutable
  • con estado
El objetivo de estas rutas es almacenar los datos que se mantienen durante toda la vida útil del disco de arranque. Se activan en /mnt/stateful_partition.
/var/lib/google
/var/lib/cloud
/var/lib/docker
/var/lib/kubelet
/var/lib/toolbox
  • admite escritura
  • ejecutable
  • con estado
Estas rutas son directorios funcionales para los paquetes de Compute Engine (por ejemplo, el servicio de administración de cuentas), cloud-init, Docker, Kubelet y la Caja de herramientas, respectivamente.
/etc
  • admite escritura
  • no ejecutable
  • sin estado
  • tmpfs
Por lo general, tu configuración se encuentra en /etc (por ejemplo, servicios de systemd definidos mediante cloud-init). Se recomienda capturar el estado deseado de tus instancias en cloud-init, mientras se aplica cloud-init cuando se crea una instancia o se reinicia.
/tmp
  • admite escritura
  • no ejecutable
  • sin estado
  • tmpfs
Por lo general, /tmp se usa como un espacio temporal y no debería almacenar datos persistentes.
/mnt/disks
  • admite escritura
  • ejecutable
  • sin estado
  • tmpfs
Puedes activar los discos persistentes en los directorios de /mnt/disks.

Compatibilidad con controladores de almacenamiento

Todas las imágenes de nodo son distintas en cuanto a los tipos de complementos de almacenamiento que admiten. Se aplican las siguientes condiciones cuando se describe la compatibilidad de la imagen de un nodo para un controlador de almacenamiento en particular:

  • Sí: Completamente compatible y probado: este complemento de almacenamiento está completamente probado y es compatible con la imagen de nodo especificada.
  • Sí: Pruebas limitadas: este complemento de almacenamiento funciona con la imagen de nodo especificada, pero se probó de forma limitada; es posible que notes un comportamiento no esperado. En Container-Optimized OS, en algún momento se completarán las pruebas de los complementos y serán totalmente compatibles.
  • No compatible: este complemento de almacenamiento no se probó ni se usó con la imagen de nodo especificada y GKE no puede garantizar su funcionalidad. No hay planes para probar este complemento de almacenamiento.
  • No: este complemento de almacenamiento no funciona con la imagen de nodo especificada debido a una limitación inherente en el SO o Google Cloud Platform.

La imagen del nodo de GKE admite algunos complementos comunes de almacenamiento.

Tipo de volumen ¿Funciona en Container-Optimized OS (cos)? ¿Funciona en Ubuntu?
Google Compute Engine
Persistent Disk (EXT4 o XFS)
Sí: Completamente compatible y probado
(XFS no es compatible).
Sí: Completamente compatible y probado
GlusterFS Sí: Completamente compatible y probado
(XFS no es compatible).
Sí: Completamente compatible y probado
NFSv3 Sí: Completamente compatible y probado Sí: Completamente compatible y probado
NFSv4 Sí: Completamente compatible y probado Sí: Completamente compatible y probado
CephFS No Sí: Pruebas limitadas
(El controlador no viene instalado de forma predeterminada. Debes instalar el cliente ceph, preferiblemente mediante DaemonSet).
Cinder No No
Canal de fibra No No
Flocker No compatible No compatible
iSCSI No No
RBD No No

Notificaciones de la VM del nodo

Las modificaciones en los discos de arranque de las VM del nodo no se mantienen en las recreaciones de nodos. Los nodos se vuelven a crear durante la actualización manual y automática, la reparación automática y el ajuste de escala automático. Para conservar los cambios después de volver a crear el nodo, usa un DaemonSet.

Notas de la versión de las imágenes del nodo

Container-Optimized OS

Google ofrece documentación integral para Container-Optimized OS:

Ubuntu

Google actualiza periódicamente las imágenes de Ubuntu disponibles para usarse en los nodos de tu clúster. Consulta las notas de la versión de GKE para obtener más información sobre estas actualizaciones, incluido un vínculo al manifiesto que enumera los paquetes instalados de forma predeterminada.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...