OpenShift下一代无法装载永久卷

OpenShift下一代无法装载永久卷,openshift,openshift-nextgen,Openshift,Openshift Nextgen,我正试图在下一代OpenShift Online上安装一个应用程序,我需要在运行时存储一个小文件,并在启动时再次读取。文件的内容会更改,因此我不能简单地将其添加到源代码中 我的项目已经启动并运行,我所需要的只是持久性存储。因此,我打开Web控制台,单击Browse->Storage,它显示没有可用的卷。如果我转到Browse->Deployments并尝试附加卷,情况也会一样 因此,我通过cli登录并发出以下命令: oc volume dc/mypingbot--add--type=pvc--c

我正试图在下一代OpenShift Online上安装一个应用程序,我需要在运行时存储一个小文件,并在启动时再次读取。文件的内容会更改,因此我不能简单地将其添加到源代码中

我的项目已经启动并运行,我所需要的只是持久性存储。因此,我打开Web控制台,单击
Browse->Storage
,它显示没有可用的卷。如果我转到
Browse->Deployments
并尝试附加卷,情况也会一样

因此,我通过cli登录并发出以下命令:

oc volume dc/mypingbot--add--type=pvc--claim name=data1--claim size=1Gi

现在我的卷出现在存储部分和解聚部分。我使用Web控制台将其附加到部署配置,并将其装载点设置为
/data1

部署过程现在需要一段时间,然后失败,出现以下两个错误:

Error syncing pod, skipping: Could not attach EBS Disk "aws://us-east-1c/vol-ba78501e": Error attaching EBS volume: VolumeInUse: vol-ba78501e is already attached to an instance status code: 400, request id: 

Unable to mount volumes for pod "mypingbot-18-ilklx_mypingbot(0d22f712-58a3-11e6-a1a5-0e3d364e19a5)": Could not attach EBS Disk "aws://us-east-1c/vol-ba78501e": Error attaching EBS volume: VolumeInUse: vol-ba78501e is already attached to an instance status code: 400, request id: 

我缺少什么?

EBS卷一次只能连接到一个节点。AWS认为它目前被连接到其他地方。您是否在其他吊舱或部署中使用它?或者您的部署正在进行同样需要卷的构建(在pod中)?当前关于在一个节点上装载的限制意味着您不能在已扩展到多个副本的应用程序上使用卷。这是因为第二个实例可能会落在不同的节点上。您是否扩展了应用程序?@GrahamDumpleton我确实执行了上述操作,并且应用程序只使用了一个副本。但是,我注意到,如果我杀死了正在运行的pod,那么部署就会正常工作,因此在创建persistentVolumeClaim的方式中可能存在一些错误(因为如果我ssh到当前正在运行的pod,我就看不到我的卷已装入)。尽管如此,即使在我成功地用卷部署pod之后,每次我在Github上推送新代码,系统都会提取代码,构建代码并进行新的部署。。。这将失败,直到我手动关闭前一个正在运行的pod。这种行为是故意的吗?您可能遇到了一个问题,即默认部署策略是“滚动”。这将在关闭旧pod之前使用新代码创建一个新pod。这将引发多节点问题。您需要将部署策略更改为“重新创建”@GrahamDumpleton这似乎是一个局部解决方案,因为如果您使用生命周期挂钩,它们将在另一个pod中运行,并且错误仍然存在。