新聞中心
配置 Pod 以使用卷進(jìn)行存儲(chǔ)
此頁(yè)面展示了如何配置 Pod 以使用卷進(jìn)行存儲(chǔ)。

創(chuàng)新互聯(lián)建站主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)視覺設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、營(yíng)銷推廣、網(wǎng)站程序開發(fā)、HTML5響應(yīng)式重慶網(wǎng)站建設(shè)公司、手機(jī)網(wǎng)站制作設(shè)計(jì)、微商城、網(wǎng)站托管及網(wǎng)站維護(hù)、WEB系統(tǒng)開發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為PE包裝袋行業(yè)客戶提供了網(wǎng)站營(yíng)銷服務(wù)。
只要容器存在,容器的文件系統(tǒng)就會(huì)存在,因此當(dāng)一個(gè)容器終止并重新啟動(dòng),對(duì)該容器的文件系統(tǒng)改動(dòng)將丟失。 對(duì)于獨(dú)立于容器的持久化存儲(chǔ),你可以使用卷。 這對(duì)于有狀態(tài)應(yīng)用程序尤為重要,例如鍵值存儲(chǔ)(如 Redis)和數(shù)據(jù)庫(kù)。
在開始之前
你必須擁有一個(gè) Kubernetes 的集群,同時(shí)你的 Kubernetes 集群必須帶有 kubectl 命令行工具。 建議在至少有兩個(gè)節(jié)點(diǎn)的集群上運(yùn)行本教程,且這些節(jié)點(diǎn)不作為控制平面主機(jī)。 如果你還沒有集群,你可以通過 Minikube 構(gòu)建一個(gè)你自己的集群,或者你可以使用下面任意一個(gè) Kubernetes 工具構(gòu)建:
- Katacoda
- 玩轉(zhuǎn) Kubernetes
要檢查版本,請(qǐng)輸入 ?kubectl version?。
為 Pod 配置卷
在本練習(xí)中,你將創(chuàng)建一個(gè)運(yùn)行 Pod,該 Pod 僅運(yùn)行一個(gè)容器并擁有一個(gè)類型為 emptyDir 的卷, 在整個(gè) 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: {}
- 創(chuàng)建 Pod:
- 驗(yàn)證 Pod 中的容器是否正在運(yùn)行,然后留意 Pod 的更改:
kubectl get pod redis --watch輸出如下:
NAME READY STATUS RESTARTS AGE redis 1/1 Running 0 13s - 在另一個(gè)終端,用 shell 連接正在運(yùn)行的容器:
kubectl exec -it redis -- /bin/bash - 在你的 Shell中,切換到 ?
/data/redis? 目錄下,然后創(chuàng)建一個(gè)文件:root@redis:/data# cd /data/redis/ root@redis:/data/redis# echo Hello > test-file - 在你的 Shell 中,列出正在運(yùn)行的進(jìn)程:
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 - 在你的 Shell 中,結(jié)束 Redis 進(jìn)程:
root@redis:/data/redis# kill其中 ?
? 是 Redis 進(jìn)程的 ID (PID)。 - 在你原先終端中,留意 Redis Pod 的更改。最終你將會(huì)看到和下面類似的輸出:
NAME READY STATUS RESTARTS AGE redis 1/1 Running 0 13s redis 0/1 Completed 0 6m redis 1/1 Running 1 6m
kubectl apply -f https://K8S.io/examples/pods/storage/redis.yaml
此時(shí),容器已經(jīng)終止并重新啟動(dòng)。這是因?yàn)?nbsp;Redis Pod 的 restartPolicy 為 ?Always?。
- 用 Shell 進(jìn)入重新啟動(dòng)的容器中:
kubectl exec -it redis -- /bin/bash - 在你的 Shell 中,進(jìn)入到 ?
/data/redis? 目錄下,并確認(rèn) ?test-file? 文件是否仍然存在。root@redis:/data/redis# cd /data/redis/ root@redis:/data/redis# ls test-file - 刪除為此練習(xí)所創(chuàng)建的 Pod:
kubectl delete pod redis
本文名稱:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes 配置Pod以使用卷進(jìn)行存儲(chǔ)
文章網(wǎng)址:http://m.fisionsoft.com.cn/article/cdhisje.html


咨詢
建站咨詢
