之前在学习 storageclass 的时候使用过 nfs-client 的外部存储,原文地址:Kubernetes-StorageClass-动态供给

当时有个 bug,需要修改 apiserver 静态 pod 的配置,今天我使用 1.24.0 的 k8s 集群部署时,仍然有这个 bug,根据当时的方法已经无法解决了,所有找了另一个 nfs 外部存储的方法,项目地址:https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner 大概看了一下,和之前的如出一辙,就是迁移了继续更新而已。

每个 k8s 节点都要安装 nfs-utils

NFS 搭建

yum -y install nfs-utils rpcbind && \
mkdir /nfsdata && \
echo "nfsdata *(rw,no_root_squash,sync)" >> /etc/exports && \
exportfs -r && \
systemctl enable --now rpcbind nfs-server

HELM 部署

helm 安装参考 Kubernetes-Helm

添加 helm 仓库

helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/

直接部署nfs-client

helm --install nfs-client nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
     --set nfs.server=192.168.1.11 \
     --set nfs.path=/nfsdata \
     --set replicaCount=3 \
     --set image.repository=willdockerhub/nfs-subdir-external-provisioner \
     --set storageClass.name=nfs-client \
     --set storageClass.defaultClass=true      # 开启默认使用的nfs的storageclass

验证查看

$ kubectl get po
NAME                                                         READY   STATUS    RESTARTS   AGE
nfs-client-nfs-subdir-external-provisioner-cbdd99cbc-d55wc   1/1     Running   0          10s
nfs-client-nfs-subdir-external-provisioner-cbdd99cbc-jvx2f   1/1     Running   0          10s
nfs-client-nfs-subdir-external-provisioner-cbdd99cbc-mc8dk   1/1     Running   0          10s
$ kubectl get sc -o name
storageclass.storage.k8s.io/nfs-client

验证请跳回 Kubernetes-StorageClass-动态供给 ,我实在不想再写一遍验证了。

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0