W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
當(dāng)部署一個(gè)需要保留數(shù)據(jù)的應(yīng)用程序時(shí),你需要?jiǎng)?chuàng)建持久存儲(chǔ)。持久存儲(chǔ)允許您從運(yùn)行應(yīng)用程序的 pod 外部存儲(chǔ)應(yīng)用程序數(shù)據(jù)。即使應(yīng)用程序的 pod 發(fā)生故障,這種存儲(chǔ)方式也可以使您維護(hù)應(yīng)用程序數(shù)據(jù)。
持久卷(PV)是 Kubernetes 集群中的一塊存儲(chǔ),而持久卷聲明(PVC)是對(duì)存儲(chǔ)的請(qǐng)求。關(guān)于 PV 和 PVC 的工作原理,請(qǐng)參閱有關(guān)存儲(chǔ)的 Kubernetes 官方文檔。
本頁(yè)介紹了如何通過(guò) local storage provider 或 Longhorn 來(lái)設(shè)置持久存儲(chǔ)。
K3s 刪除了幾個(gè)可選的卷插件和所有內(nèi)置的(有時(shí)被稱為 "樹內(nèi)")云提供商。我們這樣做是為了實(shí)現(xiàn)更小的二進(jìn)制文件大小,并避免對(duì)第三方云或數(shù)據(jù)中心技術(shù)和服務(wù)的依賴,這些技術(shù)和服務(wù)在許多 K3s 的使用案例中可能無(wú)法使用。我們之所以能夠這樣做,是因?yàn)閯h除這些插件既不影響 Kubernetes 的核心功能,也不影響一致性。
以下是已經(jīng)從 K3s 中刪除的卷插件:
這兩個(gè)組件都有樹外的替代品,可以與 K3s 一起使用:Kubernetes 的容器存儲(chǔ)接口(CSI)和云提供商接口(CPI)。
Kubernetes 維護(hù)者正在積極將樹內(nèi)卷插件遷移到 CSI 驅(qū)動(dòng)。有關(guān)這一遷移的更多信息,請(qǐng)參考這里。
K3s 自帶 Rancher 的 Local Path Provisioner,這使得能夠使用各自節(jié)點(diǎn)上的本地存儲(chǔ)來(lái)開箱即用地創(chuàng)建持久卷聲明。下面我們介紹一個(gè)簡(jiǎn)單的例子。有關(guān)更多信息,請(qǐng)參考此處的官方文檔。
創(chuàng)建一個(gè)由 hostPath 支持的持久卷聲明和一個(gè)使用它的 pod:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: local-path-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 2Gi
apiVersion: v1
kind: Pod
metadata:
name: volume-test
namespace: default
spec:
containers:
- name: volume-test
image: nginx:stable-alpine
imagePullPolicy: IfNotPresent
volumeMounts:
- name: volv
mountPath: /data
ports:
- containerPort: 80
volumes:
- name: volv
persistentVolumeClaim:
claimName: local-path-pvc
應(yīng)用 yaml:
kubectl create -f pvc.yaml
kubectl create -f pod.yaml
確認(rèn) PV 和 PVC 已創(chuàng)建:
kubectl get pv
kubectl get pvc
狀態(tài)應(yīng)該都為 Bound
注意: 目前 Longhorn 只支持 amd64 和 arm64(實(shí)驗(yàn)性)。
K3s 支持 Longhorn。Longhorn 是 Kubernetes 的一個(gè)開源分布式塊存儲(chǔ)系統(tǒng)。
下面我們介紹一個(gè)簡(jiǎn)單的例子。有關(guān)更多信息,請(qǐng)參閱此處的官方文檔。
應(yīng)用 longhorn.yaml 來(lái)安裝 Longhorn:
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/master/deploy/longhorn.yaml
Longhorn 將被安裝在命名空間?longhorn-system
?中。
應(yīng)用 yaml 創(chuàng)建 PVC 和 pod:
kubectl create -f pvc.yaml
kubectl create -f pod.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: longhorn-volv-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 2Gi
apiVersion: v1
kind: Pod
metadata:
name: volume-test
namespace: default
spec:
containers:
- name: volume-test
image: nginx:stable-alpine
imagePullPolicy: IfNotPresent
volumeMounts:
- name: volv
mountPath: /data
ports:
- containerPort: 80
volumes:
- name: volv
persistentVolumeClaim:
claimName: longhorn-volv-pvc
確認(rèn) PV 和 PVC 已創(chuàng)建:
kubectl get pv
kubectl get pvc
狀態(tài)應(yīng)該都為 Bound
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: