我们正在尝试使用Docker在AWS EC2上将HA设置为KeyCloak 1.9.3,但群集没有错误,但登录失败,出现以下错误:带有Docker的AWS EC2上的KeyCloak HA - 群集已启动,但登录失败
WARN [org.keycloak.events](默认任务-10)类型= LOGIN_ERROR,realmId =主人,的clientId = NULL,用户id = NULL,ip地址= 172.30.200.171,误差= invalid_code
我们遵循此(http://lists.jboss.org/pipermail/keycloak-user/2016-February/004940.html)后,但使用S3_PING,而不是JDBC_PING。
看来,节点检测到彼此:
INFO [org.infinispan.remoting.transport.jgroups.JGroupsTransport](来电-2,EE,6dbce1e2a05a)ISPN000094:通道keycloak收到新集群视图: [6dbce1e2a05a | 1](2)[6dbce1e2a05a,75f2b2e98cfd]
当我们查询jboss mbean“jboss.as.expr:subsystem = jgroups,channel = ee时,我们怀疑节点之间没有互相通信“第一个节点的结果是:
jgroups,channel=ee = [6dbce1e2a05a|1] (2) [6dbce1e2a05a, 75f2b2e98cfd]
jgroups,channel=ee receivedMessages = 0
jgroups,channel=ee sentMessages = 0
而对于第二个节点:
jgroups,channel=ee = [6dbce1e2a05a|1] (2) [6dbce1e2a05a, 75f2b2e98cfd]
jgroups,channel=ee receivedMessages = 0
jgroups,channel=ee sentMessages = 5
我们也验证了TCP端口57600和7600是开放的。
任何想法可能会导致它?
下面是相关独立-ha.xml配置和下面是启动命令:
<subsystem xmlns="urn:jboss:domain:jgroups:4.0">
<channels default="ee">
<channel name="ee" stack="tcp"/>
</channels>
<stacks>
<stack name="udp">
<transport type="UDP" socket-binding="jgroups-udp"/>
<protocol type="PING"/>
<protocol type="MERGE3"/>
<protocol type="FD_SOCK" socket-binding="jgroups-udp-fd"/>
<protocol type="FD_ALL"/>
<protocol type="VERIFY_SUSPECT"/>
<protocol type="pbcast.NAKACK2"/>
<protocol type="UNICAST3"/>
<protocol type="pbcast.STABLE"/>
<protocol type="pbcast.GMS"/>
<protocol type="UFC"/>
<protocol type="MFC"/>
<protocol type="FRAG2"/>
</stack>
<stack name="tcp">
<transport type="TCP" socket-binding="jgroups-tcp">
<property name="external_addr">200.129.4.189</property>
</transport>
<protocol type="S3_PING">
<property name="access_key">AAAAAAAAAAAAAA</property>
<property name="secret_access_key">BBBBBBBBBBBBBB</property>
<property name="location">CCCCCCCCCCCCCCCCCCCC</property>
</protocol>
<protocol type="MERGE3"/>
<protocol type="FD_SOCK" socket-binding="jgroups-tcp-fd">
<property name="external_addr">200.129.4.189</property>
</protocol>
<protocol type="FD"/>
<protocol type="VERIFY_SUSPECT"/>
<protocol type="pbcast.NAKACK2"/>
<protocol type="UNICAST3"/>
<protocol type="pbcast.STABLE"/>
<protocol type="pbcast.GMS"/>
<protocol type="MFC"/>
<protocol type="FRAG2"/>
</stack>
</stacks>
</subsystem>
<socket-binding name="jgroups-tcp" interface="public" port="7600"/>
<socket-binding name="jgroups-tcp-fd" interface="public" port="57600"/>
而且我们使用下面的启动服务器(INTERNAL_HOST_IP是容器内部IP地址):
standalone.sh -c=standalone-ha.xml -b=$INTERNAL_HOST_IP -bmanagement=$INTERNAL_HOST_IP -bprivate=$INTERNAL_HOST_IP
任何帮助将不胜感激。