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
posted @ 2020-01-21 10:30  McSiberiaWolf  阅读(920)  评论(0编辑  收藏  举报