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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM