pod中的存儲卷類型:
1.emptyDir:用於臨時儲存空間,無持久性儲存功能,生命周期同pod容器,pod刪除后,數據不再存在。
2.gitRepo:pod創建時,自動將雲端倉庫中的文件克隆到pod掛載的目錄中,pod運行后,不會自主同步雲端倉庫的內容,有需要的話可以通過pod容器添加sidecar,來輔助完成此任務。
3.hostPath:在pods所在節點創建存儲卷掛載到pod指定掛載目錄中,但是如果節點宕機,數據也可能丟失。
4.nfs:在各個節點共享存儲卷到指定pod掛載點
(1)在其中一個節點上下載nfs:yum -y install nfs-utils
(2)在這個節點上創建共享目錄:mkdir /data/volumes
(3)編輯vi /etc/exports,把目錄共享出去。編輯內容:共享的目錄地址 共享給哪個主機或網段(rw,no_root_squash)(讀寫,壓縮權限)
(4)啟動服務 systemctl start nfs nfs監聽2049端口
(5)在其他節點上掛載共享的目錄:mount -t 文件類型(nfs) 共享目錄url 掛載點目錄 然后df -hT查看
(6)在編輯資源清單時在spec.template.spec.下添加volumes字段。
具體資源清單:
1 apiVersion: extensions/v1beta1 2 kind: Deployment 3 metadata: 4 name: myapp-nfs 5 namespace: default 6 spec: 7 selector: 8 matchLabels: 9 app: pod 10 san: tom 11 replicas: 2 12 template: 13 metadata: 14 name: pod-nfs 15 namespace: default 16 labels: 17 app: pod 18 san: tom 19 spec: 20 containers: 21 - name: myapp-nfs 22 image: ikubernetes/myapp:v1 23 volumeMounts: 24 - name: html 25 mountPath: /usr/share/nginx/html/ 26 volumes: 27 - name: html 28 nfs: 29 path: /data/volumes 30 server: k8s-node2
(7)應用資源清單:kubectl apply -f 資源清單名
(8)在共享目錄/data/volumes/下創建測試頁面:echo "<h1>NFS smbands</h1>" >/data/volumes/index.html
(9)查看pod kubectl get pods -owide
(10)測試:curl podip