首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jgroups kubernetes BindException

jgroups kubernetes BindException
EN

Stack Overflow用户
提问于 2019-03-22 10:57:58
回答 1查看 392关注 0票数 0

我在spring boot项目中使用了infinispan,我知道jgroups在infinispan中完成节点通信和发现。我已经可以在dockers上进行多实例相互发现了。现在问题出在Kubernetes身上了。

我使用的jgroups配置文件default-jgroups-kubernetes.xml可以在infinispan的官方包中找到。我只修改了tcp.portKUBE_PING标签:

代码语言:javascript
复制
<config xmlns="urn:org:jgroups"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/jgroups-4.0.xsd">

   <TCP bind_addr="${jgroups.tcp.address:match-interface:eth.*}"
        bind_port="${jgroups.tcp.port:30001}"
        enable_diagnostics="false"
        thread_naming_pattern="pl"
        send_buf_size="640k"
        sock_conn_timeout="300"
        bundler_type="no-bundler"
        logical_addr_cache_expiration="360000"

        thread_pool.min_threads="${jgroups.thread_pool.min_threads:0}"
        thread_pool.max_threads="${jgroups.thread_pool.max_threads:200}"
        thread_pool.keep_alive_time="60000"
   />
   <kubernetes.KUBE_PING
     port_range="3000"
     namespace="default"
     masterProtocol="https"
     masterHost="https://192.1.5.110:32305"
     masterPort="32305"
   />
   <MERGE3 min_interval="10000" 
           max_interval="30000" 
   />
   <FD_SOCK />
   <!-- Suspect node `timeout` to `timeout + timeout_check_interval` millis after the last heartbeat -->
   <FD_ALL timeout="10000"
           interval="2000"
           timeout_check_interval="1000"
   />
   <VERIFY_SUSPECT timeout="1000"/>
   <pbcast.NAKACK2 use_mcast_xmit="false"
                   xmit_interval="100"
                   xmit_table_num_rows="50"
                   xmit_table_msgs_per_row="1024"
                   xmit_table_max_compaction_time="30000"
                   resend_last_seqno="true"
   />
   <UNICAST3 xmit_interval="100"
             xmit_table_num_rows="50"
             xmit_table_msgs_per_row="1024"
             xmit_table_max_compaction_time="30000"
   />
   <pbcast.STABLE stability_delay="500"
                  desired_avg_gossip="5000"
                  max_bytes="1M"
   />
   <pbcast.GMS print_local_addr="false"
               join_timeout="${jgroups.join_timeout:5000}"
   />
   <MFC max_credits="2m" 
        min_threshold="0.40"
   />
   <FRAG3/>
</config>

顺便说一句,我已经介绍了jgroups-kubernetes的依赖项

我使用了上面的配置,然后是以下异常:

代码语言:javascript
复制
...
Caused by: java.net.BindException: no port available in range [30001 .. 30051] (bind_addr=xxxxx%eth0)
  at org.jgroups.util.Util.createServerSocket(Util.java:3512)
  ...

其中xxxxx表示IPv6地址

我不知道如何解决这个异常。我尝试将TCP端口更改为7800,但范围不变。结果仍然是上述异常,但信息变为7800..7850

期待你的help.Thanks!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-25 16:38:37

尝试使用IPv4或IPv6,但不能两者混合使用。可以通过将系统属性java.net.preferIPv4Stack设置为true来强制IPv4。3000的port_range没有任何意义,请使用一个较小的数字,如10,这取决于您在同一个pod中运行多少个容器(1可能也可以)。在masterHost中,您还需要设置端口,但这并不是必需的,而且可能会失败。事实上,3个master*属性都不需要设置,因为Kubernetes自己设置这些属性。

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

https://stackoverflow.com/questions/55292275

复制
相关文章

相似问题

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