NFS动态存储卷
- 系统要求:CentOS
NFS 允许系统将其目录和文件共享给网络上的其他系统。通过 NFS,用户和应用程序可以访问远程系统上的文件,就象它们是本地文件一样。
- 在集群每一个节点安装
- 创建共享目录
mkdir -p /u01/prod
- 编辑
/etc/exports
文件添加需要共享目录,每个目录的设置独占一行,编写格式如下:
NFS共享目录路径 客户机IP段(参数1,参数2,...,参数n)
- 例如:
/u01 192.168.1.1/16(rw,sync,insecure,no_subtree_check,no_root_squash)
- 注1:尽量指定IP段最小化授权可以访问NFS 挂载的资源的客户端
- 注2:经测试参数insecure必须要加,否则客户端挂载出错mount.nfs: access denied by server while mounting
- 配置完成后,您可以在终端提示符后运行以下命令来启动 NFS 服务器:
sudo systemctl enable nfs-server
sudo systemctl start nfs-server
- 到客户机上执行showmount命令进行检查
helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
- 在集群每一个节点安装
nfs-utils
sudo yum install -y nfs-utils
- 在任意一个master节点执行下面helm命令,安装
nfs-client-provisioner
helm install c7n/nfs-client-provisioner \--set rbac.create=true \--set persistence.enabled=true \--set storageClass.name=nfs-provisioner \
--set persistence.nfsServer=127.0.0.1 \
--set persistence.nfsPath=/u01/prod \
提供NFS服务的主机IP地址或域名
- 新建文件,粘贴以下内容:
kind: Pod
apiVersion: v1
metadata:
name: write-pod
spec:
containers:
- name: write-pod
image: busybox
command:
- "/bin/sh"
args:
- "-c"
volumeMounts:
- name: nfs-pvc
mountPath: "/mnt"
restartPolicy: "Never"
volumes:
- name: nfs-pvc
claimName: myclaim
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: myclaim
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs-provisioner
resources:
requests:
storage: 1Mi
- 部署测试用例
kubectl apply -f write-pod.yaml
- 验证是否正常
$ kubectl get po
NAME READY STATUS RESTARTS AGE
write-pod 0/1 Completed 0 8s
pod状态为Completed
则为正常,若长时间为ContainerCreating
状态则为不正常,请确认安装操作步骤是否正确。