Infinispan デプロイメント: シングルクラスター
これは、シングルクラスター環境での Infinispan のデプロイメントについて説明しています。
対象読者
このガイドでは、シングルクラスター環境に Infinispan をデプロイするために必要な手順について説明します。簡略化のため、このガイドでは、外部 Infinispan と Keycloak を組み合わせて使用できるようにするための最小限の構成を使用します。
追加のガイドについては、実稼働環境での実行 を参照してください。
手順
-
Infinispan Operator をインストールします。
-
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
キャッシュの Cache 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_DURABLE_XA" (1) locking: "PESSIMISTIC" (2) stateTransfer: chunkSize: "16" indexing: enabled: true indexed-entities: - keycloak.RemoteUserSessionEntity
Infinispan ドキュメント には、キャッシュ構成とそのオプションに関する詳細が記載されています。