Kbernetes(k8s)helm 搭建 PV PVC 动态存储卷
一、集群信息
- 方法因人而异,但大同小异,以下是我的部署方法。
1.1、 主机信息
主机名 | ip地址 | 描述 | 核心 | 内存 |
---|---|---|---|---|
node-01 | 192.168.8.131 | master 节点 | 2核 | 8G |
node-02 | 192.168.8.132 | node 节点 | 2核 | 8G |
node-03 | 192.168.8.133 | node 节点 | 2核 | 8G |
node-04 | 192.168.8.134 | node 节点 | 2核 | 8G |
1.2、版本说明
服务 | 版本 |
---|---|
helm | 3.1.1 |
Kubernetes | 1.17.3 |
nfs-client-provisioner | 1.2.9 |
二、部署 NFS 服务
2.1、 安装 NFS 与 rpcbind 服务
# 创建 NFS 存储目录
mkdir -p /data/NFS
# 安装nfs服务
yum -y install nfs-utils rpcbind
# 修改配置文件
echo "/data/nfs *(rw,sync,no_root_squash,no_subtree_check)" > /etc/exports
# 启动服务
systemctl start nfs && systemctl start rpcbind
# 设置开机启动
systemctl enable nfs-server && systemctl enable rpcbind
2.2、集群节点安装 nfs
- 重点全部节点都需要安装 nfs-utils 安装了即可不需要配置,否则节点无法挂载 PV
# 安装nfs服务
yum -y install nfs-utils
三、部署 nfs-client-provisioner
3.1、 创建名称空间
- 创建一个 monitoring 名称空间,将 nfs-client-provisioner 放在这个名称空间上
kubectl create ns nfs
3.2、获取 nfs-client-provisioner
- 项目地址:https://hub.helm.sh/charts/stable/nfs-client-provisioner
- 修改 quay.io 镜像源到七牛云否则拉镜像太慢
# 下载到本地,默认拉取指定版本
helm pull stable/nfs-client-provisioner --version 1.2.9
# 解压
tar xvf nfs-client-provisioner-*.tgz
# 将 quay.io 替换为 七牛云镜像
sed -i "s@quay.io@quay-mirror.qiniu.com@g" `grep -rl "quay.io" ./nfs-client-provisioner`
3.3、使用 helm 安装 nfs-client-provisioner
- nfs.server 参数指定 nfs 服务地址
- nfs.path 参数指定 nfs 对应目录
- storageClass.name 用于 pv 与 pvc 绑定名称
- storageClass.reclaimPolicy 回收策略,默认是删除
- 安装到 nfs 命名空间
# 安装 nfs-client-provisioner
helm install nfs-storage -n nfs --set nfs.server=192.168.8.131 --set nfs.path=/data/nfs nfs-client-provisioner
# 上面方法就可以了,也可以用下面方法
sed -i "s@server:@server: 192.168.8.131@g" nfs-client-provisioner/values.yaml
sed -i "s@path: /ifs/kubernetes@path: /data@g" nfs-client-provisioner/values.yaml
3.4、查看运行 Pod 状态
[root@Node-01 ~]# kubectl get pod -n nfs
NAME READY STATUS RESTARTS AGE
nfs-storage-nfs-client-provisioner-56cc787c5b-qwcq8 1/1 Running 0 30s
四、查看动态 PVC
4.1、 创建 PVC
- storageClassName: "nfs-client" 必须指定为这个,因为 nfs-client-provisioner 就是 nfs-client 名称
- 如果需要修改,请直接修改 values.yaml 或者安装时候使用 --set storageClass.name=需要的
# 创建 aka-pvc.yaml 测试文件
cat > aka-pvc.yaml << EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: aka-test
spec:
# 默认是 nfs-client
storageClassName: "nfs-client"
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
EOF
# 应用配置
kubectl apply -f aka-pvc.yaml
4.2、查看 PV 与 PVC
[root@Node-01 ~]# kubectl get pv,pvc
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/pvc-e4b50319-6529-4358-8975-bdc5be5faa38 1Gi RWX Delete Bound default/aka-pvc-test nfs-client 101s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/aka-pvc-test Bound pvc-e4b50319-6529-4358-8975-bdc5be5faa38 1Gi RWX nfs-client 101s
4.3、查看挂载目录
- 每创建一个动态 pvc 配置文件,创建成功后都可以在 nfs 目录看到对应内容
[root@Node-01 ~]# ls /data/nfs
default-aka-pvc-test-pvc-e4b50319-6529-4358-8975-bdc5be5faa38
版权声明:
作者:Akiraka
链接:https://www.akiraka.net/kubernetes/407.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
Kbernetes(k8s)helm 搭建 PV PVC 动态存储卷
一、集群信息
方法因人而异,但大同小异,以下是我的部署方法。
1.1、 主机信息
主机名
ip地址
描述
核心
内存
node-01
192.168.8.131
master 节点
2……
文章目录
关闭