k8s使用nfs报错selfLink was empty, can't make reference

我们重新部署了k8s环境,centos7环境下使用的k8s1.27.0这个版本,今天在部署k8s上使用storageclass资源资源部署nfs使用时,POD挂载nfs资源报错提示“unexpected error getting claim reference: selfLink was empty, can't make reference”

微信截图_20240110162137.png

出现上述这个问题是因为在k8s1.21之后的版本移除了selfLink机制,kube-apiserver的解决方法是作为–feature-gates=RemoveSelfLink=false参数传递,这种方式一直维持到k8s1.21这个版本,添加方式可以查看https://sulao.cn/post/826.html这个笔记的最后

在高版本的k8s集群中解决该问题,直接替换nfs provisioner的deploy的镜像即可,整个我都复制过来了。

cat nfs-provisioner.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nfs-client-provisioner
  labels:
    app: nfs-client-provisioner
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nfs-client-provisioner
  strategy:
    type: Recreate
  selector:
    matchLabels:
      app: nfs-client-provisioner
  template:
    metadata:
      labels:
        app: nfs-client-provisioner
    spec:
      serviceAccountName: nfs-client-provisioner
      containers:
        - name: nfs-client-provisioner
          image: k8s.dockerproxy.com/sig-storage/nfs-subdir-external-provisioner:v4.0.2 #修改这里镜像为这个即可
          volumeMounts:
            - name: nfs-client-root
              mountPath: /persistentvolumes
          env:
            - name: PROVISIONER_NAME
              value: nfs-storage  #provisioner名称,请确保该名称与 nfs-StorageClass.yaml文件中的provisioner名称保持一致
            - name: NFS_SERVER
              value: 192.168.137.10   #NFS Server IP地址
            - name: NFS_PATH  
              value: /data/nas3    #NFS挂载卷
      volumes:
        - name: nfs-client-root
          nfs:
            server: 192.168.137.10  #NFS Server IP地址
            path: /data/nas3     #NFS 挂载卷

然后使用k8s.dockerproxy.com/sig-storage/nfs-subdir-external-provisioner:v4.0.2这个镜像以后POD能够正常挂载nfs存储了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/961.html