TreeviewCopyright © Pengfei Ni all right reserved, powered by aleen42
Volume插件扩展
Kubernetes已经提供丰富的Volume和Persistent Volume插件,可以根据需要使用这些插件给容器提供持久化存储。
如果内置的这些Volume还不满足要求,则可以使用FlexVolume实现自己的Volume插件。
FlexVolume
实现一个FlexVolume包括两个步骤
- 实现FlexVolume插件接口,包括
init/attach/detach/mount/umount等命令(可参考lvm示例和NFS示例) - 将插件放到
/usr/libexec/kubernetes/kubelet-plugins/volume/exec/<vendor~driver>/<driver>目录中
而在使用flexVolume时,需要指定卷的driver,格式为<vendor~driver>/<driver>,如下面的例子使用了kubernetes.io/lvm
apiVersion: v1
kind: Pod
metadata:
name: nginx
namespace: default
spec:
containers:
- name: nginx
image: nginx
volumeMounts:
- name: test
mountPath: /data
ports:
- containerPort: 80
volumes:
- name: test
flexVolume:
driver: "kubernetes.io/lvm"
fsType: "ext4"
options:
volumeID: "vol1"
size: "1000m"
volumegroup: "kube_vg"
注意:在v1.7版本,部署新的FlevVolume插件后需要重启Kubelet和 ControllerManager;而从v1.8开始不需要重启它们了。