
このガイドでは、Kubernetes または OpenShift クラスターに Keycloak Operator をインストールする方法について説明します。
Kubernetes 環境に Keycloak Operator をインストールする推奨される方法は、Operator Lifecycle Manager (OLM) を使用することです。
OLM が環境にインストールされていることを確認してください。詳細については、OLM のインストール を参照してください。
クラスター管理者権限、または管理者によって付与された同等の権限を持っていることを確認してください。
次の手順では、Keycloak Operator のインストール方法について説明します。ただし、OLM を使用した Operator のインストールに関する一般的な手順については、OLM を使用した Operator のインストール を参照してください。デフォルトのカタログでは、Keycloak Operator は keycloak-operator
という名前です。Operator を見つけるには、fast
チャネルを使用してください。
この手順は、OpenShift クラスターで実行してください。
OpenShift Container Platform Web コンソールを開きます。
左側の列で、ホーム、Operators、OperatorHub をクリックします。
検索入力ボックスで「keycloak」を検索します。
結果リストから Keycloak Operator を選択します。
画面の指示に従ってください。
**fast** チャネルからインストールしていることを確認してください
Operator をインストールした名前空間を監視するか、選択した単一の名前空間を監視するかを選択できます。
重要: OLM の自動アップグレード デフォルトでは、OLM は新しいバージョンがリリースされると Keycloak Operator を自動的に更新します。これにより、いくつかの重大な問題が発生する可能性があります。
推奨事項 **Keycloak Operator に手動承認モードを使用することを強く推奨します。** これにより、以下のことが保証されます。
|
OLM による自動アップグレードを防ぐには、Operator のインストール時に承認ストラテジーを Manual
に設定してください。
コマンドラインインストールの場合、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 を介した手動承認が必要になります。
`kubectl` コマンドを使用して、バニラ Kubernetes クラスターに Operator をインストールできます。
以下のコマンドを入力して 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
以下のコマンドを入力して Keycloak Operator デプロイメントをインストールします。
kubectl apply -f https://raw.githubusercontent.com/keycloak/keycloak-k8s-resources/26.2.0/kubernetes/kubernetes.yml
Operator は、インストールされた名前空間を監視します。オプションで、-n
オプションを使用して名前空間を選択できます。
現在、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 をインストールするシナリオでは、バージョン間の潜在的な問題を最小限に抑えるために、バージョンを可能な限り一致させることを推奨します。