如果我创建此广告连播:
apiVersion: v1
kind: Pod
metadata:
name: dsm-manager
spec:
containers:
- name: dsm-manager
image: ******
imagePullPolicy: Always
command:
- /sbin/init
volumeMounts:
- mountPath: /srv/project/DSMManager/snapshots
name: dsm-snapshot-storage
volumes:
- name: dsm-snapshot-storage
awsElasticBlockStore:
volumeID: aws://us-west-2b/vol-43e44482
fsType: ext4
imagePullSecrets:
- name: dockerregistrykey
它始终有效,但是如果我删除它并重新创建它就会陷入状态' CreatingContainer'。看事件产量:
- 无法为pod安装卷" dsm-manager_default":超时等待卷状态
- 错误同步窗格,跳过:超时等待卷状态
如果我删除了pod并重新创建它,无论我做什么都会发生同样的事情。但是,如果我将卷附加到某个实例,然后通过aws cli将其分离,则创建它可以找到的pod。我想知道音量是否正确分离。现在我只是有一个奇怪的工作流程,将卷附加到随机实例,然后在更新容器图像时将其分离
答案 0 :(得分:5)
这可能是由Kubernetes EBS管理代码中的错误引起的,应由PR #14493修复。总而言之,未验证设备块缓存导致kubelet认为磁盘在实际分离后仍然附着。
答案 1 :(得分:0)
我注意到运行Kubernetes和EBS volumes stuck attaching的一般问题。 EBS的问题似乎比Kubernetes更多。当“物理”EBS卷卡在附加状态时,在重新启动主机之前,您无法重新安排容器。我最近参加了一个集装箱会议,当时Nordstrom的团队是Kubernetes的大用户正在讨论这个问题。
您最好的选择可能是在AWS上使用本地存储作为容器卷,因为从本地Ec2存储创建和安装卷不会像EBS那样受到“卡住附着”问题的影响。遗憾!