0

我正在 Openshift 容器上设置 MySQL 服务,但我无法从其他服务访问它。

根据文档(https://docs.openshift.com/online/dev_guide/environment_variables.html#automatically-added-environment-variables),创建服务时,X_SERVICE_HOST会将X__SERVICE_PORT环境 vbles 填充到其余服务中,但我似乎无法从我的 Java 服务访问它们(使用文件${MYSQL_SERVICE_HOST}上的占位符.properties)。

以前我可以使用Cluster IP服务定义上的值连接到 MySQL 数据库,但它也不起作用,我尝试在我的 Java 服务上导入 mysql 密钥,该服务应该导入环境变量,例如用户名、密码等,但它不导入主机名和端口。

如该线程(https://github.com/openshift/origin/issues/10401)中所述,我尝试创建一个名为的 MySQL 服务MYSQL,但由于大写字母而失败。

我应该如何将 env vbles 传播到其他服务?

谢谢你。

/编辑:问题终于解决了,MySQL URL 连接格式错误,在我修复 vbles 正确传播后,它在某处包含额外内容。

4

3 回答 3

1

这些环境变量只会存在于服务清单选择的 pod 上。例如,如果服务清单选择器与 pod 标签匹配,则只有那些 pod 将具有环境变量。其他 pod 不会看到这些环境变量。

在您的 java 应用程序中,只需引用 mysql 服务名称和它公开的端口,您就可以开始使用了。但请确保您的 java 客户端和 mysql 在同一个命名空间/项目中。

于 2018-05-12T23:10:56.827 回答
1

订购可能是这里的问题。我相信需要在任何部署配置、复制控制器等将它们作为环境变量使用之前创建该服务。

于 2018-05-12T17:54:41.367 回答
0

问题终于解决了,MySQL URL 连接格式错误,在我修复 vbles 正确传播后,它在某处包含一个额外的 /。

于 2018-05-14T09:04:09.217 回答