首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Artemis HA与Kubernetes:来自其他主机的UnknowHostException

Artemis HA与Kubernetes:来自其他主机的UnknowHostException
EN

Stack Overflow用户
提问于 2018-04-09 16:10:01
回答 1查看 1.2K关注 0票数 0

我在Kubernetes中有一个Artemis/JMS服务,我希望将其部署在一个2节点集群中。

以下是我对Artemis (broker.xml)的连接器配置:

代码语言:javascript
复制
<connectors>
    <connector name="jms-service-0">tcp://jms-service-0.jms-service.default.svc.cluster.local:61616</connector>
    <connector name="jms-service-1">tcp://jms-service-1.jms-service.default.svc.cluster.local:61616</connector>
</connectors>

但是当使用这个StatefulSet在Kubernetes1.8中部署时:

代码语言:javascript
复制
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: jms-service
  labels: 
     app: jms-service
spec:
 serviceName: jms-service
 replicas: 2
 selector:
    matchLabels:
        app: jms-service
 template:
    metadata:
      labels:
         app: jms-service
    spec:  
        containers:
        - name: jms-service
          image: kube-registry:5000/tk/jms-service:2.4
          ports:
            - containerPort: 8161
            - containerPort: 61616
            - containerPort: 5445
            - containerPort: 5672
            - containerPort: 1883
            - containerPort: 61613
          env:
            - name: ARTEMIS_USERNAME
              value: admin
            - name: ARTEMIS_PASSWORD
              value: admin

和这项服务:

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name:  jms-service  
  annotations:
       service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
spec:
  ports:
    - port: 8161
      nodePort: 30001
      name: webserver
    - port: 61616
      nodePort: 30002
      name: core
    - port: 5445
      nodePort: 30003
      name: hornetq
    - port: 5672
      nodePort: 30004
      name: amqp
    - port: 1883
      nodePort: 30005
      name: mqtt
    - port: 61613
      nodePort: 30006
      name: stomp
  selector:
    app: jms-service
  type:
    NodePort

每个pod在启动时看不到另一个。

对于jms-service-0:

代码语言:javascript
复制
08:06:30,811 ERROR [org.apache.activemq.artemis.core.client] AMQ214016: Failed to create netty connection: java.net.UnknownHostException: jms-service-1.jms-service.default.svc.cluster.local
at java.net.InetAddress.getAllByName0(InetAddress.java:1280) [rt.ja

对于jms-service-1:

代码语言:javascript
复制
08:06:34,703 ERROR [org.apache.activemq.artemis.core.client] AMQ214016: Failed to create netty connection: java.net.UnknownHostException: jms-service-0.jms-service.default.svc.cluster.local

我想这是因为在pods准备好之前,DNS是不可见的,但我不确定。

我该如何解决这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2018-07-26 17:30:31

服务,在您的例子中是jms-service,定义不正确。绑定后端pod(来自statefulsets )的服务应该定义为无头服务

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49728242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档