gpt4 book ai didi

docker - 无法访问kubernetes集群中的嵌入式ActiveMq

转载 作者:行者123 更新时间:2023-12-02 12:26:57 24 4
gpt4 key购买 nike

我们正在Java应用程序中启动一个嵌入式activeMq服务器。这将在kubernetes pod中运行。

broker = BrokerFactory.createBroker("broker:(tcp://localhost:41415)?persistent=false");
broker.setBrokerId("ActiveMqBroker" + 1);
broker.setUseJmx(false);
broker.start();

现在,我们有一个应用程序可以在同一个Pod中访问它。这很好。

但是,当另一个应用程序使用服务名称(例如tcp://service.hostname:41415)从另一个Pod访问此activemq服务器时,它将无法正常工作。

我还尝试将连接器添加到service.hostname,但会抛出 java.net.BindException: Address not available (Bind failed)
broker.addConnector("tcp://service.hostname:41415");

知道如何解决吗?

编辑:

我的pod部署+服务Yaml看起来像

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
labels:
app: activemq
spec:
replicas: 1
selector:
matchLabels:
app: activemq
template:
metadata:
labels:
app: activemq
spec:
containers:
- name: activemq
image: <myimage>
ports:
- containerPort: 41415



apiVersion: v1
kind: Service
metadata:
name: service.hostname
spec:
selector:
app: activemq
ports:
- protocol: TCP
port: 41415
targetPort: 41415

最佳答案

您必须公开该Pod的端口,以便其他服务可以访问它。

请引用:https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/

例如

apiVersion: apps/v1
kind: Deployment
metadata:
name: hello
spec:
selector:
matchLabels:
app: hello
tier: backend
track: stable
replicas: 7
template:
metadata:
labels:
app: hello
tier: backend
track: stable
spec:
containers:
- name: hello
image: "gcr.io/google-samples/hello-go-gke:1.0"
ports:
- name: http
containerPort: 80

关于docker - 无法访问kubernetes集群中的嵌入式ActiveMq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62313720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com