如何解决由于找不到PersistentVolumeClaim,具有Fargate窗格状态的AWS EKS处于挂起状态
我已经使用以下命令通过Fargate和alb-ingress-access部署了EKS集群:
eksctl create cluster --name fargate-cluster --version 1.17 --region us-east-2 --fargate --alb-ingress-access
还创建了Fargate命名空间。
正在部署的应用程序具有四个容器,分别是mysql,nginx,redis和web。
YAML文件已应用于正确的名称空间。
我遇到的问题是,在获得豆荚状态后,应用YAML文件后,我会出现以下状态:
NAMESPACE NAME READY STATUS RESTARTS AGE
flipkicks flipkicksdb-7669b44bbb-xww26 0/1 Pending 0 112m
flipkicks flipkicksredis-74bbf9bd8c-p59hb 1/1 Running 0 112m
flipkicks nginx-5b46fd5977-9d8wk 0/1 Pending 0 112m
flipkicks web-56666f5d8-64w4d 1/1 Running 0 112m
MySQL和Nginx Pod进入待处理状态。两者的部署YAML都具有以下volumeMounts值:
MYSQL
volumeMounts:
- mountPath: /var/lib/mysql
name: mysql-db
NGINX
volumeMounts:
- mountPath: "/etc/nginx/conf.d"
name: nginx-conf
- mountPath: "/var/www/html"
name: admin-panel
两个吊舱的kubectl describe命令的事件部分的输出为:
MYSQL
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> fargate-scheduler Pod not supported on Fargate: volumes not supported: mysql-db not supported because: PVC mysql-db not bound
NGINX
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> fargate-scheduler Pod not supported on Fargate: volumes not supported: admin-panel is of an unsupported volume Type
在理解此问题以及如何解决该问题方面将提供任何帮助,我们将非常感谢。
解决方法
由于您的NGINX和MYSQL Pod需要volumeMounts
,因此您将需要一个PersistentVolumeClaim
,这是从PersistentVolume
资源进行存储的请求。然后,您的广告连播就可以将声明作为批量使用,有关更多信息,请参见Kubernetes Persistent Volumes。
在引入Aug 17,2020的AWS EFS CSI driver之前,EKS Fargate一直不支持持久存储。
您将需要部署AWS EFS CSI驱动程序并更新清单以部署PersistentVolume,PersistentVolumeClaim,并使您的Pod将该声明用作卷。我建议从Amazon EFS CSI driver指南开始,将CSI驱动程序部署到EKS Fargate集群中,并更新清单以匹配here提供的示例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。