2017-10-07 56 views
0

我有pod,利用PHP和我有一个永久的MySQL存储在openshift在线创建。每当我点击“添加存储到php”选项,并将mysql设置为具有挂载点/ var/lib/mysql的存储时,服务器将尝试重新部署,但新容器停止创建,然后失败。我得到这样的多个错误信息:Openshift Mymsql永久存储将无法安装在PHP

Failed to attach volume "pvc-d4962378-aae0-11e7-8a41-0a2a2b777307" on node "ip-172-31-50-169.us-west-2.compute.internal" with: Error attaching EBS volume "vol-0087ade77401256f5" to instance "i-0b8b81e68bc629f01": VolumeInUse: vol-0087ade77401256f5 is already attached to an instance status code: 400, request id: dfbdac9b-bad0-4211-8158-080a4e120b1a. The volume is currently attached to instance "i-02a6b44c53ab0d7f2" 

这不是将mysql存储连接到pod的正确方法吗?

回答

2

EBS卷类型一次只能安装在OpenShift群集中的一个节点上。当您将PHP和MySQL作为单独的应用程序登录到不同的节点时,您无法针对这两个应用程序安装持久性卷。这个错误是警告你的。

您可以同时对PHP和MySQL使用单个EBS卷的唯一方法是让它们在同一个容器的不同容器中运行。您还需要确保将部署策略设置为“重新创建”而非“滚动”,因为在旧版本存在时创建新实例的滚动结果会出现同样的问题,因为新旧版本可能位于不同节点上。

+0

谢谢你的回答,它更有意义。任何机会,你可以包括如何创建一个PHP和MySQL容器并将它们包含在同一个窗格下的说明?不知道该怎么去做。 – Michael

+0

使用Web控制台或使用''oc''来执行此操作非常麻烦。您确实需要直接或通过模板将原始资源对象创建为JSON/YAML。在https://github.com/openshift-evangelists/wordpress-quickstart –

+0

的“templates”目录中查看标记为“testing”的模板。为获得更好的模板,专门设计用于将任意PHP应用程序代码部署为PHP + MySQL在单个卷中的单卷,请参阅https://github.com/openshift-evangelists/php-quickstart中的模板在模板文件上使用'oc create -f mysql-persistent-single-volume.json'',然后从PHP下的目录浏览器中选择。输入您的应用程序的repo URL作为源存储库。以''/ opt/app-root/data''装载的PHP应用程序卷。 –