如何在 Openshift 3 Web 控制台上找到 MySQL 的 public IP 地址?
How to find public IP address of MySQL persistent on Openshift 3 web console?
我在 Openshift Web 控制台上部署了 Wildfly 应用程序和 MySQL persistent,并尝试将 MySQL persistent 与外部 Eclipse 的 jdbc 驱动程序连接起来。但是我在 Web 控制台上根本找不到 public IP 地址。
如何找到 MySQL 持久的 public IP 地址或如何将特定 IP 地址配置为 MySQL 持久?我在 Openshift 上附上了这两种服务的图像。
[
已更新
在 Eclipse IDE 上,我打开了 MySQL pod 的日志部分。我找到了 MySQL 服务的 IP 地址:
"readinessProbe" : {
"exec" : {"command" : [
"/bin/sh",
"-i",
"-c",
"MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"
]},
"initialDelaySeconds" : 5,
"timeoutSeconds" : 1,
"periodSeconds" : 10,
"successThreshold" : 1,
"failureThreshold" : 3
},
....
"phase" : "Running",
"conditions" : [
{
"type" : "Initialized",
"status" : "True",
"lastTransitionTime" : "2017-04-02T06:35:00Z"
},
{
"type" : "Ready",
"status" : "True",
"lastTransitionTime" : "2017-04-03T16:47:27Z"
},
{
"type" : "PodScheduled",
"status" : "True",
"lastTransitionTime" : "2017-04-02T06:35:00Z"
}
],
"hostIP" : "172.31.14.159",
"podIP" : "10.1.72.72",
"startTime" : "2017-04-02T06:35:00Z",
"containerStatuses" : [{
"name" : "mysql",
"state" : {"running" : {"startedAt" : "2017-04-03T16:47:07Z"}},
"lastState" : {"terminated" : {
"exitCode" : 255,
"reason" : "Error",
"startedAt" : "2017-04-02T06:36:28Z",
....
我尝试将 MySQL pod 连接到主机 IP 172.31.14.159 或 podIP 10.1.72.72。但是连接失败。然后我在日志内容中发现了以下MySQL生成命令:
"exec" : {"command" : [
"/bin/sh",
"-i",
"-c",
"MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"
]},
所以,我尝试用 ip 127.0.0.1 连接 mysql 数据库服务。并且连接 成功。
现在我很困惑这个 127.0.0.1 地址是什么,我的本地 PC 或 Openshift 容器的 MySQL pod。我如何生成 MySQL 与 HostIP 的持久性,而不是 127.0.0.1?恐怕我错过了一些程序。
您的 mysql pod 没有 public IP 地址,但您可以使用端口转发。
使用 Eclipse:
操作方法:
https://blog.openshift.com/getting-started-eclipse-jboss-tools-openshift-online-3/
下载:
http://marketplace.eclipse.org/content/jboss-tools-luna
使用 Openshift CLI:
$ oc port-forward <pod> [<local_port>:]<remote_port> [...[<local_port_n>:]<remote_port_n>]
例如
$ oc port-forward <pod> 3306:5000
现在可以连接URL jdbc:mysql://127.0.0.1:5000/数据库了。 mysql pod 在本地端口 5000 上监听。
https://docs.openshift.com/container-platform/3.3/dev_guide/port_forwarding.html
我在 Openshift Web 控制台上部署了 Wildfly 应用程序和 MySQL persistent,并尝试将 MySQL persistent 与外部 Eclipse 的 jdbc 驱动程序连接起来。但是我在 Web 控制台上根本找不到 public IP 地址。
如何找到 MySQL 持久的 public IP 地址或如何将特定 IP 地址配置为 MySQL 持久?我在 Openshift 上附上了这两种服务的图像。
[
已更新
在 Eclipse IDE 上,我打开了 MySQL pod 的日志部分。我找到了 MySQL 服务的 IP 地址:
"readinessProbe" : {
"exec" : {"command" : [
"/bin/sh",
"-i",
"-c",
"MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"
]},
"initialDelaySeconds" : 5,
"timeoutSeconds" : 1,
"periodSeconds" : 10,
"successThreshold" : 1,
"failureThreshold" : 3
},
....
"phase" : "Running",
"conditions" : [
{
"type" : "Initialized",
"status" : "True",
"lastTransitionTime" : "2017-04-02T06:35:00Z"
},
{
"type" : "Ready",
"status" : "True",
"lastTransitionTime" : "2017-04-03T16:47:27Z"
},
{
"type" : "PodScheduled",
"status" : "True",
"lastTransitionTime" : "2017-04-02T06:35:00Z"
}
],
"hostIP" : "172.31.14.159",
"podIP" : "10.1.72.72",
"startTime" : "2017-04-02T06:35:00Z",
"containerStatuses" : [{
"name" : "mysql",
"state" : {"running" : {"startedAt" : "2017-04-03T16:47:07Z"}},
"lastState" : {"terminated" : {
"exitCode" : 255,
"reason" : "Error",
"startedAt" : "2017-04-02T06:36:28Z",
....
我尝试将 MySQL pod 连接到主机 IP 172.31.14.159 或 podIP 10.1.72.72。但是连接失败。然后我在日志内容中发现了以下MySQL生成命令:
"exec" : {"command" : [
"/bin/sh",
"-i",
"-c",
"MYSQL_PWD=\"$MYSQL_PASSWORD\" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE -e 'SELECT 1'"
]},
所以,我尝试用 ip 127.0.0.1 连接 mysql 数据库服务。并且连接 成功。
现在我很困惑这个 127.0.0.1 地址是什么,我的本地 PC 或 Openshift 容器的 MySQL pod。我如何生成 MySQL 与 HostIP 的持久性,而不是 127.0.0.1?恐怕我错过了一些程序。
您的 mysql pod 没有 public IP 地址,但您可以使用端口转发。
使用 Eclipse:
操作方法: https://blog.openshift.com/getting-started-eclipse-jboss-tools-openshift-online-3/
下载: http://marketplace.eclipse.org/content/jboss-tools-luna
使用 Openshift CLI:
$ oc port-forward <pod> [<local_port>:]<remote_port> [...[<local_port_n>:]<remote_port_n>]
例如
$ oc port-forward <pod> 3306:5000
现在可以连接URL jdbc:mysql://127.0.0.1:5000/数据库了。 mysql pod 在本地端口 5000 上监听。
https://docs.openshift.com/container-platform/3.3/dev_guide/port_forwarding.html