Infinispan 部署:單一叢集
此處描述在單一叢集環境中的 Infinispan 部署。
對象
本指南描述在單一叢集環境中部署 Infinispan 所需的程序。為了簡化,本指南使用可讓 Keycloak 與外部 Infinispan 一起使用的最小配置。
請參閱 在生產環境中執行 以取得其他指南。
程序
-
設定存取 Infinispan 叢集的憑證。
Keycloak 需要此憑證才能夠與 Infinispan 叢集進行驗證。以下
identities.yaml
檔案會設定具有管理員權限的使用者名稱和密碼credentials: - username: developer password: strong-password roles: - admin
identities.yaml
可以設定為機密,如下所示-
作為 Kubernetes 資源
憑證機密apiVersion: v1 kind: Secret type: Opaque metadata: name: connect-secret namespace: keycloak data: identities.yaml: Y3JlZGVudGlhbHM6CiAgLSB1c2VybmFtZTogZGV2ZWxvcGVyCiAgICBwYXNzd29yZDogc3Ryb25nLXBhc3N3b3JkCiAgICByb2xlczoKICAgICAgLSBhZG1pbgo= (1)
1 先前範例中的 identities.yaml
經過 base64 編碼。 -
使用 CLI
kubectl create secret generic connect-secret --from-file=identities.yaml
如需更多詳細資訊,請查看設定驗證 文件。
-
-
建立 Infinispan 叢集。
建立 Infinispan 叢集 文件提供有關如何建立和設定 Infinispan 叢集的所有資訊。
Infinispan CRapiVersion: infinispan.org/v1 kind: Infinispan metadata: name: infinispan (1) namespace: keycloak annotations: infinispan.org/monitoring: 'true' (2) spec: replicas: 3 jmx: enabled: true security: endpointSecretName: connect-secret (3) service: type: DataGrid
1 叢集名稱 2 允許 Prometheus 監控叢集 3 如果使用自訂憑證,請在此處設定在上一個步驟中建立的機密名稱。 -
為 Keycloak 建立快取。
Keycloak 需要存在下列快取:
sessions
、actionTokens
、authenticationSessions
、offlineSessions
、clientSessions
、offlineClientSessions
、loginFailures
和work
。使用 Infinispan Cache CR 在 Infinispan 叢集中部署快取。
請參閱下方
sessions
快取的範例。針對上述列出的所有其他快取重複此操作。sessions
快取的快取 CRapiVersion: infinispan.org/v2alpha1 kind: Cache metadata: name: sessions namespace: keycloak spec: clusterName: infinispan name: sessions template: |- distributedCache: mode: "SYNC" owners: "2" statistics: "true" remoteTimeout: "5000" encoding: media-type: "application/x-protostream" locking: acquireTimeout: "4000" transaction: mode: "NON_XA" (1) locking: "PESSIMISTIC" (2) stateTransfer: chunkSize: "16" indexing: enabled: true indexed-entities: - keycloak.RemoteUserSessionEntity
Infinispan 文件包含有關快取設定及其選項的更多詳細資訊。