kubernetes之配置Pod的Volume存储
简介
此文讲解如何使用Volume配置Pod的存储。
容器的文件系统与容器是同生共死的关系。所以,当容器终止或重启时,文件系统会变化或丢失。为了获得独立于容器的更一致的存储,可以使用Volume。这对于有状态应用程序(例如键值存储(例如Redis)和数据库)尤其重要。
备注:此文档参考官方文档,并加以自己的理解。如有误导性的内容,请批评指正。
配置Pod的Volume
创建一个Pod,该Pod之运行了一个容器。此Pod具有类型为emptyDir的Volume,即使容器终止并重新启动,该Volume也会在Pod的整个生命周期内持续存在。文件名:redis.yaml
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: {}
1、创建Pod
# kubectl apply -f /root/k8s-example/pods/redis.yaml
2、确认Pod中的容器的运行状态,观测Pod的变化
# kubectl get pod redis --watch
输出结果如下
NAME    READY   STATUS    RESTARTS   AGE
redis   1/1     Running   0          3m17s
3、在另一个终端,用shell进入容器
# kubectl exec -it redis -- /bin/bash
4、在shell中,进入/data/redis/,创建一个文件
# kubectl exec -it redis -- /bin/bash
root@redis:/data# cd /data/redis/
root@redis:/data/redis# echo Hello > test-file
5、在shell中,列出正在运行的进程
root@redis:/data/redis# apt update
root@redis:/data/redis# apt-get install procps
root@redis:/data/redis# ps aux
输出结果如下:
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
redis        1  0.1  0.0  40696  2580 ?        Ssl  08:35   0:01 redis-server *:6379
root        18  0.0  0.0   3956  2060 pts/0    Ss   08:40   0:00 /bin/bash
root       332  0.0  0.0   7628  1404 pts/0    R+   08:45   0:00 ps aux
6、在shell中,kill掉 Redis 进程
root@redis:/data/redis# kill <pid>
<pid>即为 Redis 的进程 ID,可以看出进程ID为1
7、在原来的终端中,看到Redis的Pod发生改变,如下:
# kubectl get pod redis --watch
NAME    READY   STATUS    RESTARTS   AGE
redis   1/1     Running   0          3m17s
redis   0/1     Completed   0          11m
redis   1/1     Running     1          11m
容器被终止和重启,因为Redis的Pod中restartPolicy的值为Always。
1、然后再次进入重启后的Redis Pod的shell中,查看创建的文件依然存在
# kubectl exec -it redis -- /bin/bash
2、在shell中,进入/data/redis/目录,确认test-file文件是否依然存在
root@redis:/data/redis# cd /data/redis/
root@redis:/data/redis# ls
test-file
3、删除创建的Pod
# kubectl delete pod redis

                
            
        
浙公网安备 33010602011771号