在 OpenShift 上安裝 Infinispan

部署一個或多個 Infinispan 叢集(具有或不具有跨站點)。

在 OpenShift 上安裝 Infinispan

  1. https://github.com/keycloak/keycloak-benchmark/ 檢出 Git 儲存庫。

  2. 變更至 provision/infinispan 資料夾。

  3. 執行 task <task-name> 命令,在 OpenShift 上佈建所有容器。

請查看 Keycloak 自訂,以了解如何將 Keycloak 叢集連接至 Infinispan 叢集。

可用的 Task

Infinispan 可以使用單一或多個 Openshift 叢集安裝,無論是否具有跨站點。可用的 Task 如下:

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 叢集,請執行 task single-cluser。此 Task 具有下列必要變數

變數 詳細資訊

ROSA_CLUSTER_NAME

ROSA 叢集名稱。使用 rosa list clusters 取得可用的叢集名稱。

OC_NAMESPACE

要部署 Infinispan 叢集的命名空間。

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

若要刪除 Infinispan 叢集,請使用相同的變數執行 task delete-infinispan

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

在單一 Openshift 叢集中啟用跨站點的 Infinispan 叢集

若要部署啟用跨站點的兩個 Infinispan 叢集,請執行 task crossdc-single。此 Task 需要兩個不同的命名空間,每個 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

若要刪除此部署,請使用相同的變數執行 task 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,請執行 task 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

若要刪除此部署,請使用相同的變數執行 task 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 部署的變數清單。其中一些變數由所有 Task 使用,另一些則是 Task 專用。

變數 預設值 Task 使用 詳細資訊

CROSS_DC_ISPN_REPLICAS

3

所有

要建立的 Infinispan Pod 複本數。

CROSS_DC_CPU_REQUESTS

-

所有

CPU 請求,格式為 <limit>:<requests>。例如,2000m:1000m 將 Pod 限制為最多 2000m 的 CPU,並在啟動時請求每個 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 通訊。