k8s helm安装nfs共享存储

EKS集群可以使用EFS插件,自建集群如果对存储要求不是特别高,就可以使用NFS实现

一、安装NFS服务端

1、k8s node节点部署NFS服务

NFS服务端安装服务,可以用node节点,也可以独立一台node只做NFS存储

apt-get install nfs-kernel-server nfs-common -y

2、写入NFS服务配置

我使用/data/kube-nfs作为数据目录

mkdir /data/kube-nfs -p
echo "/data/kube-nfs *(insecure,rw,async,no_root_squash,no_subtree_check)" | sudo tee -a /etc/exports

3、加载 NFS 服务器配置

首次启动nfs可以不做,修改配置后不想重启服务可以执行exportfs -ra

4、启动 NFS 服务器

systemctl start nfs-kernel-server

5、设置 NFS 服务器开机启动

systemctl enable nfs-kernel-server

二、NFS客户端配置

2.1、node节点上都安装好客户端

apt-get install nfs-common -y

2.2、查看mount信息

nfs服务正常

$ showmount -e 192.168.31.111
Export list for 192.168.31.111:
/data/kube-nfs *

三、 k8s部署NFS

3.1、helm安装nfs

添加仓库的时候就会超时,国内只能使用代理了,我宿主机用了Clash x(接受局域网连接)

# 这是master上操作,具体看哪台机器有kubectl命令
export https_proxy=http://192.168.31.154:7890 http_proxy=http://192.168.31.154:7890

添加仓库后更新源,安装时注意更换为自己的nfs服务器地址和nfs路径

helm repo add nfs-subdir-external https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm repo update
# 在安装前取消上面的代理配置
unset https_proxy
unset http_proxy

helm install nfs-client nfs-subdir-external/nfs-subdir-external-provisioner --set nfs.server=192.168.31.111 --set nfs.path=/data/kube-nfs

3.2、处理镜像问题

处理都是在部署NFS节点的那台机器上操作

  • 方法1:从网络没问题的地方下载镜像后导入到安装节点上,helm安装时添加如下参数
 --set image.repository=registry.k8s.io/sig-storage/nfs-subdir-external-provisioner --set image.tag=v4.0.2
  • 方法2:宿主机配置proxy后拉取镜像
export https_proxy=http://192.168.31.154:7890 http_proxy=http://192.168.31.154:7890 all_proxy=socks5://192.168.31.154:7890
# 代理配置好以后拉取镜像
ctr images pull registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2
# 拉取后取消代理
unset http_proxy https_proxy all_proxy
  • 方法3:宿主机containerd配置代理
mkdir /etc/systemd/system/containerd.service.d/
cat >/etc/systemd/system/containerd.service.d/http-proxy.conf<<EOF
[Service]
Environment="HTTP_PROXY=http://192.168.31.154:7890"
Environment="HTTPS_PROXY=http://192.168.31.154:7890"
Environment="NO_PROXY=localhost,127.0.0.1,localaddress,.localdomain.com,kubernetes.default.svc.cluster.local,harbor.baga.live,10.0.0.0/8,192.168.0.0/16,172.16.0.0/12"
EOF
# 
systemctl daemon-reload
systemctl restart containerd

pod启动成功
在这里插入图片描述

四、验证存储可用性

创建测试pvc

cat <<EOF | tee test-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: test-claim
  annotations:
    volume.beta.kubernetes.io/storage-class: "nfs-client"
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Mi
EOF

# 状态Bound说明没问题
root@k8s-master-100:~# kubectl apply -f  test-pvc.yaml
persistentvolumeclaim/test-claim created
root@k8s-master-100:~# kubectl get pvc
NAME         STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-claim   Bound    pvc-d166139e-3436-4dbb-b04f-d8c7a2c88c08   1Mi        RWX            nfs-client     4s
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值