K8s集群安装默认存储(StorageClass)


方式一:使用NFS网络文件服务器创建

参考:K8s 使用 nfs-client-provisioner

方式二:使用chart进行安装

1
helm3 install nfs-external-provisioner /home/nfs-subdir-external-provisioner-4.0.13.tgz --set nfs.server=172.17.89.46,nfs.path=/data/nfsshare,image.repository=registry-product.c2cloud.cn/library/nfs-provisioner,image.tag=v4.0.2 -n kube-system

设置默认StorageClass

1
kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
遇到的问题:
  1. unexpected error getting claim reference: selfLink was empty, can’t make reference 导致pvc无法绑定挂载

    1
    2
    1.20.4版本,解决方法
    /etc/kubernetes/manifests/kube-apiserver.yaml 添加"--feature-gates=RemoveSelfLink=false"
  2. nfs挂载错误wrong fs type, bad option, bad superblock

    1
    2
    3
    4
    5
    6
    7
    8
    mount: wrong fs type, bad option, bad superblock on 125.64.41.244:/data/img,
           missing codepage or helper program, or other error
           (for several filesystems (e.g. nfs, cifs) you might
           need a /sbin/mount.<type> helper program)
           In some cases useful info is found in syslog - try
           dmesg | tail  or so
    根据错误提示,查看/sbin/mount.<type>文件,果然发现没有/sbin/mount.nfs的文件,安装nfs-utils即可
    > yum install -y nfs-utils