Keycloak Operator インストール

Kubernetes および OpenShift への Keycloak Operator のインストール方法

Keycloak Operator のインストール

このガイドでは、Kubernetes または OpenShift クラスターに Keycloak Operator をインストールする方法について説明します。

Operator Lifecycle Manager を使用したインストール

Kubernetes 環境に Keycloak Operator をインストールする推奨される方法は、Operator Lifecycle Manager (OLM) を使用することです。

前提条件

  • OLM が環境にインストールされていることを確認してください。詳細については、OLM のインストール を参照してください。

  • クラスター管理者権限、または管理者によって付与された同等の権限を持っていることを確認してください。

OpenShift Web コンソールを使用する

次の手順では、Keycloak Operator のインストール方法について説明します。ただし、OLM を使用した Operator のインストールに関する一般的な手順については、OLM を使用した Operator のインストール を参照してください。デフォルトのカタログでは、Keycloak Operator は keycloak-operator という名前です。Operator を見つけるには、fast チャネルを使用してください。

この手順は、OpenShift クラスターで実行してください。

  1. OpenShift Container Platform Web コンソールを開きます。

  2. 左側の列で、ホームOperatorsOperatorHub をクリックします。

  3. 検索入力ボックスで「keycloak」を検索します。

    Select the Keycloak Operator in the UI
  4. 結果リストから Keycloak Operator を選択します。

  5. 画面の指示に従ってください。

    **fast** チャネルからインストールしていることを確認してください

    Configure Keycloak Operator

Operator をインストールした名前空間を監視するか、選択した単一の名前空間を監視するかを選択できます。

OLM アップグレードの手動承認の設定

重要: OLM の自動アップグレード

デフォルトでは、OLM は新しいバージョンがリリースされると Keycloak Operator を自動的に更新します。これにより、いくつかの重大な問題が発生する可能性があります。

  • デフォルトの Keycloak イメージを使用する場合、Operator は対応する Keycloak バージョンのマッチングイメージを使用するため、Operator がアップグレードされると**意図しない Keycloak のアップグレード**が発生します。

  • **カスタムイメージを使用している場合でも**、Operator のメジャーアップグレードは、既存の Keycloak CR 構成との間に重大な互換性の問題を引き起こす可能性があり、手動での介入が必要になる場合があります。

  • Keycloak CR の新しいフィールドまたは動作の変更は、既存のデプロイメントに影響を与える可能性があります。

  • データベース移行に関連する変更のため、以前の Keycloak バージョンにダウングレードするオプションはありません。

推奨事項

**Keycloak Operator に手動承認モードを使用することを強く推奨します。** これにより、以下のことが保証されます。

  1. アップグレードを承認する前に、リリースノートを確認し、移行の変更に従うことができます。

  2. アップグレードのメンテナンス期間をスケジュールできます。

  3. 最初に非本番環境でアップグレードをテストできます。

  4. 問題が発生した場合に以前の Keycloak にダウングレードできるように、データベースをバックアップできます。

OLM による自動アップグレードを防ぐには、Operator のインストール時に承認ストラテジーを Manual に設定してください。

OpenShift Web コンソールを使用する

Operator をインストールする際に、更新承認ストラテジーセクションで Manual 承認を選択します。

Configure manual approval in OLM
CLI を使用する

コマンドラインインストールの場合、installPlanApproval: Manual で Subscription を作成します。

apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
  name: keycloak-operator
  namespace: <target-namespace>
spec:
  channel: fast
  name: keycloak-operator
  source: <catalog-source>
  sourceNamespace: <catalog-namespace>
  installPlanApproval: Manual

インストール後、アップグレードには OLM インターフェースまたは CLI を介した手動承認が必要になります。

Operator Lifecycle Manager なしで kubectl を使用したインストール

`kubectl` コマンドを使用して、バニラ Kubernetes クラスターに Operator をインストールできます。

  1. 以下のコマンドを入力して CRD をインストールします。

    kubectl apply -f https://raw.githubusercontent.com/keycloak/keycloak-k8s-resources/26.2.0/kubernetes/keycloaks.k8s.keycloak.org-v1.yml
    kubectl apply -f https://raw.githubusercontent.com/keycloak/keycloak-k8s-resources/26.2.0/kubernetes/keycloakrealmimports.k8s.keycloak.org-v1.yml
  2. 以下のコマンドを入力して Keycloak Operator デプロイメントをインストールします。

    kubectl apply -f https://raw.githubusercontent.com/keycloak/keycloak-k8s-resources/26.2.0/kubernetes/kubernetes.yml

Operator は、インストールされた名前空間を監視します。オプションで、-n オプションを使用して名前空間を選択できます。

複数の Operator のインストール

現在、Operator が複数の名前空間またはすべての名前空間を監視することは完全にはサポートされていません。複数の名前空間を監視したい場合は、複数の Operator をインストールできます。

これを行う場合は、以下の点に注意してください。

  • すべての Operator は、クラスター全体にインストールされるため、CRD (Custom Resource Definitions) を共有します。

  • 新しい Operator バージョンの CRD リビジョンは、十分に非推奨となったフィールドの最終的な削除を除き、破壊的な変更を導入することはありません。したがって、新しい CRD は一般的に後方互換性があります。

  • 最後にインストールされた CRD が使用されるものになります。これは OLM インストールにも当てはまり、最後にインストールされた Operator バージョンは、CRD がクラスターに既に存在する場合でも、CRD をインストールしてオーバーライドします。

  • 古い CRD は、新しい Operator で使用される新しいフィールドと前方互換性がない場合があります。OLM を使用すると、カスタムリソースがインストールされている CRD と互換性があるかどうかがチェックされるため、新しいフィールドの使用は、古い Operator バージョンの同時インストールを妨げる可能性があります。

  • 新しい CRD によって導入されたフィールドは、古い Operator ではサポートされません。古い Operator は、そのような新しいフィールドを使用する CR を処理できず、認識されないフィールドをデシリアライズするエラーが発生します。

したがって、複数の Operator をインストールするシナリオでは、バージョン間の潜在的な問題を最小限に抑えるために、バージョンを可能な限り一致させることを推奨します。

このページについて