k8s-數據卷hostPath卷
1. 數據卷hostPath卷
-
hostPath卷:掛載Node節點本地文件系統(Pod所在節點)上文件或者目錄到Pod中的容器。
-
應用場景:Pod中容器需要訪問宿主機文件
-
示例:
apiVersion: v1 kind: Pod metadata: name: my-hostpath spec: containers: - name: busybox image: busybox args: - /bin/sh - -c - sleep 36000 volumeMounts: - name: data mountPath: /data volumes: - name: data hostPath: path: /tmp type: Directory
示例:將宿主機/tmp目錄掛載到容器/data目錄
2. 案例
2.1 編寫配置文件
-
創建編寫配置文件目錄
[root@k8s-master yaml]# mkdir -p hostPath/ [root@k8s-master yaml]# cd hostPath/ [root@k8s-master hostPath]# ll 總用量 0
-
編寫配置文件
[root@k8s-master hostPath]# vim hostpath.yaml [root@k8s-master hostPath]# cat hostpath.yaml apiVersion: v1 kind: Pod metadata: name: my-hostpath spec: containers: - name: busybox image: busybox args: - /bin/sh - -c - sleep 36000 volumeMounts: - name: data mountPath: /data volumes: - name: data hostPath: path: /tmp type: Directory
2.2 啟動服務
[root@k8s-master hostPath]# kubectl apply -f hostpath.yaml
pod/my-hostpath created
2.3 查看服務是否啟動
[root@k8s-master hostPath]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
configmap-demo-pod 1/1 Running 0 2d 10.244.107.209 k8s-node3 <none> <none>
my-hostpath 1/1 Running 0 4m28s 10.244.107.211 k8s-node3 <none> <none>
secret-demo-pod 1/1 Running 0 41h 10.244.107.210 k8s-node3 <none> <none>
2.4 驗證數據
我們可以看到節點在node3上面,我們去node3節點/tmp/目錄下載創建一個文件做測試”test.txt“
-
在node3上/tmp/目錄下創建”test.txt“文件
[root@k8s-node3 ~]# cd /tmp/ [root@k8s-node3 tmp]# ls [root@k8s-node3 tmp]# touch test.txt [root@k8s-node3 tmp]# ls test.txt
-
進入docker容器,驗證是否被引入
[root@k8s-master hostPath]# kubectl exec -it my-hostpath -- /bin/sh / # ls /data/ test.txt