同一节点中同一pod的多个实例-Kubernetes

同一节点中同一pod的多个实例-Kubernetes,kubernetes,wildfly,kubernetes-pod,Kubernetes,Wildfly,Kubernetes Pod,我想在Kubernetes中的同一节点上运行同一pod的多个实例。我使用的是wildfly docker图像。当在同一个节点中运行多个pod时,我收到端口冲突异常 2020-11-30 15:53:17,079 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([ (&qu

我想在Kubernetes中的同一节点上运行同一pod的多个实例。我使用的是wildfly docker图像。当在同一个节点中运行多个pod时,我收到端口冲突异常

2020-11-30 15:53:17,079 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("core-service" => "management"),
("management-interface" => "http-interface")
]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.management.http.extensible" => "java.net.BindException: Address already in use /0.0.0.0:9990"}}
2020-11-30 15:53:17,259 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "undertow"),
("server" => "default-server"),
("http-listener" => "default")
]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.undertow.listener.default" => "Address already in use /0.0.0.0:9575"}}
2020-11-30 15:53:17,260 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("subsystem" => "undertow"),
("server" => "default-server"),
("https-listener" => "https")
]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.undertow.listener.https" => "Address already in use /0.0.0.0:8553"}}
2020-11-30 15:53:17,262 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([
("core-service" => "management"),
("management-interface" => "http-interface")
]) - failure description: {"WFLYCTL0080: Failed services" => {"org.wildfly.management.http.extensible" => "java.net.BindException: Address already in use /0.0.0.0:9990"}}
2020-11-30 15:53:17,399 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0028: Stopped deployment demo.war (runtime-name: demo.war) in 133ms
2020-11-30 15:53:17,416 ERROR [org.jboss.as.server] (ServerService Thread Pool -- 44) WFLYSRV0021: Deploy of deployment "demo.war" was rolled back with the following fai
lure message: undefined  

因此,如何绕过此问题并在没有端口冲突的情况下运行多个实例???

只有在使用
hostPort
hostNetwork
时,不同pod的端口才会发生冲突。否则,在同一节点中运行多个相同的pod时,您不应该遇到任何问题

您可以尝试运行以下命令。您的Wildfly吊舱应该可以正常运行,因为它们使用的端口位于容器内

kubectl run wildfly --image=jboss/wildfly
kubectl run wildfly-2 --image=jboss/wildfly
kubectl run wildfly-3 --image=jboss/wildfly

如果您需要使用
hostPort
hostNetwork
(不推荐使用),则您需要在此处自行安排端口。

仅当您使用
hostPort
hostNetwork
时,不同机架的端口可能会发生冲突。否则,在同一节点中运行多个相同的pod时,您不应该遇到任何问题

您可以尝试运行以下命令。您的Wildfly吊舱应该可以正常运行,因为它们使用的端口位于容器内

kubectl run wildfly --image=jboss/wildfly
kubectl run wildfly-2 --image=jboss/wildfly
kubectl run wildfly-3 --image=jboss/wildfly

如果您需要使用
hostPort
hostNetwork
(不推荐使用),那么在这里您可以自己操作,您需要自己“编排”端口。

我明白了,替换hostNetwork可以使其正常工作,但如果我更改该值,我的应用程序将无法到达数据库。那么,是否有任何方法可以在不使用hostnetwork的情况下将应用程序连接到数据库?我明白了,替换hostnetwork使其正常工作,但如果我更改该值,我的应用程序将无法连接到数据库。那么,有没有任何方法可以在不使用hostnetwork的情况下将应用程序连接到DB??