Cómo crear volúmenes de Kubernetes

En este documento, se muestra cómo crear recursos de volumen en tu clúster de Google Kubernetes Engine (GKE).

Para administrar cómo las aplicaciones alojadas en contenedores almacenan y comparten datos en un clúster de Kubernetes, crea volúmenes de Kubernetes y configúralos dentro de tus implementaciones. Si creas volúmenes de Kubernetes, puedes implementar microservicios con estado. Esto también aumenta la velocidad de desarrollo, ya que administras los datos de la aplicación de manera coherente.

Este documento está destinado a desarrolladores y administradores que administran el almacenamiento de contenedores de GKE. Para obtener más información sobre los roles comunes y las tareas de ejemplo a las que hacemos referencia en Google Cloud el contenido, consulta Roles y tareas comunes del usuario de GKE.

Usa volúmenes con las implementaciones

Puedes crear un objeto Deployment de Pods en el que cada Pod contenga uno o más volúmenes. En el manifiesto de Deployment siguiente, se describe un Deployment de tres pods en la que cada uno tiene un volumen emptyDir. Para obtener más información, consulta Crear una implementación.

En este ejemplo:

  • El campo metadata: name especifica una implementación llamada volumes-example-deployment.
  • La especificación de la plantilla de pod incluye un volumes campo que describe un volumen emptyDir llamado cache-volume.
  • La especificación del contenedor incluye un campo volumeMounts: que especifica que el volumen llamado cache-volume está activado en la ruta de acceso /cache.
  • El archivo de manifiesto se llama volumes-demo.yaml.
apiVersion: apps/v1
kind: Deployment
metadata:
 name: volumes-example-deployment
spec:
 replicas: 3
 selector:
  matchLabels:
   app: demo
 template:
  metadata:
   labels:
    app: demo
  spec:
   containers:
   - name: test-container
    image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
    volumeMounts:
    - mountPath: /cache
     name: cache-volume
   volumes:
    - name: cache-volume
     emptyDir: {}

Para crear un objeto Deployment desde este archivo de manifiesto, ejecuta el siguiente comando:

kubectl apply -f volumes-demo.yaml

Verifica con este comando que tu objeto Deployment se esté ejecutando de forma correcta y que tenga el volumen esperado:

kubectl describe pods volumes-example-deployment

Esto imprime información sobre cada uno de los tres pods en el Deployment. El resultado muestra que cada pod tiene un contenedor, test-container, con la activación /cache de la siguiente manera:

Mounts:
  /cache from cache-volume (rw)

El resultado también muestra que cada pod contiene un volumen llamado cache-volume como se presenta a continuación:

Volumes:
  cache-volume:
    Type:    EmptyDir (a temporary directory that shares a pod's lifetime)

¿Qué sigue?