美文网首页
k8s集群添加nfs动态storage class

k8s集群添加nfs动态storage class

作者: 国服最坑开发 | 来源:发表于2022-05-12 16:58 被阅读0次

0x00 TL;DR

今天在使用Helm安装MeterSphere时, 一直卡在pvc 无法绑定, 然后研究了一下pvc相关话题.
结论是: 在K8s中安装 基于NFS的 Storage Classes 后, 可以自动绑定pvc, 无需配置pv. 
这个过程, 又叫动态pvc.

0x01 安装NFS

在独立于K8s的任一台主机上, 安装nfs 服务, 指定相关目录,提供对外服务:
yum install nfs-utils -y

配置目录暴露:  /data/nfs
vim /etc/exports
/data/ms 10.1.1.0/24(rw,sync,no_root_squash)

0x02 安装NFS驱动

参考文档: https://kubernetes.io/docs/concepts/storage/storage-classes/#nfs

源码仓库: https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner

使用helm 安装:  按需添加第一步中的IP和目录

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=/data/nfs

安装完成后, 查看 sc

k get sc
NAME         PROVISIONER                                     RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
nfs-client   cluster.local/nfs-subdir-external-provisioner   Delete          Immediate           true                   4h55m

然后, 添加一个自定义的 sc:

kind: StorageClass
metadata:
  name: default
  namespace: default
provisioner: cluster.local/nfs-subdir-external-provisioner
parameters:
  server: 10.1.1.123
  path: /data/nfs
  readOnly: "false"

完成后查看sc:

NAME         PROVISIONER                                     RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
default      cluster.local/nfs-subdir-external-provisioner   Delete          Immediate           false                  13m
nfs-client   cluster.local/nfs-subdir-external-provisioner   Delete          Immediate           true                   4h55m

0x03 验证

提交一个pvc定义

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: test-pvc
spec:
  storageClassName: default
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 1Mi

查看状态:

k get pvc
NAME                       STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-pvc                   Bound    pvc-772109e2-0b47-4525-9022-a1c6c6e265f3   1Mi        RWX            default        2s

自动绑定成功.

0x04 相关知识点笔记

  • 使用场景: 配合 volumeClaimTemplates 使用, 效果更佳

  • 在deploy 中指定域名IP绑定, 解决镜像域名无法解析的问题

   spec:
      hostAliases:
      - ip: "127.0.0.1"
        hostnames:
        - "foo.local"

相关文章

网友评论

      本文标题:k8s集群添加nfs动态storage class

      本文链接:https://www.haomeiwen.com/subject/bpjsurtx.html