W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
此頁面展示了如何配置 Pod 以使用卷進行存儲。
只要容器存在,容器的文件系統(tǒng)就會存在,因此當一個容器終止并重新啟動,對該容器的文件系統(tǒng)改動將丟失。 對于獨立于容器的持久化存儲,你可以使用卷。 這對于有狀態(tài)應(yīng)用程序尤為重要,例如鍵值存儲(如 Redis)和數(shù)據(jù)庫。
你必須擁有一個 Kubernetes 的集群,同時你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個節(jié)點的集群上運行本教程,且這些節(jié)點不作為控制平面主機。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個你自己的集群,或者你可以使用下面任意一個 Kubernetes 工具構(gòu)建:
要檢查版本,請輸入 ?kubectl version
?。
在本練習(xí)中,你將創(chuàng)建一個運行 Pod,該 Pod 僅運行一個容器并擁有一個類型為 emptyDir 的卷, 在整個 Pod 生命周期中一直存在,即使 Pod 中的容器被終止和重啟。以下是 Pod 的配置:
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 https://k8s.io/examples/pods/storage/redis.yaml
kubectl get pod redis --watch
輸出如下:
NAME READY STATUS RESTARTS AGE
redis 1/1 Running 0 13s
kubectl exec -it redis -- /bin/bash
/data/redis
? 目錄下,然后創(chuàng)建一個文件:root@redis:/data# cd /data/redis/
root@redis:/data/redis# echo Hello > test-file
root@redis:/data/redis# apt-get 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.1 33308 3828 ? Ssl 00:46 0:00 redis-server *:6379
root 12 0.0 0.0 20228 3020 ? Ss 00:47 0:00 /bin/bash
root 15 0.0 0.0 17500 2072 ? R+ 00:48 0:00 ps aux
root@redis:/data/redis# kill <pid>
其中 ?<pid>
? 是 Redis 進程的 ID (PID)。
NAME READY STATUS RESTARTS AGE
redis 1/1 Running 0 13s
redis 0/1 Completed 0 6m
redis 1/1 Running 1 6m
此時,容器已經(jīng)終止并重新啟動。這是因為 Redis Pod 的 restartPolicy 為 ?Always
?。
kubectl exec -it redis -- /bin/bash
/data/redis
? 目錄下,并確認 ?test-file
? 文件是否仍然存在。root@redis:/data/redis# cd /data/redis/
root@redis:/data/redis# ls
test-file
kubectl delete pod redis
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: