环境说明: k8s版本:1.25.0 容器运行时:containerd 部署:elasticsearch-7
Pod data-es-cluster-0 状态pending
报错如下:
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种
- /etc/kubernetes/manifests/kube-apiserver.yaml 添加"--feature-gates=RemoveSelfLink=false"
- 更新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成功日志如下
查看es的pod状态
kubectl get pods -n kube-logging
可以看到es正常启动