-
存储工程师创建存储类。
-
集群管理员维护集群中的存储资源。
-
用户或开发人员提交需求,(如在sts中只要在资源清单中编辑好volumeClaimTemplates中的需求,确保资源清单无误即可运行)这个过程不需要人工手动创建PVC。
NFS插件在Github中的项目地址:https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client/deploy
启动nfs并设为开机自启:systemctl start nfs && systemctl enable nfs
创建共享挂载目录:/data0/nfs/k8s
vi /etc/exports
/data0/nfs/k8s 10.26.*(rw,sync,no_root_squash,no_subtree_check)
rw:读/写权限
sync:数据同步写入内存和硬盘
no_root_squash:服务器允许远程系统以root特权存取该目录
no_subtree_check:关闭子树检查
发布:exportfs -avr
查看:showmount -e
修改资源清单(红色地方需要修改):
image: quay.io/external_storage/nfs-client-provisioner:v2.0.0 ##默认是latest版本
env:
– name: PROVISIONER_NAME
value: fuseim.pri/ifs ##这里的供应者名称必须和class.yaml中的provisioner的名称一致,否则部署不成功
– name: NFS_SERVER
value: k8s-nfs ##这里写NFS服务器的IP地址或者能解析到的主机名
– name: NFS_PATH
value: /data/volume/v1 ##这里写NFS服务器中的共享挂载目录(强调:这里的路径必须是目录中最后一层的文件夹,否则部署的应用将无权限创建目录导致Pending)
nfs:
server: k8s-nfs ##NFS服务器的IP或可解析到的主机名
path: /data/volume/v1 ##NFS服务器中的共享挂载目录(强调:这里的路径必须是目录中最后一层的文件夹,否则部署的应用将无权限创建目录导致Pending)
kind: Deployment
metadata:
name: nfs-client-provisioner
labels:
app: nfs-client-provisioner
# replace with namespace where provisioner is deployed
namespace: default
spec:
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: nfs-client-provisioner
template:
metadata:
labels:
app: nfs-client-provisioner
spec:
serviceAccountName: nfs-client-provisioner
containers:
– name: nfs-client-provisioner
image: quay.io/external_storage/nfs-client-provisioner:v2.0.0
volumeMounts:
– name: nfs-client-root
mountPath: /persistentvolumes
env:
– name: PROVISIONER_NAME
value: fuseim.pri/ifs
– name: NFS_SERVER
value: 10.26.27.222
– name: NFS_PATH
value: /data0/nfs/k8s
volumes:
– name: nfs-client-root
nfs:
server: 10.26.27.222
path: /data0/nfs/k8s