Este contenido no está disponible en el idioma seleccionado.

Chapter 4. Configuring Clustering


The JBoss Data Grid for OpenShift images can use either the Kubernetes or DNS discovery mechanisms for clustering. These discovery mechanisms enable images to automatically join clusters.

By default, DNS is pre-configured in the JBoss Data Grid for OpenShift image templates. If you want to use Kubernetes as the discovery mechanism, or if you plan to build and deploy a custom image, you must configure cluster discovery.

Note

JBoss Data Grid does not support removing images from an active cluster.

4.1. Configuring the Kubernetes Discovery Mechanism

To configure the Kubernetes discovery mechanism for clustering, do the following:

  1. Set openshift.KUBE_PING as the value for the JGROUPS_PING_PROTOCOL environment variable.

    JGROUPS_PING_PROTOCOL=openshift.KUBE_PING
    Copy to Clipboard Toggle word wrap
  2. Specify the OpenShift project name as the value for the OPENSHIFT_KUBE_PING_NAMESPACE environment variable. If you do not set this variable, the server behaves like a single-node cluster.

    OPENSHIFT_KUBE_PING_NAMESPACE=PROJECT_NAME
    Copy to Clipboard Toggle word wrap
  3. Specify the label that is set at the service level as the value for the OPENSHIFT_KUBE_PING_LABELS environment variable. If you do not set this variable, pods outside the application but in the same namespace attempt to join.

    OPENSHIFT_KUBE_PING_LABELS=app=APP_NAME
    Copy to Clipboard Toggle word wrap
  4. Grant authorization to the service account the pod is running under so that it can access the Kubernetes REST API. You grant this authorization using the OpenShift CLI, as follows:

    Granting authorization for the default service account in the myproject namespace:

    oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
    Copy to Clipboard Toggle word wrap

    Granting authorization for eap-service-account in the myproject namespace:

    oc policy add-role-to-user view system:serviceaccount:$(oc project -q):eap-service-account -n $(oc project -q)
    Copy to Clipboard Toggle word wrap
  5. Ensure port 8888 is defined as a ping port on the pod container, as follows:

    ports:
        - containerPort: 8888
          name: ping
          protocol: TCP
    Copy to Clipboard Toggle word wrap

4.2. Configuring the DNS Discovery Mechanism

To configure the DNS discovery mechanism for clustering, do the following:

  1. Set openshift.DNS_PING as the value for the JGROUPS_PING_PROTOCOL environment variable.

    JGROUPS_PING_PROTOCOL=openshift.DNS_PING
    Copy to Clipboard Toggle word wrap
  2. Specify the name of the ping service for the cluster as the value for the OPENSHIFT_DNS_PING_SERVICE_NAME environment variable.

    OPENSHIFT_DNS_PING_SERVICE_NAME=PING_SERVICE_NAME
    Copy to Clipboard Toggle word wrap
  3. Specify the port number where the ping service is exposed as the value for the OPENSHIFT_DNS_PING_SERVICE_PORT environment variable. The default value is 8888.

    OPENSHIFT_DNS_PING_SERVICE_PORT=PING_PORT
    Copy to Clipboard Toggle word wrap
  4. Define a ping service that exposes the ping port, as in the following example:

    apiVersion: v1
    kind: Service
    spec:
      clusterIP: None
      ports:
        - name: ping
          port: 8888
          protocol: TCP
          targetPort: 8888
      selector: deploymentConfig=datagrid-app
    metadata:
      annotations:
        description: The JGroups ping port for clustering.
        service.alpha.kubernetes.io/tolerate-unready-endpoints: 'true'
    Copy to Clipboard Toggle word wrap
    Important

    You should configure clusterIP: None so that the service is headless. Likewise, the ping port must be named and include the service.alpha.kubernetes.io/tolerate-unready-endpoints: 'true' annotation.

Volver arriba
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2025 Red Hat