处理getting claim reference to claim selfLink was empty, can't make reference

68 阅读1分钟

环境说明: k8s版本:1.25.0 容器运行时:containerd 部署:elasticsearch-7

Pod data-es-cluster-0 状态pending 报错如下: Image.png registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2

定位和pv供应商有关, 查看nfs日志 kubectl logs -f nfs-provisioner-7df474b48c-6xjgn 报错如下:

I0227 07:40:57.430603       1 controller.go:1068] scheduleOperation[provision-kube-logging/data-es-cluster-0[1dac987b-f294-44ad-aa94-290f7bc11187]]
E0227 07:40:57.491439       1 controller.go:766] Unexpected error getting claim reference to claim "kube-logging/data-es-cluster-0": selfLink was empty, can't make reference

解决问题: 查到的处理方法有2种 查询到的处理方式有2种

  1. /etc/kubernetes/manifests/kube-apiserver.yaml 添加"--feature-gates=RemoveSelfLink=false"  
  2. 更新nfs的pod镜像至新版本registry.k8s.io/sig-storage/nfs-subdir-external-provisioner:v4.0.2 github.com/kubernetes-… (无法下载镜像的可私信我)

方法1实测不可行,修改yaml文件后 apiserver服务启动失败,kubelet报错找不到master节点

方法2实测有效,使用docker拉取镜像后导入containerd内,修改nfs的yaml镜像后 apply生效

nfs创建pvc成功日志如下

Image.png

查看es的pod状态

kubectl get pods -n kube-logging

image.png

可以看到es正常启动