亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

k8s存儲數據持久化,emptyDir,hostPath,基

發布時間:2020-10-08 18:51:16 來源:網絡 閱讀:691 作者:qq5b67ff3f5bc58 欄目:云計算

在docker和K8S中都存在容器是有生命周期的,因此數據卷可以實現數據持久化。

數據卷解決的主要問題:

1.數據持久性:當我們寫入數據時,文件都是暫時性的存在,當容器崩潰后,host就會將這個容器殺死,然后重新從鏡像創建容器,數據就會丟失。

2.數據共享:在同一個Pod中運行容器,會存在共享文件的需求。

數據卷的類型:

1.emptyDir
emptyDir數據卷類似于docker數據持久化的docker manager volume,該數據卷初分配時,是一個空目錄,同一個Pod中的容器可以對該容器中的目錄具有執行讀寫操作,并且共享數據。
場景特點:一個相同的pod,不同的容器,共享數據卷
如果容器被刪除,數據仍然存在,如果Pod被刪除,數據也會被刪除

測試:

**vim  emptyDir.yaml**
apiVersion: v1
kind: Pod
metadata:
  name: producer-consumer
spec:
  containers:
  - image: busybox
    name: producer
    volumeMounts:
    - mountPath: /producer_dir#這里的路徑指的是容器內的路徑
      name: shared-volume#指定本地的目錄名
    args:#定義容器運行后,會進行的操作
    - /bin/sh
    - -c
    - echo "hello k8s" > /producer_dir/hello; sleep 30000

  - image: busybox
    name: consumer
    volumeMounts:
    - mountPath: /consumer_dir
      name: shared-volume
    args:
    - /bin/sh
    - -c
    - cat /consumer_dir/hello; sleep 30000

  volumes:
  - name: shared-volume#這里的值需要與上面Pod的mountPath的name值對應
    emptyDir: {}#定義數據持久化的類型,即表示空目錄

kubectl apply -f emptyDir.yaml #執行文件
docker inspect (查看容器的詳細信息):Mount掛載點
k8s存儲數據持久化,emptyDir,hostPath,基
可以進入目錄在宿主機查看數據。
k8s存儲數據持久化,emptyDir,hostPath,基
kubectl get pod -o wide (-w):可以詳細的查看pod信息
加上-w:可以實時查看。并且知道容器運行在那個節點。
k8s存儲數據持久化,emptyDir,hostPath,基
kubectl logs {pod名} consumer可以查看目錄中的數據。

根據測試可以查看節點上的容器,掛載目錄是否相同。相同則環境正確。可以刪除容器查看數據是否丟失,在刪除master節點pod查看數據是否還在。
根據測試,emptyDir數據持久化一般只能作為臨時存儲使用。

2.hostPath Volume
1》將Pod所在節點的文件系統上某一個文件或目錄掛載進容器內。
2》類似于docker數據持久化的bind mount。如果Pod被刪除,數據會保留。相比較emptyDir要好一些,不過一但host崩潰,hostPath也無法訪問了。
3》使用這種數據持久化的場景不多,因為會增加Pod與節點之間的耦合性。

3.Persistent  Volume :pv (持久卷) 提前做好的,數據持久化的存放目錄。
    persistentVolumeClaim: PVC (持久卷使用聲明 | 申請)
    pvc是用戶存儲的請求。類似于pod。pod消耗節點資源,pvc消耗存儲資源。pod可以請求特定級別的資源(cpu,內存)。pvc根據權限可以請求特定的大小和訪問模式。

基于NFS服務來做PV:

安裝NFS服務及rpcbind服務:
1.[root@master?yaml]#?yum?install?-y?nfs-utils?rpcbind??#這里注意三臺都要安裝NFS服務。
2.[root@master?yaml]#?vim?/etc/exports??
文件中添加/nfsdata??*(rw,sync,no_root_squash)??
4.[root@master?yaml]#?mkdir?/nfsdata??
5.[root@master?yaml]#?systemctl?start?rpcbind??
6.[root@master?yaml]#?systemctl?start?nfs-server.service???
7.[root@master?yaml]#?showmount?-e??
Export?list?for?master:??
/nfsdata?*??

創建PV資源對象:

vim nfs-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: test
spec:
  capacity:#給予的容量大小
    storage: 1Gi
  accessModes:#PV支持的訪問模式
    - ReadWriteOnce#這里表示只能以讀寫的方式掛載到單個節點
  persistentVolumeReclaimPolicy: Recycle#pv的回收策略:表示自動清楚數據
  storageClassName: nfs#定義的存儲類名字
  nfs:#這里要和上面定義的存儲類名字一致
    path: /nfsdata/pv1#指定NFS的目錄
    server: 192.168.1.1#指定NFS服務器的IP
執行nfs-pv.yaml文件:
**`?kubectl?apply?-f?nfs-pv.yaml??`?**
persistentvolume/test?created??
**`?kubectl?get?pv??`**
NAME??????CAPACITY???ACCESS?MODES???RECLAIM?POLICY???STATUS??????CLAIM???STORAGECLASS???REASON???AGE??
test???1Gi????????RWO????????????Recycle?????????**?Available?**??????????nfs?????????????????????7s??
**這里注意STATUS狀態為Available才能夠使用。**

pv支持的訪問模式:
ReadWriteOnce:訪問模式為只能以讀寫的方式掛載到單個節點
ReadWriteMany:訪問模式為只能以讀寫的方式掛載到多個節點
ReadOnlyMany:訪問模式為只能以只讀的方式掛載到多個節點
PV存儲空間的回收策略
Recycle:自動清除數據。
Retain:需要管理員手動回收。
Delete:云存儲專用。
PV和PVC相互的關聯:通過的是storageClassName與accessModes

創建PVC:
 vim nfs-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test
spec:
  accessModes:
    - ReadWriteOnce#定義訪問模式,這里必須與Pv定義一致
  resources:
    requests:
      storage: 1Gi#請求容量的大小
  storageClassName: nfs#存儲類的名字,必須與pv定義的一致。

運行,并查看PVC和PV:
kubectl?apply?-f?nfs-pvc.yaml???
關聯后會看見,Bound:
k8s存儲數據持久化,emptyDir,hostPath,基
k8s存儲數據持久化,emptyDir,hostPath,基

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台东市| 宝山区| 甘泉县| 嘉荫县| 玉山县| 新蔡县| 汕尾市| 金坛市| 天津市| 黄平县| 白山市| 大竹县| 东台市| 鄢陵县| 静宁县| 杭锦旗| 石台县| 奉节县| 敦煌市| 称多县| 土默特右旗| 新野县| 武宣县| 保靖县| 蓝山县| 淄博市| 苏尼特左旗| 通许县| 乌拉特后旗| 明水县| 伊宁县| 遂宁市| 绥芬河市| 青河县| 兴义市| 恩施市| 桐柏县| 喀喇沁旗| 博客| 团风县| 沙雅县|