头盔 EKS Fargate + EFS:PVC 未绑定,但 pod 重启有帮助
在一个 helm 图表中,我部署了一个 PersistentVolume (EFS):
apiVersion: v1
kind: PersistentVolume
metadata:
name: {{ .Release.Namespace }}-{{ .Release.Name }}
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: {{ .Values.pv.storageClassName }}
csi:
driver: efs.csi.aws.com
volumeHandle: {{ .Values.pv.volumeHandle | quote }}
claimRef:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
以及它的 PersistentVolumeClaim:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Release.Name }}
spec:
accessModes:
- ReadWriteMany
storageClassName: {{ .Values.pv.storageClassName }}
resources:
requests:
storage: 5Gi # Required but ignored in case of EFS
volumeName: {{ .Release.Namespace }}-{{ .Release.Name }}
并且 Pod 像往常一样使用 PVC:
volumeMounts:
- name: persistent-storage
mountPath: /efs
...
volumes:
- name: persistent-storage
persistentVolumeClaim:
claimName: {{ .Release.Name }}
当我安装 Helm 时,我遇到了一个浮动问题: Pod 在下一个事件中持续处于挂起状态:
警告 FailedScheduling 56s Fargate-scheduler Pod 在 Fargate 上不受支持:不支持卷:不支持持久存储,因为:PVC someRelease 未绑定
如果我要检查 PVC 的状态,它处于 Bound 状态,并且在 pod 重新启动后,它会按预期工作。当 PVC 尝试访问 PV 时,PV 似乎尚未创建,因此无法创建 pod。我应该以某种方式指定模板的顺序还是有其他解决方案?
Within one helm chart I deploy a PersistentVolume (EFS):
apiVersion: v1
kind: PersistentVolume
metadata:
name: {{ .Release.Namespace }}-{{ .Release.Name }}
spec:
capacity:
storage: 5Gi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: {{ .Values.pv.storageClassName }}
csi:
driver: efs.csi.aws.com
volumeHandle: {{ .Values.pv.volumeHandle | quote }}
claimRef:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
And PersistentVolumeClaim for it:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Release.Name }}
spec:
accessModes:
- ReadWriteMany
storageClassName: {{ .Values.pv.storageClassName }}
resources:
requests:
storage: 5Gi # Required but ignored in case of EFS
volumeName: {{ .Release.Namespace }}-{{ .Release.Name }}
And a pod uses the PVC as usual:
volumeMounts:
- name: persistent-storage
mountPath: /efs
...
volumes:
- name: persistent-storage
persistentVolumeClaim:
claimName: {{ .Release.Name }}
When I do helm install, I have a floating issue: pods continuously in a pending state with the next event:
Warning FailedScheduling 56s fargate-scheduler Pod not supported on Fargate: volumes not supported: persistent-storage not supported because: PVC someRelease not bound
If I would check state of the PVC, it's in Bound state and after a pod restart it works as expected. It looks like PV is not created yet at the moment when PVC tries to access it, hence the pod can't be created. Should I specify an order for the templates somehow or there is another solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试以下操作:
Try the following: