k8s存储
时间:2020-02-07 15:30:26
收藏:0
阅读:61
k8s存储
docker容器是有生命周期的。
Volume:
emptyDir(空目录):类似docker数据持久化的:docker manager volume
[root@master yaml]# vim emptyDir.yaml
apiVersion: v1
kind: Pod
metadata:
name: producer-consumer
spec:
containers:
docker容器是有生命周期的。
Volume:
emptyDir(空目录):类似docker数据持久化的:docker manager volume
[root@master yaml]# 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
- mountPath: /producer_dir
-
image: busybox
name: consumer
volumeMounts:- mountPath: /consumer_dir
name: shared-volume
args: - /bin/sh
- -c
- cat /consumer_dir/hello; sleep 30000
volumes:
- mountPath: /consumer_dir
- name: shared-volume
emptyDir: {}
[root@master yaml]# kubectl apply -f emptyDir.yaml
[root@master yaml]# kubectl logs producer-consumer consumer
hello k8s
[root@node02 ~]# docker ps
[root@node02 ~]# docker inspect
使用场景:在同一个Pod里,不同的容器,共享数据卷。
如果容器被删除,数据仍然存在,如果pod被删除,数据也会被删除。
hostPath Volume:类似docker 数据持久化的:bind mount
如果Pod被删除,数据会被保留,相比较emptyDir要好一点。不过一旦host崩溃,hostPath也无法访问。
docker或者k8s集群本身的存储会采用hostPath这种方式。
Persistent Volume | PV(持久卷)提前做好的,数据持久化的数据存放目录。
Psesistent Volume Claim|PVC(持久卷使用声明|申请)
基于NFS服务来做的PV
[root@master ~]# yum install -y nfs-utils rpcbind
[root@master ~]# mkdir /nfsdata
[root@master ~]# vim /etc/exports
/nfsdata *(rw,sync,no_root_squash)
[root@master ~]# systemctl start rpcbind
[root@master ~]# systemctl start nfs-server.service
[root@master ~]# showmount -e
[root@master yaml]# vim nfs-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: test-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: nfs
nfs:
path: /nfsadta/pv1
server: 192.168.2.10
[root@master yaml]# kubectl apply -f nfs-pv.yaml
[root@master yaml]# kubectl get pv
accessModes:
- ReadWriteOnce: 能以读-写mount到单个节点。
- ReadWriteMany: 能以读-写mount到多个节点。
- ReadOnlyOnce:能以只读的方式mount到单个节点。
persistentVolumeReclaimPolicy:(PV存储空间的回收策略是什么)
Recycle:自动清除数据。
Retain:需要管理员手动回收。
Delete:云存储专用。
PV和PVC相互的关联:通过的市storageclassname && accessmodes。
[root@master yaml]# vim nfs-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
spec:
accessModes:- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: nfs
[root@master yaml]# kubectl apply -f nfs-pvc.yaml
[root@master yaml]# kubectl get pvc
- ReadWriteOnce
[root@master yaml]# kubectl get pv
原文:https://blog.51cto.com/13997536/2469523
评论(0)