kubernetes 支持的存储详见:https://kubernetes.io/docs/concepts/storage/volumes/
本地存储
#emptyDir型 ,demo1和demo2将目录/xx挂载到物理机volume1上,而volume1是物理机随机分配的。
apiVersion: v1
kind: Pod
metadata:
name: demo
labels:
purpose: demonstrate-envars
spec:
volumes:
- name: volume1
emptyDir: {}
containers:
- name: demo1
image: busybox
command: ['sh','-c','sleep 5000']
volumeMounts:
- mountPath: /xx
name: volume1
- name: demo2
image: busybox
command: ['sh','-c','sleep 5000']
volumeMounts:
- mountPath: /xx
name: volume1
#hostPath型, 将本地物理机目录 /local_dir分别挂载到demo1的/xx目录和demo2的/yy目录
apiVersion: v1
kind: Pod
metadata:
name: demo
labels:
purpose: demonstrate-envars
spec:
volumes:
- name: volume1
hostPath:
path: /local_dir
containers:
- name: demo1
image: busybox
command: ['sh','-c','sleep 5000']
volumeMounts:
- mountPath: /xx
name: volume1
- name: demo2
image: busybox
command: ['sh','-c','sleep 5000']
volumeMounts:
- mountPath: /yy
name: volume1
网络存储
#nfs作为存储 nfs:192.168.199.101:/share
#搭建nfs服务器:https://www.jianshu.com/p/e9891e29ec6b
vim nfs.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
run: nginx
name: nginx
spec:
volumes:
- name: nfs
nfs:
server: 192.168.199.101
path: "/share"
containers:
- image: nginx
name: nginx
volumeMounts:
- name: nfs
mountPath: "/usr/share/nginx/html"
#在pod中执行 df -hT 查看挂载情况
#iscsi作为存储 iscsi ip:192.168.199.100
#创建iscsi服务器:https://www.jianshu.com/p/6a93b116ce7f
#详情参考 https://kubernetes.io/docs/concepts/storage/volumes/#iscsi
每个节点安装iscsi
yum install -y iscsi*
修改iscsi的值
vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2019-04.cc.rhce:xx
#master上编辑文件
vim iscsi.yaml
apiVersion: v1
kind: Pod
metadata:
name: iscsipd
spec:
containers:
- name: iscsipd-rw
image: nginx
volumeMounts:
- mountPath: "/mnt/iscsipd"
name: iscsipd-rw
volumes:
- name: iscsipd-rw
iscsi:
targetPortal: 192.168.199.100:3260
iqn: iqn.2019-04.cc.rhce:disk
lun: 0
fsType: xfs
readOnly: false
#ceph作为存储(后续单独写)
网友评论