OpenShift への Keycloak のインストール

minikube 環境と同様のセットアップで OpenShift に Keycloak をデプロイします。

minikube がこのセットアップの主要なターゲットですが、これは OpenShift 環境でそれを使用する方法に関する進捗状況を追跡します。「サポートされている機能」を参照してください。

カスタムリソース定義をインストールできるようにするには、cluster-admin ロールを持つ OpenShift へのアクセスが必要です。

このセットアップは、適切なパスワードとトランスポート暗号化によって適切に保護されていないノードポートと URL を公開するため、OpenShift はインターネットからアクセス可能であってはなりません。

前提条件

oc cluster-info を使用してセットアップが機能することを確認します。

サポートされている機能

現時点では、OpenShift で動作しないことがわかっているのは次のとおりです。

sqlpad

コンテナには root ユーザーが必要です。

monitoring

OpenShift は、監視のために Grafana、OpenTelemetry、Jaeger のみを提供します。 Graphite はまだ実装されていません。

Cryostat は、AWS への OpenShift のインストールで提供されているインストールスクリプトのデフォルトである Cryostat Operator がインストールされている必要があります。

OpenShift への Keycloak のインストール

  1. https://github.com/keycloak/keycloak-benchmark/ から Git リポジトリをチェックアウトします。

  2. provision/openshift フォルダーに移動します。

  3. task コマンドを実行して、OpenShift 上のすべてのコンテナをプロビジョニングします。

デプロイメントを構成するには、詳細について「デプロイメントのカスタマイズ」を参照してください。

Operator Hub からの Keycloak のインストール

デフォルトでは、オペレーターは keycloak-k8s-resources を介して直接インストールされます。

Operator Lifecycle Manager を使用して Operator Hub からオペレーターをインストールするには、次を設定します。

KC_OPERATOR_OLM=true

さらに、次のパラメーターをカスタマイズできます。

KC_OPERATOR_CATALOG_SOURCE_NS

OLM カタログソースの名前空間。デフォルトは openshift-marketplace です。

KC_OPERATOR_CATALOG_SOURCE

OLM カタログソース。デフォルトは community-operators です。

KC_OPERATOR_NAME

カタログソース内の Keycloak Operator の名前。デフォルトは keycloak-operator です。

KC_OPERATOR_CHANNEL

OLM サブスクリプションチャネル。設定されていない場合、選択したオペレーターのデフォルトチャネルが使用されます。

KC_OPERATOR_VERSION

Keycloak Operator バージョン。設定されていない場合、選択したチャネルの現在のバージョンが使用されます。

OLM サブスクリプションに使用される実際の Cluster Service Version は、慣例により次のように設定されることに注意してください。

${KC_OPERATOR_NAME}.v${KC_OPERATOR_VERSION}

インストール確認

すべてのサービスが実行されているかどうかを確認し、利用可能な URL のリストを受け取るには、次のスクリプトを実行します。

./isup.sh

Grafana 監視のインストール

事前構成済みのダッシュボードを使用して Grafana をインストールするには、次の手順を実行します。

  1. task monitoring コマンドを実行します。

インストール確認

Grafana ダッシュボードは、次の場所で利用できるようになります。

https://grafana.apps.<domain name>
これは、OpenShift クラスターを使用するすべてのユーザーが共有するリソースです。次のセクションでは、異なる名前空間に複数の Keycloak をインストールする方法について説明しますが、これは Grafana インスタンスには適用されません。

OpenShift ロギング

OpenShift ロギングはデフォルトで有効になっています。すべてのアプリケーションおよびインフラストラクチャポッドログは、openshift-logging 名前空間の非レプリケート ElasticSearch インスタンスに保存されます。

ログは Kibana UI でクエリできます。Kibana UI には、Openshift UI の アプリケーションランチャー application launcherロギング を介してアクセスできます。

application launcher logs

さらに、ポッドのログを表示するときは、Kibana で表示 リンクを使用して、この特定のポッドのログを検索します。

show in kibana

Kibana に最初にログインするときは、ログをクエリできるように、タイムスタンプフィールド @timestamp を使用してインデックスパターン * を作成します。詳細については、OpenShift ドキュメントを参照してください。

1 つの OpenShift クラスターを他のユーザーと共有する

次のオプションは、1 つの OpenShift クラスター内で複数のユーザーが同時に使用できるように Keycloak デプロイメントをカスタマイズするために必要です。

KC_NAMESPACE_PREFIX

名前空間名をカスタマイズできます。結果の名前空間は ${KC_NAMESPACE_PREFIX}keycloak になります。デフォルトでは、名前空間プレフィックスは $(whoami)- に設定されていますが、.env ファイルでカスタマイズできます。