AWS Kubernetes 持久卷 EFS
AWS Kubernetes Persistent Volumes EFS
部署我的存储容器后,我在 AWS EKS 集群中部署了 EFS 文件系统并且 运行。
kubectl get pod -n storage
NAME READY STATUS RESTARTS AGE
nfs-client-provisioner-968445d79-g8wjr 1/1 Running 0 136m
当我尝试部署应用程序时,pod 未进入其挂起状态 0/1
同时 PVC 未限制其挂起状态。
这是实际应用程序部署后的日志。
I0610 13:26:11.875109 1 controller.go:987] provision "default/logs" class "efs": started
E0610 13:26:11.894816 1 controller.go:1004] provision "default/logs" class "efs": unexpected error getting claim reference: selfLink was empty, can't make reference
我正在使用 k8 1.20 版,你能帮我解决这个问题吗?
Kubernetes 1.20 停止传播 selfLink
。
有一个 workaround 可用,但它并不总是有效。
行后
spec:
containers:
- command:
- kube-apiserver
添加
- --feature-gates=RemoveSelfLink=false
然后重新应用 API 服务器配置
kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
此解决方法在版本 1.20(1.21 及更高版本)之后将不起作用,因为 selfLink
将被完全删除。
另一种解决方案是使用较新的 NFS 配置程序映像:
gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.0
部署我的存储容器后,我在 AWS EKS 集群中部署了 EFS 文件系统并且 运行。
kubectl get pod -n storage
NAME READY STATUS RESTARTS AGE
nfs-client-provisioner-968445d79-g8wjr 1/1 Running 0 136m
当我尝试部署应用程序时,pod 未进入其挂起状态 0/1
同时 PVC 未限制其挂起状态。
这是实际应用程序部署后的日志。
I0610 13:26:11.875109 1 controller.go:987] provision "default/logs" class "efs": started
E0610 13:26:11.894816 1 controller.go:1004] provision "default/logs" class "efs": unexpected error getting claim reference: selfLink was empty, can't make reference
我正在使用 k8 1.20 版,你能帮我解决这个问题吗?
Kubernetes 1.20 停止传播 selfLink
。
有一个 workaround 可用,但它并不总是有效。
行后
spec:
containers:
- command:
- kube-apiserver
添加
- --feature-gates=RemoveSelfLink=false
然后重新应用 API 服务器配置
kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
此解决方法在版本 1.20(1.21 及更高版本)之后将不起作用,因为 selfLink
将被完全删除。
另一种解决方案是使用较新的 NFS 配置程序映像:
gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.0