En esta página se explica cómo personalizar un disco de arranque de nodo en tus clústeres y grupos de nodos de Google Kubernetes Engine (GKE).
Informació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 de cada nodo. De forma predeterminada, GKE usa discos persistentes balanceados en la versión 1.24 o posterior. También puede especificar otros tipos de discos persistentes, como estándar o SSD. Para obtener más información, consulta Opciones de almacenamiento.
Los discos persistentes balanceados y SSD tienen cuotas de disco diferentes a las de los discos persistentes estándar. Si vas a cambiar de discos persistentes estándar a equilibrados, es posible que tengas que solicitar aumentos de cuota. Para obtener más información, consulta Cuotas de recursos.
Ventajas de usar un disco de arranque SSD
Usar un disco persistente SSD como disco de arranque de los nodos ofrece algunas ventajas en cuanto al rendimiento:
- Los nodos tienen tiempos de arranque más rápidos.
- Los archivos binarios y los archivos servidos desde contenedores están disponibles para el nodo más rápido. Esto puede aumentar el rendimiento de las cargas de trabajo que requieren muchas operaciones de entrada/salida, como las aplicaciones de servicio web que alojan archivos estáticos o los trabajos por lotes que requieren muchas operaciones de entrada/salida y que se ejecutan durante poco tiempo.
- Los archivos almacenados en el contenido multimedia local del nodo (expuestos a través de
hostPath
oemptyDir
volúmenes) pueden experimentar un mejor rendimiento de E/S.
Especificar un tipo de disco de arranque de nodo
Puedes especificar el tipo de disco de arranque al crear 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
(opción predeterminada en la versión 1.24 o posteriores)pd-standard
(valor predeterminado en la versión 1.23 o anteriores)pd-ssd
hyperdisk-balanced
Para obtener más información, consulta Tipos de discos persistentes.
gcloud container clusters create [CLUSTER_NAME] --disk-type [DISK_TYPE]
Para crear un grupo de nodos en un clúster, sigue estos pasos:
gcloud container node-pools create [POOL_NAME] --disk-type [DISK_TYPE]
Por ejemplo, el siguiente comando 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 al crear el clúster con la Google Cloud consola, sigue estos pasos:
En la Google Cloud consola, ve a la página Crear un clúster de Kubernetes.
Configura el clúster según sea necesario.
En el menú de navegación, despliegue default-pool y haga clic en Nodos.
En la lista desplegable Boot disk type (Tipo de disco de arranque), selecciona un tipo de disco persistente.
Haz clic en Crear.
Para crear un grupo de nodos con un disco de arranque personalizado en un clúster, sigue estos pasos:
Ve a la página Google Kubernetes Engine en la Google Cloud consola.
En la lista de clústeres, haga clic en el nombre del clúster que quiera modificar.
Haz clic en add_box Añadir grupo de nodos.
Configura el grupo de nodos según sea necesario.
En el menú de navegación, haga clic en Nodos.
En la lista desplegable Boot disk type (Tipo de disco de arranque), selecciona un tipo de disco persistente.
Haz clic en Crear.
Proteger los discos de arranque de nodos
Un disco de arranque de nodo almacena de forma predeterminada la imagen de tu contenedor, algunos registros de procesos del sistema, registros de pods y la capa de contenedor grabable.
Si tus cargas de trabajo usan volúmenes configMap
, emptyDir
o hostPath
, tus pods podrían escribir datos adicionales en los discos de arranque de los nodos. Puedes configurar emptyDir
para que se respalde en tmpfs y evitarlo. Para saber cómo hacerlo, consulta la documentación de Kubernetes.
Como los volúmenes secret
, downwardAPI
y projected
están respaldados por tmpfs, los pods que los usan no escriben datos en el disco de arranque del nodo.
De forma predeterminada, Google Cloud cifra el contenido de los clientes en reposo incluidos los discos de arranque de los nodos, y GKE gestiona el cifrado por ti sin que tengas que hacer nada.
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 cómo se protegen los datos de tu carga de trabajo en GKE. Para ello, puedes evitar que los pods escriban en los discos de arranque de los nodos o usar claves de cifrado gestionadas por el cliente (CMEK) en los discos de arranque de los nodos.
Evitar que los pods escriban en discos de arranque
Para evitar que los pods escriban datos directamente en el disco de arranque del nodo, utiliza 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 tus clústeres de GKE en flotas.
- Instala Policy Controller.
- Define una restricción que limite los siguientes tipos de volumen mediante la plantilla de restricción
k8sPspVolumeTypes
:configMap
emptyDir
(si no está respaldado por tmpfs)hostPath
Para obtener instrucciones, consulta la sección Usar la biblioteca de plantillas de restricciones en la documentación de Policy Controller.
La siguiente restricción de ejemplo restringe estos tipos de volumen 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 PodSecurity de Kubernetes integrado te permite aplicar diferentes niveles de los estándares de seguridad de los pods en espacios de nombres específicos o en el clúster. La política Restringida impide que los pods escriban en el disco de arranque del nodo.
Para usar el controlador de admisión PodSecurity, consulta Aplicar políticas de seguridad predefinidas a nivel de pod con PodSecurity.
Cifrado gestionado por el cliente
Si quieres controlar y gestionar la rotación de las claves de cifrado, puedes usar las claves de cifrado gestionadas por el cliente (CMEK). Estas claves se usan para cifrar las claves de cifrado de datos que cifran tus datos. Para saber cómo usar CMEK en discos de arranque de nodos, consulta Usar claves de cifrado gestionadas por el cliente.
Una limitación de CMEK para los discos de arranque de nodos es que no se puede cambiar después de crear el pool de nodos. Esto significa que:
- Si el grupo de nodos se ha creado con el encriptado gestionado por el cliente, no podrás inhabilitar el encriptado en los discos de arranque posteriormente.
- Si el grupo de nodos se ha creado sin el encriptado gestionado por el cliente, no podrás habilitar el encriptado en los discos de arranque posteriormente. Sin embargo, puedes crear un grupo de nodos con el cifrado gestionado por el cliente habilitado y eliminar el grupo de nodos anterior.
Limitaciones
Antes de configurar un disco de arranque personalizado, ten en cuenta las siguientes limitaciones:
- Las series de máquinas C3 y G2 no admiten el tipo de disco de arranque de nodo
pd-standard
.
Siguientes pasos
- Consulta cómo especificar una plataforma de CPU mínima.
- Más información sobre el cifrado gestionado por el cliente
- Consulta información sobre el uso de claves de cifrado gestionadas por el cliente en GKE.