Estudio de CKAD – Día 21

Dia 21, con mi debilidad, los volumenes


  1. Crea un Pod multi-contenedor en namespace exam-ns llamado multi, con dos contenedores:
    • contenedor app con imagen busybox que ejecuta sleep 3600
    • contenedor sidecar con imagen busybox que también ejecuta sleep 3600
      Ambos contenedores deben compartir un volumen emptyDir montado en /data.

En general es crear un solo contenedor, pero aparte debo generar un volumen.

Los volumenes son espacios de almacenamiento, pero necesita tene r una configuracion especial para compartirlo entre 2 contenedores. Y aparte necesito leer bien la sintaxis para generarlos.


apiVersion: v1
kind: Pod
metadata:
  name: multi
  namespace: exam-ns
spec:
  containers:
    - name: sidecar
      image: busybox
      command: ['sleep','3600']
      volumeMounts:
      - mountPath: /data
        name: cache-volume
    - name: app
      image: busybox
      command: ['sleep','3600']
      volumeMounts:
      - mountPath: /data
        name: cache-volume
  volumes:
    - name: cache-volume
      emptyDir:
        sizeLimit: 500Mi
        medium: Memory

Cosas que resaltar

Si no es persistente, el objeto va dentro de Spec:

Hay varios tipos de volumen por defecto, emptyDir es uno de los efimeros

Los otros relevantes como Local y PersistenVolumen se crean por separado y tienen modos de lectura. Varia segun el CustomResources

https://kubernetes.io/docs/concepts/storage/volumes

Montar el volumen en el contendor tiene que ver con ‘volumeMounts’ y ‘mountPath’ el resto resuelve solo. El uso tambien depende del tipo de volumen

Asi como los secretos y los configmap se pueden cargar como volumenes y usar como archivos (de solo lectura).