1. 空白卷(EmptyDir):
- 空白卷是最简单的卷类型之一,它在 Pod 创建时被初始化,可以用于在同一 Pod 的不同容器之间共享数据。
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: container1
image: nginx
volumeMounts:
- name: myvolume
mountPath: /data
- name: container2
image: busybox
volumeMounts:
- name: myvolume
mountPath: /data
volumes:
- name: myvolume
emptyDir: {}
2. 主机路径卷(HostPath):
- 主机路径卷允许将节点上的文件或目录挂载到 Pod 中。这对于需要与宿主节点共享数据的应用程序非常有用。
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mycontainer
image: nginx
volumeMounts:
- name: myvolume
mountPath: /data
volumes:
- name: myvolume
hostPath:
path: /path/on/host
3. PersistentVolume(PV)和 PersistentVolumeClaim(PVC):
- PersistentVolume 是集群中独立于 Pod 的存储资源,它可以由集群管理员预先配置。PersistentVolumeClaim 是对 PersistentVolume 的请求,Pod 通过 PersistentVolumeClaim 声明所需的存储资源。
apiVersion: v1
kind: PersistentVolume
metadata:
name: mypv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /path/on/host
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
4. 存储类(StorageClass):
- 存储类是定义 PersistentVolume 的动态配置的对象。它允许集群管理员指定存储卷的类型、提供商和其他参数。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast
provisioner: kubernetes.io/fast
5. CSI(Container Storage Interface)卷:
- CSI 是一种存储卷插件的标准接口,它允许存储提供商以独立于 Kubernetes 的方式实现存储插件。
6. Projected 卷:
- Projected 卷允许将多个卷投影到同一路径上。它支持 ConfigMap、Secret、Downward API 和 ServiceAccount。
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mycontainer
image: nginx
volumeMounts:
- name: myvolume
mountPath: /data
volumes:
- name: myvolume
projected:
sources:
- secret:
name: mysecret
- downwardAPI:
items:
- path: "labels"
fieldRef:
fieldPath: metadata.labels
7. Local 卷:
- Local 卷允许将本地存储设备挂载到 Pod 中,用于要求对存储设备有更多控制的场景。
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: mycontainer
image: nginx
volumeMounts:
- name: myvolume
mountPath: /data
volumes:
- name: myvolume
local:
path: /path/on/node
这些是一些关于 Kubernetes 中卷的基本概念和用法。根据应用程序的需求,你可以选择适当类型的卷,并配置相应的存储资源。存储在 Kubernetes 中是一个广泛涉及的主题,涉及到各种存储后端和插件,以满足不同场景下的需求。
转载请注明出处:http://www.zyzy.cn/article/detail/9740/Kubernetes