在 OpenShift 上安装 Infinispan

部署一个或多个 Infinispan 集群(有或没有跨站点)。

在 OpenShift 上安装 Infinispan

  1. https://github.com/keycloak/keycloak-benchmark/ 检出 Git 存储库。

  2. 更改到文件夹 provision/infinispan

  3. 运行 task <task-name> 命令以在 OpenShift 上配置所有容器。

查看 Keycloak 自定义 了解如何将 Keycloak 集群连接到 Infinispan 集群。

可用任务

可以使用单个或多个 OpenShift 集群安装 Infinispan,有或没有跨站点。可用的任务如下所示:

task: Available tasks for this project:
* crossdc:                     Creates a cross-site enabled Infinispan deployment between 2 OCP clusters
* crossdc-single:              Creates a cross-site enabled Infinispan deployment between 2 namespaces
* delete-crossdc:              Deletes the Infinispan CR from cross-site deployment
* delete-crossdc-single:       Deletes the Infinispan CR in a cross-site deployment in a single OCP cluster
* delete-infinispan:           Deletes the Infinispan CR
* single-cluster:              Creates a single cluster Infinispan deployment

没有跨站点的单集群

要仅安装没有跨站点的简单 Infinispan 集群,请运行任务 single-cluser。此任务具有以下必需变量:

变量 详细信息

ROSA_CLUSTER_NAME

ROSA 集群名称。使用 rosa list clusters 获取可用集群名称。

OC_NAMESPACE

部署 Infinispan 集群的命名空间。

示例
task single-cluster ROSA_CLUSTER_NAME=gh-keycloak OC_NAMESPACE=infinispan

要删除 Infinispan 集群,请使用相同的变量运行任务 delete-infinispan

示例
task delete-infinispan ROSA_CLUSTER_NAME=gh-keycloak OC_NAMESPACE=infinispan

单个 OpenShift 集群中启用了跨站点的 Infinispan 集群

要部署两个启用了跨站点的 Infinispan 集群,请运行任务 crossdc-single。此任务需要两个不同的命名空间,每个 Infinispan 集群都将部署到这些命名空间中。必需的变量是:

变量 详细信息

ROSA_CLUSTER_NAME

ROSA 集群名称。使用 rosa list clusters 获取可用集群名称。

OC_NAMESPACE_1

要安装第一个 Infinispan 集群的第一个命名空间。

OC_NAMESPACE_2

要安装第二个 Infinispan 集群的第二个命名空间。

变量 OC_NAMESPACE_1OC_NAMESPACE_2 必须不同。
示例
task crossdc-single ROSA_CLUSTER_NAME=gh-keycloak OC_NAMESPACE_1=ispn-1 OC_NAMESPACE_2=ispn-2

要删除此部署,请使用相同的变量运行任务 delete-crossdc-single

示例
task delete-crossdc-single ROSA_CLUSTER_NAME=gh-keycloak OC_NAMESPACE_1=ispn-1 OC_NAMESPACE_2=ispn-2

两个不同 OpenShift 集群中启用了跨站点的 Infinispan 集群

最后,要部署在两个不同 OpenShift 集群中跨站点启用的 Infinispan,请运行任务 crossdc。以下变量是必需的:

变量 详细信息

ROSA_CLUSTER_NAME_1

第一个 ROSA 集群名称。使用 rosa list clusters 获取可用集群。

ROSA_CLUSTER_NAME_2

第二个 ROSA 集群名称。使用 rosa list clusters 获取可用集群。

OC_NAMESPACE_1

要在第一个 ROSA 集群中安装 Infinispan 集群的命名空间。

OC_NAMESPACE_2

要在第二个 ROSA 集群中安装 Infinispan 集群的命名空间。

变量 ROSA_CLUSTER_NAME_1ROSA_CLUSTER_NAME_2 必须不同。
变量 OC_NAMESPACE_1OC_NAMESPACE_2 可以具有相同的值。
示例
task crossdc ROSA_CLUSTER_NAME_1=gh-keycloak ROSA_CLUSTER_NAME_2=gh-pruivo OC_NAMESPACE_1=infinispan OC_NAMESPACE_2=infinispan

要删除此部署,请使用相同的变量运行任务 delete-crossdc

示例
task delete-crossdc ROSA_CLUSTER_NAME_1=gh-keycloak ROSA_CLUSTER_NAME_2=gh-pruivo OC_NAMESPACE_1=infinispan OC_NAMESPACE_2=infinispan

可选变量

以下是用于自定义 Infinispan 部署的变量列表。其中一些变量由所有任务使用,而另一些则是任务特定的。

变量 默认值 使用任务 详细信息

CROSS_DC_ISPN_REPLICAS

3

全部

要创建的 Infinispan Pod 副本数。

CROSS_DC_CPU_REQUESTS

-

全部

CPU 请求,格式为 <limit>:<requests>。例如,2000m:1000m 将 Pod 的 CPU 限制为最大 2000m,并在启动时为每个 Pod 请求 1000m 的 CPU。指定单个值将同时设置限制和请求。

CROSS_DC_MEMORY_REQUESTS

-

全部

内存请求,格式为 <limit>:<requests>。例如,2Gi:1Gi 将 Pod 的内存限制为最大 2Gi,并在启动时为每个 Pod 请求 1Gi 的内存。指定单个值将同时设置限制和请求。

CROSS_DC_JVM_OPTS

-

全部

Infinispan 服务器的额外 JVM 选项。可用于设置 Java 堆内存,如下所示:-Xmx750

CROSS_DC_HOT_ROD_PASSWORD

AWS IAM 的共享密钥或 changeme

全部

Infinispan Hot Rod 端点的凭据。

CROSS_DC_HISTOGRAMS

false

全部

在 Infinispan 集群中启用直方图指标。

CROSS_DC_MODE

SYNC

crossdc-singlecrossdc

设置缓存跨站点策略。可以是 SYNCASYNC 跨站点复制。

CROSS_DC_STATE_TRANSFER_MODE

AUTO

crossdc-singlecrossdc

设置缓存跨站点状态传输策略。如果为 AUTO,则在恢复跨站点连接时将自动启动状态传输。

仅在 CROSS_DC_MODE=ASYNC 时使用的变量。

可以是 AUTOMANUAL

CROSS_DC_SERVICE_ACCOUNT

xsite-sa

crossdc

Infinispan 运算符用于在不同的 OpenShift 集群之间进行身份验证和配置跨站点的服务帐户。Infinispan 运算符使用此帐户来对远程集群进行身份验证。

CROSS_DC_SA_TOKEN_SECRET

xsite-token-secret

crossdc

存储远程 OpenShift 集群的服务帐户令牌的密钥名称。

CROSS_DC_JGRP_TS_SECRET

xsite-truststore-secret

crossdc

存储信任存储的密钥。信任存储用于允许 Infinispan 和 Gossip Router Pod 之间的 TLS 通信。

CROSS_DC_JGRP_KS_SECRET

xsite-keystore-secret

crossdc

存储密钥存储的密钥。密钥存储用于 Infinispan 和 Gossip Router Pod 之间的 TLS 通信。