1、NFS
1.1 服务端
# 服务端安装
apt install -y nfs-kernel-server
# 写入共享存储目录
cat >> /etc/exports << EOF
/data/kubernetes/nfs *(rw,no_root_squash)
EOF
# 重启
systemctl restart nfs-kernel-server
# 开机自启
systemctl enable nfs-kernel-server
# 查看挂载目录
showmount -e
1.2 客户端
# 客户端安装
apt install -y nfs-common
# 重启
systemctl restart nfs-common
# 重启如出现以下错误信息
Failed to restart nfs-common.service: Unit nfs-common.service is masked.
# 删除nfs-common.service文件
rm -rf /lib/systemd/system/nfs-common.service
# 加载配置重启
systemctl daemon-reload && systemctl restart nfs-common
# 创建一个共享目录
mkdir -p /data/nfs
# 挂载
mount -t nfs 10.10.10.60:/data/kubernetes/nfs /data/nfs
# df -h 验证
10.10.10.60:/data/kubernetes/nfs 97G 13G 80G 14% /data/nfs
2、nfs动态供给
2.1 添加 Helm 源
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner
2.2 创建命名空间
kubectl create ns nfs-system
2.3 下载charts文件及解压
helm pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
tar -xvf nfs-subdir-external-provisioner*.tgz
2.4 自定义配置
image:
repository: registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
nfs:
server: 10.10.10.60 # NFS服务器的地址
path: /data/kubernetes/nfs # NFS 导出的共享数据目录
storageClass:
defaultClass: false #是否设置为默认的StorageClass,有需要的可以设置为true
name: nfs-sc # torageClass的名称
2.5 安装及验证
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner -f nfs-subdir-external-provisioner/values.yaml -n nfs-system
kubectl get sc