第 11 章 为 OpenShift 集群配置 Data Grid
11.1. 配置集群发现 复制链接链接已复制到粘贴板!
用于 OpenShift 的数据网格可使用 Kubernetes 或 DNS 发现机制来集群。这些发现机制可让镜像自动加入集群。
OpenShift 模板和服务的 data Grid 默认使用 DNS。如果直接从镜像或自定义模板为 OpenShift 部署 Data Grid,您必须配置适当的发现机制。
11.1.1. 配置 DNS_PING 复制链接链接已复制到粘贴板!
要为集群配置 DNS 发现机制,请执行以下操作:
将
openshift.DNS_PING设置为JGROUPS_PING_PROTOCOL环境变量的值。JGROUPS_PING_PROTOCOL=openshift.DNS_PING
JGROUPS_PING_PROTOCOL=openshift.DNS_PINGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 指定集群的 ping 服务名称,作为
OPENSHIFT_DNS_PING_SERVICE_NAME环境变量的值。OPENSHIFT_DNS_PING_SERVICE_NAME=${PING_SERVICE_NAME}OPENSHIFT_DNS_PING_SERVICE_NAME=${PING_SERVICE_NAME}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定公开 ping 服务的端口号,作为
OPENSHIFT_DNS_PING_SERVICE_PORT环境变量的值。默认值为8888。OPENSHIFT_DNS_PING_SERVICE_PORT=${PING_SERVICE_NAME}OPENSHIFT_DNS_PING_SERVICE_PORT=${PING_SERVICE_NAME}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 定义公开 ping 端口的 ping 服务,如下例所示:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要您应该配置
clusterIP: None,以便服务处于无头状态。同样,ping 端口必须被命名并包含service.alpha.kubernetes.io/tolerate-unready-endpoints: 'true'注解。
11.1.2. 配置 KUBE_PING 复制链接链接已复制到粘贴板!
要为集群配置 Kubernetes 发现机制,请执行以下操作:
将
openshift.KUBE_PING设置为JGROUPS_PING_PROTOCOL环境变量的值。JGROUPS_PING_PROTOCOL=openshift.KUBE_PING
JGROUPS_PING_PROTOCOL=openshift.KUBE_PINGCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 OpenShift 项目名称指定为
OPENSHIFT_KUBE_PING_NAMESPACE环境变量的值。如果没有设置此变量,服务器的行为与单节点集群类似。OPENSHIFT_KUBE_PING_NAMESPACE=${PING_NAMESPACE}OPENSHIFT_KUBE_PING_NAMESPACE=${PING_NAMESPACE}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
OPENSHIFT_KUBE_PING_LABELS环境变量指定集群标签。如果没有设置此变量,则应用程序以外的 pod 会尝试加入同一命名空间。OPENSHIFT_KUBE_PING_LABELS=labelKey=labelValue
OPENSHIFT_KUBE_PING_LABELS=labelKey=labelValueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 为 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)
oc policy add-role-to-user view \ system:serviceaccount:$(oc project -q):datagrid-service-account \ -n $(oc project -q)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保
8888定义为 pod 容器上的 ping 端口,如下所示:ports: - containerPort: 8888 name: ping protocol: TCPports: - containerPort: 8888 name: ping protocol: TCPCopy to Clipboard Copied! Toggle word wrap Toggle overflow