【问题标题】:AWS Kubernetes Persistent Volumes EFSAWS Kubernetes 持久卷 EFS
【发布时间】:2021-08-27 13:14:31
【问题描述】:

在部署我的存储 pod 启动并运行后,我已在 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 版,请有人帮我解决这个问题。

【问题讨论】:

  • SelfLink 在 1.20 中被禁用并且不被 Kubernetes 传播。有一个 workaround 可用,但它并不总是有效。请在您的原始帖子中包含您的清单。
  • 是的,我现在解决了这个问题,谢谢
  • 太棒了!我把我的评论变成了答案。如果您认为它有用,请考虑accepting it,也许还可以投票,让社区知道这是一个很好的解决方案。

标签: kubernetes amazon-eks persistent-volumes amazon-efs


【解决方案1】:

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

【讨论】:

  • 是的,你的权利我已经使用 o/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.0 图像来解决问题。
猜你喜欢
  • 2019-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-06
  • 2018-12-09
  • 1970-01-01
  • 2022-01-24
  • 2018-02-17
相关资源
最近更新 更多