K8s 使用 NFS 动态制备 PV
安装 nfs-server
# 选择一台机器安装nfs服务,此处机器的IP为:192.168.1.29
# 安装 nfs-utils,每个节点都要安装nfs-utils程序,但只在nfs节点起server服务
yum install -y nfs-utils
systemctl enable --now nfs-server
systemctl status nfs-server
# 准备 nfs 的共享目录
ll /mnt/
mkdir -p /mnt/nfs_share
cat /etc/exports
chmod 777 /mnt/nfs_share
chown -R nobody:nobody /mnt/nfs_share
ls -lh /mnt/
# 编辑 nfs 配置文件
vim /etc/exports
cat /etc/exports
/mnt/nfs_share 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
# 应用配置
exportfs -arv
exportfs -v
systemctl restart nfs-server安装 nfs-subdir-external-provisioner
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=x.x.x.x \
--set nfs.path=/exported/path \
--namespace nfs-provisioner \
--create-namespace
helm list --all-namespaces使用
pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nfs-dyn-10m-pvc
spec:
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Mipod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nfs-dyn-pod
spec:
volumes:
- name: nfs-dyn-10m-vol
persistentVolumeClaim:
claimName: nfs-dyn-10m-pvc
containers:
- name: nfs-dyn-test
image: nginx:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
volumeMounts:
- name: nfs-dyn-10m-vol
mountPath: /tmp创建
kubectl create -f pvc.yaml
kubectl create -f pod.yamlLast updated