第 11 章 为 OpenShift 集群配置 Data Grid


11.1. 配置集群发现

用于 OpenShift 的数据网格可使用 Kubernetes 或 DNS 发现机制来集群。这些发现机制可让镜像自动加入集群。

OpenShift 模板和服务的 data Grid 默认使用 DNS。如果直接从镜像或自定义模板为 OpenShift 部署 Data Grid,您必须配置适当的发现机制。

11.1.1. 配置 DNS_PING

要为集群配置 DNS 发现机制,请执行以下操作:

  1. openshift.DNS_PING 设置为 JGROUPS_PING_PROTOCOL 环境变量的值。

    JGROUPS_PING_PROTOCOL=openshift.DNS_PING
    Copy to Clipboard Toggle word wrap
  2. 指定集群的 ping 服务名称,作为 OPENSHIFT_DNS_PING_SERVICE_NAME 环境变量的值。

    OPENSHIFT_DNS_PING_SERVICE_NAME=${PING_SERVICE_NAME}
    Copy to Clipboard Toggle word wrap
  3. 指定公开 ping 服务的端口号,作为 OPENSHIFT_DNS_PING_SERVICE_PORT 环境变量的值。默认值为 8888

    OPENSHIFT_DNS_PING_SERVICE_PORT=${PING_SERVICE_NAME}
    Copy to Clipboard Toggle word wrap
  4. 定义公开 ping 端口的 ping 服务,如下例所示:

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

    您应该配置 clusterIP: None,以便服务处于无头状态。同样,ping 端口必须被命名并包含 service.alpha.kubernetes.io/tolerate-unready-endpoints: 'true' 注解。

11.1.2. 配置 KUBE_PING

要为集群配置 Kubernetes 发现机制,请执行以下操作:

  1. openshift.KUBE_PING 设置为 JGROUPS_PING_PROTOCOL 环境变量的值。

    JGROUPS_PING_PROTOCOL=openshift.KUBE_PING
    Copy to Clipboard Toggle word wrap
  2. 将 OpenShift 项目名称指定为 OPENSHIFT_KUBE_PING_NAMESPACE 环境变量的值。如果没有设置此变量,服务器的行为与单节点集群类似。

    OPENSHIFT_KUBE_PING_NAMESPACE=${PING_NAMESPACE}
    Copy to Clipboard Toggle word wrap
  3. 使用 OPENSHIFT_KUBE_PING_LABELS 环境变量指定集群标签。如果没有设置此变量,则应用程序以外的 pod 会尝试加入同一命名空间。

    OPENSHIFT_KUBE_PING_LABELS=labelKey=labelValue
    Copy to Clipboard Toggle word wrap
  4. 为 pod 运行的服务帐户授予授权,以便它能够访问 Kubernetes REST API。例如,为 datagrid-service-account 授予授权,如下所示:

    oc policy add-role-to-user view \
      system:serviceaccount:$(oc project -q):datagrid-service-account \
      -n $(oc project -q)
    Copy to Clipboard Toggle word wrap
  5. 确保 8888 定义为 pod 容器上的 ping 端口,如下所示:

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

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部