此前在存储卷类型中提到,hostPath位于主机路径,在宿主机创建目录挂载。一定意义的持久性。pod所在宿主机之上的,脱离pod容器名称空间之外的,宿主机的文件系统某一个目录与pod建立关系。当pod被删除,存储卷不会被删除。只要同一个pod调度到同一个节点,数据依然可被正常使用。
volumes:
hostPath:
path:
type
type字段支持为了测试效果,在三台node上都创建这个目录,并写上标注信息
[root@Linuxea-VM-Node146 ~]# mkdir -p /data/linuxea/image && echo $(date)_$(hostname)/data/linuxea/image.com >> /data/linuxea/image/linuxeacom.html
[root@DS-VM-Node146 ~]# cat /data/linuxea/image/linuxeacom.html
2018年 09月 20日 星期四 16:46:44 CST_Linuxea-VM-Node146.cluster.com/data/linuxea/image.com
[root@DS-VM-Node203 ~]# mkdir -p /data/linuxea/image && echo $(date)_$(hostname)/data/linuxea/image.com >> /data/linuxea/image/linuxeacom.html
[root@DS-VM-Node203 ~]# cat /data/linuxea/image/linuxeacom.html
2018年 09月 20日 星期四 16:46:43 CST_Linuxea-VM-Node203.cluster.com/data/linuxea/image.com
[root@DS-VM-Node_10_10_240_202 ~]# mkdir -p /data/linuxea/image && echo $(date)_$(hostname)/data/linuxea/image.com >> /data/linuxea/image/linuxeacom.html
[root@DS-VM-Node_10_10_240_202 ~]# cat /data/linuxea/image/linuxeacom.html
2018年 09月 20日 星期四 16:46:36 CST_Linuxea-VM-Node_10_10_240_202./data/linuxea/image.com
apply一个yml文件,在其中,挂载宿主机的目录,由于上台宿主机目录中的文件时间都不一样,便以此来测试。
[root@linuxea volume]# cat pod-hostPath.yaml
apiVersion: v1
kind: Pod
metadata:
name: linuxea-hostpath
namespace: default
spec:
containers:
- name: linuxea-pod1-com
image: "marksugar/nginx:1.14.a"
ports:
- containerPort: 88
volumeMounts:
- name: linuxea-image
mountPath: /data/wwwroot/
volumes:
- name: linuxea-image
hostPath:
path: /data/linuxea/image
type: DirectoryOrCreate
[root@linuxea volume]# kubectl apply -f pod-hostPath.yaml
pod/linuxea-hostpath created
[root@linuxea volume]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
linuxea-hostpath 1/1 Running 0 4s 172.16.5.109 linuxea.node-3.com <none>
内部访问
[root@linuxea volume]# curl 172.16.5.109/linuxeacom.html
2018年 09月 20日 星期四 16:46:44 CST_Linuxea-VM-Node146.cluster.com/data/linuxea/image.com
此刻内部访问时被调度到linuxea-VM-Node146.cluster.com
,倘若linuxea-VM-Node146.cluster.com
node宿主机不故障则会一直调度在linuxea-VM-Node146.cluster.com
(一定程度上完成了“节点”持久存储。)。因此,此刻删除pod后在创建数据卷仍然可被调度。