-
Bug
-
Resolution: Unresolved
-
Blocker
-
None
OpenShift 4.13 dual-stack cluster
EAP 7.4.12 image from EAP7-1992 (details)
Cluster network setup:
Name: cluster Namespace: Labels: <none> Annotations: <none> API Version: config.openshift.io/v1 Kind: Network Metadata: Creation Timestamp: 2023-08-02T12:11:49Z Generation: 2 Managed Fields: API Version: config.openshift.io/v1 Fields Type: FieldsV1 fieldsV1: f:spec: f:clusterNetwork: f:externalIP: f:policy: f:networkType: f:serviceNetwork: f:status: f:clusterNetwork: f:clusterNetworkMTU: f:networkType: f:serviceNetwork: Manager: cluster-network-operator/operconfig Operation: Apply Time: 2023-08-02T12:13:17Z API Version: config.openshift.io/v1 Fields Type: FieldsV1 fieldsV1: f:spec: .: f:clusterNetwork: f:externalIP: .: f:policy: f:networkType: f:serviceNetwork: f:status: Manager: cluster-bootstrap Operation: Update Time: 2023-08-02T12:11:49Z Resource Version: 3099 UID: 62d21fdc-767c-4cd6-a8e7-a440da32e610 Spec: Cluster Network: Cidr: 10.128.0.0/14 Host Prefix: 23 Cidr: fd00:10:128::/56 Host Prefix: 64 External IP: Policy: Network Type: OVNKubernetes Service Network: 172.122.0.0/16 fd00:172:16::/112 Status: Cluster Network: Cidr: 10.128.0.0/14 Host Prefix: 23 Cidr: fd00:10:128::/56 Host Prefix: 64 Cluster Network MTU: 1400 Network Type: OVNKubernetes Service Network: 172.122.0.0/16 fd00:172:16::/112 Events: <none>
Simple application built with SERVER_USE_IPV6=true
KUBE_PING configuration (I'm aware these options are deprecated):
OPENSHIFT_KUBE_PING_NAMESPACE=msimka-namespace OPENSHIFT_KUBE_PING_LABEL=Cluster=Smoke
Servers don't form cluster
Pod-1:
13:13:57,351 INFO [org.infinispan.CLUSTER] (ServerService Thread Pool -- 79) ISPN000094: Received new cluster view for channel ee: [eap-server-1-sh8ks|0] (1) [eap-server-1-sh8ks] 13:13:57,357 INFO [org.infinispan.CLUSTER] (ServerService Thread Pool -- 78) ISPN000079: Channel ee local address is eap-server-1-sh8ks, physical addresses are [fd00:10:128:3:0:0:0:32%eth0:7600]
Pod-2
13:13:56,620 INFO [org.infinispan.CLUSTER] (ServerService Thread Pool -- 80) ISPN000094: Received new cluster view for channel ee: [eap-server-1-mjkq6|0] (1) [eap-server-1-mjkq6] 13:13:56,627 INFO [org.infinispan.CLUSTER] (ServerService Thread Pool -- 79) ISPN000079: Channel ee local address is eap-server-1-mjkq6, physical addresses are [fd00:10:128:5:0:0:0:581%eth0:7600]
from debug log, I can see that KUBE_PING sends discovery requests only to IPv4
14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) Determining pod status 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) status.phase=Succeeded 14:40:14,354 DEBUG [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) pod eap-server-1-deploy, group null 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) Determining pod status 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) status.phase=Succeeded 14:40:14,354 DEBUG [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) pod eap-server-2-deploy, group null 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) Determining pod status 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) status.phase=Succeeded 14:40:14,354 DEBUG [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) pod eap-server-3-5nrr6, group eap-server-3 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) Determining pod status 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) status.phase=Running 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) status.message=null and status.reason=null 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) containerStatuses[].status of all container is true 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) conditions with type=="Ready" has status property value = true 14:40:14,354 DEBUG [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) pod eap-server-3-deploy, group null 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) Determining pod status 14:40:14,354 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) status.phase=Succeeded 14:40:14,354 DEBUG [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) pod eap-server-3-s45bw, group eap-server-3 14:40:14,355 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) Determining pod status 14:40:14,355 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) status.phase=Running 14:40:14,355 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) status.message=null and status.reason=null 14:40:14,355 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) containerStatuses[].status of all container is true 14:40:14,355 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) conditions with type=="Ready" has status property value = true 14:40:14,355 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) getPods(msimka-namespace, null) = [Pod{name='eap-server-1-build', ip='10.129.3.148', podGroup='null'}, Pod{name='eap-server-1-deploy', ip='10.129.3.149', podGroup='null'}, Pod{name='eap-server-2-deploy', ip='10.129.3.151', podGroup='null'}, Pod{name='eap-server-3-5nrr6', ip='10.131.0.53', podGroup='eap-server-3'}, Pod{name='eap-server-3-deploy', ip='10.129.3.154', podGroup='null'}, Pod{name='eap-server-3-s45bw', ip='10.129.3.155', podGroup='eap-server-3'}] 14:40:14,355 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) eap-server-3-5nrr6: hosts fetched from Kubernetes: [Pod{name='eap-server-1-build', ip='10.129.3.148', podGroup='null'}, Pod{name='eap-server-1-deploy', ip='10.129.3.149', podGroup='null'}, Pod{name='eap-server-2-deploy', ip='10.129.3.151', podGroup='null'}, Pod{name='eap-server-3-5nrr6', ip='10.131.0.53', podGroup='eap-server-3'}, Pod{name='eap-server-3-deploy', ip='10.129.3.154', podGroup='null'}, Pod{name='eap-server-3-s45bw', ip='10.129.3.155', podGroup='eap-server-3'}] 14:40:14,355 TRACE [org.jgroups.protocols.kubernetes.KUBE_PING] (thread-11,ee,eap-server-3-5nrr6) eap-server-3-5nrr6: sending discovery requests to [10.129.3.148:7600, 10.129.3.149:7600, 10.129.3.151:7600, 10.131.0.53:7600, 10.129.3.154:7600, 10.129.3.155:7600]
The pod has
"podIP": "10.131.0.53", "podIPs": [ { "ip": "10.131.0.53" }, { "ip": "fd00:10:128:3::34" } ]
KUBE_PING uses only podIP - https://github.com/jgroups-extras/jgroups-kubernetes/blob/main/src/main/java/org/jgroups/protocols/kubernetes/Client.java#L165