Discos de arranque personalizados

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 disco persistente en el que se instala el sistema de archivos del nodo de Kubernetes para cada nodo. De forma predeterminada, GKE usa discos persistentes estándares. También puedes especificar un disco persistente SSD.

Los discos persistentes SSD pueden mejorar el rendimiento de los nodos en ciertas cargas de trabajo. Sin embargo, elegir un disco persistente SSD como disco de arranque de un nodo genera costos adicionales. Para obtener más información, consulta Opciones de almacenamiento.

Beneficios del uso de un disco de arranque SSD

El uso de un disco persistente SSD 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).

Para obtener información adicional sobre el rendimiento de los discos persistentes SSD en comparación con los discos persistentes estándares, consulta la comparación del rendimiento del almacenamiento en bloque.

Especifica el tipo de disco de arranque del nodo

Cuando creas un clúster o un grupo de nodos, puedes especificar el tipo de disco de arranque, ya sea estándar o SSD.

gcloud

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

[DISK-TYPE] puede ser una de estas opciones:

  • pd-standard, un disco persistente estándar (predeterminado)
  • pd-ssd, un disco persistente SSD
gcloud container clusters create [CLUSTER_NAME] --disk-type [DISK_TYPE]

Para crear un grupo de nodos en un clúster existente, usa este comando:

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

Console

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

  1. Dirígete al menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú de Google Kubernetes Engine

  2. Haz clic en el botón Crear clúster.

  3. Configura el clúster como desees.

  4. En el panel de navegación, en default-pool, haz clic en Nodos.

  5. En la lista desplegable Tipo de disco de arranque, selecciona Disco persistente estándar o Disco persistente SSD.

  6. Haz clic en Crear.

Para crear un grupo de nodos con un disco de arranque personalizado, sigue estos pasos:

  1. Dirígete al menú de Google Kubernetes Engine en Cloud Console.

    Ir al menú Google Kubernetes Engine

  2. Selecciona el clúster que desees.

  3. En el menú Grupos de nodos, haz clic en Agregar grupo de nodos.

  4. Configura el grupo de nodos como desees.

  5. En la lista desplegable Tipo de disco de arranque, selecciona Disco persistente estándar o Disco persistente SSD.

  6. 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 el contenido del cliente en reposo, incluidos los discos de arranque de los nodos, y GKE administra 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

Puedes evitar que los pods escriban datos directamente en los discos de arranque de los nodos y hacer que escriban solo en los discos conectados. Para ello, excluye los siguientes volúmenes del campo volumes de la PodSecurityPolicy:

  • configMap
  • emptyDir (si no los respalda tmpfs)
  • hostPath

En el siguiente ejemplo de PodSecurityPolicy, preventWritingToBootDisk.yaml, se evitan las escrituras en los discos de arranque:

apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
  name: preventWritingToBootDisk
spec:
  Volumes: # Exclude configMap, emptyDir (if not backed by tmpfs), and hostPath.
           # Include all other desired volumes.
     - 'persistentVolumeClaim'
  # Required fields.
  runAsUser:
    rule: 'RunAsAny'
  seLinux:
    rule: 'RunAsAny'
  supplementalGroups:
    rule: 'RunAsAny'
  fsGroup:
    rule: 'RunAsAny'

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.

Existen algunas limitaciones cuando se usan CMEK en los discos de arranque de los nodos:

  • No puedes habilitar o inhabilitar la encriptación administrada por el cliente en los discos de arranque de clústeres o grupos de nodos existentes.
  • Solo puedes usar CMEK en los discos persistentes pd-standard y pd-ssd.

Pasos siguientes