存储卷
docker可以使容器上的目录与节点上的目录做关联,达到持久性
- k8s集群的存储卷
kubectl explain pods.spec.volumes 查看k8s支持的存储卷 - emptyDir
## pod-vol-demo.yaml apiVersion: v1 kind: Pod metadata: name: pod-demo namespace: default labels: app:myapp spec: containers: - name: httpd image: busybox:latest imagePullPolicy: IfNotPresent command: ["/bin/httpd","-f","-h /data/web/html"] ports: - name: http containerPort: 80 volumeMounts: ###存储卷挂载点说明 - name: html ##挂载存储卷名称 mountPath: /data/web/html/ ##挂载路径 - name: busybox image: busybox:latest imagePullPolicy: IfNotPresent volumeMounts: - name: html mountPath: /data/ command: - "/bin/sh" - "-c" - "while tre;do echo ${date} >> /data/index.html; sleep 2;done" volumes: - name: html emptyDir: {} ## 存储卷类型的属性 ,映射键值使用磁盘空间,生命周期同pod,pod删除数据也删除了。- hostPath

- hostPath
#pod-hostpath-vol.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-vol-hostpath
namespace: default
spec:
containers:
- name: myapp
image: myapp:v1
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html
volumes:
- name: html
hostPath:
path: /data/pod/volumes1
type: DirectoryOrCreate ###不存在就创建
- nfs
apiVersion: v1
kind: Pod
metadata:
name: pod-vol-nfs
namespace: default
spec:
containers:
- name: myapp
image: myapp:v1
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html
volumes:
- name: html
nfs:
path: /data/volumes ##nfs 服务节点提供的目录
server: nfs.server ## 提供nfs服务的节点
- pvc pv 架构


- 查看pvc使用方法:
kubectl explain pods.spec.volumes.persistenVolumeClaim
kubectl explain pvc - 把nfs存储先定义为pv, pv属于集群级别资源,不能定义在名称空间中
#pv-demo.yaml
apiVersion: v1
kind: PersistentVolume
metadata;
name: pv001
labels:
name: pv001
spec:
nfs:
path: /data/volumes/v1
server: nfs.server
acdessModes: ["ReadWriteMany","ReadWriteOnce"] ##读写模型,多路只读,单路只读
capacity:
storage: 2Gi
---
apiVersion: v1
kind: PersistentVolume
metadata;
name: pv002
labels:
name: pv002
spec:
nfs:
path: /data/volumes/v2
server: nfs.server
acdessModes: ["ReadWriteMany","ReadWriteOnce"] ##读写模型,多路只读,单路只读
capacity:
storage: 5Gi
---
apiVersion: v1
kind: PersistentVolume
metadata;
name: pv003
labels:
name: pv003
spec:
nfs:
path: /data/volumes/v3
server: nfs.server
acdessModes: ["ReadWriteMany","ReadWriteOnce"] ##pv读写模型,多路只读,单路只读
capacity:
storage: 20Gi ##pv指定大小
kubectl apply -f pv-demo.yaml
kubectl get pv
RECLAIM_POLICY 回收策略

- pvc 创建, 有名称空间和pod在同一个名称空间下
# pod-vol-pvc.yaml
apiVersion: v`
kind: PersistentVolumeClaim
metadata:
name: mypvc
namespace: default
spec:
accessModes: ["ReadWriteMany"] ##在pv的包含下
resources:
requests: ###要求的存储空间,不能大于pv
storage: 6Gi ##大于6Gi的pv会自动绑定
---
apiVersion: v1
kind: Pod
metadata:
name: pod-vol-pvc
namespace: default
spec:
containers:
- name: myapp
image: myspp:v1
volumeMounts:
- name: html
mountPath: /usr/share/nginx/html/
vulumes:
- name: html
persistentVolumeClaim:
claimName: mypvc
1035

被折叠的 条评论
为什么被折叠?



