Configura un disco de arranque personalizado


En esta página, se muestra cómo personalizar los discos de arranque de los nodos de clústeres y grupos de nodos de Google Kubernetes Engine (GKE).

Descripción general

Cuando creas un clúster o un grupo de nodos de GKE, puedes elegir el tipo de Persistent Disk en el que se instala el sistema de archivos del nodo de Kubernetes para cada nodo. De forma predeterminada, GKE usa Persistent Disks balanceados en la versión 1.24 o posterior. También puedes especificar otros tipos de discos persistentes, como estándar o SSD. Para obtener más información, consulta Opciones de almacenamiento.

Los discos persistentes SSD y balanceados tienen cuotas de disco que son diferentes de las cuotas de los discos persistentes estándar. Si cambias de discos persistentes estándar a balanceados, es posible que debas solicitar aumentos de cuota. Para obtener más información, consulta Cuotas de recursos.

Beneficios del uso de un disco de arranque SSD

El uso de un SSD Persistent Disk como disco de arranque para tus nodos ofrece algunas ventajas de rendimiento:

  • Los nodos tienen tiempos de arranque más rápidos.
  • Los objetos binarios y los archivos que se entregan desde los contenedores están disponibles para el nodo de manera más rápida. Esto puede aumentar el rendimiento de las cargas de trabajo con uso intensivo de E/S, como las aplicaciones de entrega web que alojan archivos estáticos o los trabajos por lotes de ejecución breve con uso intensivo de E/S.
  • Además, mejora el rendimiento de E/S de los archivos almacenados en los medios locales del nodo (expuestos mediante los volúmenes hostPath o emptyDir).

Especifica el tipo de disco de arranque de nodo

Puedes especificar el tipo de disco de arranque cuando creas un clúster o un grupo de nodos.

gcloud

Para crear un clúster con un disco de arranque personalizado, ejecuta el siguiente comando.

[DISK-TYPE] puede tener uno de los siguientes valores:

  • pd-balanced (predeterminado en la versión 1.24 o posteriores)
  • pd-standard (predeterminado en la versión 1.23 o anteriores)
  • pd-ssd
  • hyperdisk-balanced

Consulta Tipos de discos persistentes para obtener más información sobre esta opción.

gcloud container clusters create [CLUSTER_NAME] --disk-type [DISK_TYPE]

Para crear un grupo de nodos en un clúster existente:

gcloud container node-pools create [POOL_NAME] --disk-type [DISK_TYPE]

Por ejemplo, con el comando siguiente, se crea un clúster, example-cluster, con el tipo de disco persistente SSD, pd-ssd:

gcloud container clusters create example-cluster --disk-type pd-ssd

Consola

Para seleccionar el disco de arranque cuando creas tu clúster mediante la consola de Google Cloud, sigue estos pasos:

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. Haz clic en Crear.

  3. Configura tu clúster según sea necesario.

  4. Desde el panel de navegación, expande Grupo predeterminado y haz clic en Nodos.

  5. En la lista desplegable Tipo de disco de arranque, selecciona un tipo de disco persistente.

  6. Haz clic en Crear.

Si deseas crear un grupo de nodos con un disco de arranque personalizado para un clúster existente, sigue estos pasos:

  1. Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. Haz clic en Agregar grupo de nodos.

  4. Configura tu grupo de nodos según sea necesario.

  5. En el menú de navegación, haz clic en Nodos.

  6. En la lista desplegable Tipo de disco de arranque, selecciona un tipo de disco persistente.

  7. Haz clic en Crear.

Protege los discos de arranque de los nodos

De forma predeterminada, en los discos de arranque de los nodos se almacenan la imagen del contenedor, algunos registros de procesos del sistema, los registros del pod y la capa de escritura del contenedor.

Si usas volúmenes configMap, emptyDir o hostPath en tus cargas de trabajo, es posible que los pods escriban datos adicionales en los discos de arranque de los nodos. A fin de impedirlo, configura emptyDir para que lo respalde tmpfs. Consulta la documentación de Kubernetes para aprender a hacerlo. Como tmpfs respalda los volúmenes secret, downwardAPI y projected, los pods que los usan no escriben datos en el disco de arranque del nodo.

De forma predeterminada, Google Cloud encripta en reposo el contenido del cliente, incluidos los discos de arranque de los nodos, y GKE administra automáticamente la encriptación, por lo que no debes tomar ninguna medida.

Sin embargo, cuando se usan volúmenes que escriben en el disco de arranque del nodo, es posible que quieras controlar aún más el modo en que se protegen los datos de las cargas de trabajo en GKE. Para ello, evita que los pods escriban en los discos de arranque de los nodos o usa claves de encriptación administradas por el cliente (CMEK) para los discos de arranque de los nodos.

Impide que los Pods escriban en los discos de arranque

Para evitar que los Pods escriban datos directamente en el disco de arranque del nodo, usa uno de los siguientes métodos.

Policy Controller

Policy Controller es una función de GKE Enterprise que te permite declarar y aplicar políticas personalizadas a gran escala en los clústeres de GKE en flotas.

  1. Instala Policy Controller.
  2. Define una restricción que restrinja los siguientes tipos de volúmenes mediante la plantilla de restricción k8sPspVolumeTypes:

La siguiente restricción de ejemplo restringe estos tipos de volúmenes en todos los pods del clúster:

apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sPSPVolumeTypes
metadata:
  name: deny-boot-disk-writes
spec:
  match:
    kinds:
    - apiGroups: [""]
      kinds: ["Pod"]
  parameters:
    volumes:
    - configMap
    - emptyDir
    - hostPath

Controlador de admisión PodSecurity

El controlador de admisión integrado de PodSecurity de Kubernetes te permite aplicar diferentes niveles de los Estándares de seguridad de Pods en espacios de nombres específicos o en el clúster. La política restringida evita que los Pods escriban en el disco de arranque del nodo.

Para usar el controlador de admisión PodSecurity, consulta Aplica políticas de seguridad predefinidas a nivel de Pods mediante PodSecurity.

Encriptación administrada por el cliente

Si deseas controlar y administrar la rotación de las claves de encriptación, puedes usar claves de encriptación administradas por el cliente (CMEK). Estas se usan para encriptar las claves de encriptación de datos que, a su vez, encriptan tus datos. Si deseas obtener información sobre cómo usar CMEK en los discos de arranque de los nodos, consulta cómo usar claves de encriptación administradas por el cliente.

Una limitación de CMEK para los discos de arranque de nodos es que no se puede cambiar después de la creación del grupo de nodos. Esto significa lo siguiente:

  • Si el grupo de nodos se creó con encriptación administrada por el cliente, no puedes inhabilitar la encriptación en los discos de arranque posteriormente.
  • Si el grupo de nodos se creó sin encriptación administrada por el cliente, no puedes habilitar la encriptación en los discos de arranque posteriormente. Sin embargo, puedes crear un nuevo grupo de nodos con la encriptación administrada por el cliente habilitada y borrar el grupo de nodos anterior.

Limitaciones

Antes de configurar un disco de arranque personalizado, ten en cuenta las siguientes limitaciones:

¿Qué sigue?