¿Qué vamos a ver?
Basado en la documentación oficial de K8s (licencia CC-BY-4.0).
>_.source <(kubectl completion bash)
Comprueba que funciona escribiendo kubectl y presionando la tecla "TAB" 2 veces.Crea un namespace para aislar los recursos de este ejercicio del resto de recursos en tu clúster:
kubectl create namespace lab-volumes
Vamos a crear un Pod que ejecuta un Contenedor y tiene asignado un Volumen de tipo emptyDir que comparte ciclo de vida con el Pod, incluso si el Contenedor se reinicia.
Para crear un Pod con dicho Volumen:
pods/redis.yaml con este manifiesto:apiVersion: v1
kind: Pod
metadata:
name: redis
spec:
containers:
- name: redis
image: redis
volumeMounts:
- name: redis-storage
mountPath: /data/redis
volumes:
- name: redis-storage
emptyDir: {}
kubectl apply -f pods/redis.yaml -n lab-volumes
Running, y continúa vigilando su estado:kubectl get pods -n lab-volumes -w
kubectl exec -it redis -- /bin/bash
/data/redis y crea un archivo:cd /data/redis/
echo "Hello world!" > hello_world.txt
apt-get update
apt-get install procps
ps aux
Comprueba que el proceso redis está en ejecución.redis para forzar el reinicio del Contenedor usando el [PID] correspondiente:kill [PID]
CTRL + C para detener el comando./data/redis/ y verifica que el archivo continua ahí:cd /data/redis
ls
Elimina el namespace, lo cual eliminará todos los recursos:
kubectl delete namespace lab-volumes
En esta práctica hemos visto cómo: