このドキュメントで説明する変換webフックは、実行時にweblogic.oracle/v8
スキーマ・ドメイン・リソースを透過的に処理しますが、最新のweblogic.oracle/v9
スキーマで導入された新しいフィールドを、現在weblogic.oracle/v8
のドメインで使用する場合は、そのドメイン・リソース・ファイルを更新し、新しいクラスタ・リソース・ファイルを作成する必要がある可能性があります。 この変換を簡略化するには、「手動アップグレード・コマンド行ツール」を参照してください。
オペレータ管理ドメインのスキーマを定義するKubernetesクラスタ内のドメインCustomResourceDefinition (CRD)は、以前のオペレータ・リリースからオペレータ・バージョン4.0で大幅に変更されたため、APIバージョンをweblogic.oracle/v9
に更新しました。 たとえば、オペレータ・バージョン4.0で「補助イメージ」が拡張され、その構成が変更されました。 オペレータ4.0は、「Kubernetes Webフック変換」戦略およびWebLogicドメイン・リソース変換webフックを使用して、weblogic.oracle/v8
スキーマを持つドメイン・リソースをweblogic.oracle/v9
スキーマに自動的に透過的にアップグレードします。 Webフック変換計画では、Kubernetes APIサーバーは、weblogic.oracle/v8
スキーマ・ドメイン・リソースで定義された補助イメージの構成を取得して、同等のweblogic.oracle/v9
スキーマ構成に変換する外部RESTサービスを内部的に起動します。 WebLogicドメイン・リソース変換webフックは、Kubernetesクラスタのシングルトン・デプロイメントです。 これは、オペレータのインストール時にデフォルトでインストールされ、いずれかのオペレータがアンインストールされたときにアンインストールされますが、オプションで単独でインストールおよびアンインストールできます。 詳細は、「変換webフックをインストール」および「変換webフックのアンインストール」を参照してください。 weblogic.oracle/v8
スキーマを持つドメイン・リソースをweblogic.oracle/v9
スキーマに手動でアップグレードするには、「ドメイン・リソースのアップグレード」を参照してください。
次の表に、WebLogicドメイン・リソース変換webフックのコンポーネントとその目的を示します。
コンポーネント・タイプ | コンポーネント名 | 用途 |
---|---|---|
デプロイメント | webLogic-operator-webhook |
WebLogicドメイン・リソース変換webフックのランタイム・ポッドを管理します。 |
サービス | webLogic-operator-webhook-svc |
Kubernetes APIサーバーでは、このサービスを使用して、WebLogicドメインCRDで定義された変換webフック・ランタイムにアクセスします。 |
シークレット | webLogic-webhook-secrets |
Kubernetes APIサーバーとWebLogicドメイン・リソース変換webフックのRESTエンドポイント間の通信を保護するために使用されるCA証明書およびキーが含まれます。 |
ドメインCRDのspec.conversion スタンザ |
ドメイン変換が必要な場合に外部サービスをコールするために、Kubernetes APIサーバーによって内部的に使用されます。 |
ノート:
変換webフック・デプロイメントwebLogic-operator-webhook
は、オペレータ・イメージと同じイメージを使用し、これを必要とします。 レプリカの数を増やすことでデプロイメントをスケーリングできますが、これはほとんど必要ありません。
変換webフック・デプロイメントでは、ドメインCRDのspec.conversion.strategy
フィールドがWebhook
に設定されます。 また、サービス名、ネームスペース、パス、ポート、認証に使用される自己署名CA証明書などのwebフック・クライアント構成の詳細も追加されます。
オペレータ・バージョン4.0から、オペレータのHelmチャートとともにhelm install
コマンドを使用して「オペレータのインストール」を実行する場合、デフォルトでは、変換webフックのデプロイメントおよびサポート・リソースも構成され、指定されたネームスペースで変換webフックがデプロイされます。 webフックはクラスタ内のシングルトン・デプロイメントであることに注意してください。 したがって、webフックがすでにクラスタにインストールされており、オペレータのインストール・バージョンが同じか古い場合、オペレータのインストールではwebフックのインストールがスキップされます。 ただし、オペレータのバージョンが新しい場合は、新しいwebフック・デプロイメントが作成され、CRDのすべてのwebフック・トラフィックが新しいwebフックにリダイレクトされます。
セキュリティに関する考慮事項: helm install
ステップでは、既存の変換webフック・デプロイメントを検索するために、すべてのネームスペースおよびデプロイメントをリストおよび読取りするためのクラスタ・レベルの権限が必要です。 クラスタ・レベルの権限を付与できず、複数のオペレータがデプロイされている場合は、変換webフックを別途インストールし、Helm構成値operatorOnly
をhelm install
コマンドでtrue
に設定して、複数の変換webフック・デプロイメントを防止します。 また、webフックでは、通常は同じネームスペースで実行されているオペレータと同じサービス・アカウントであるサービス・アカウントが使用されます。 このサービス・アカウントには、変換webフック・ネームスペースでイベントを作成および読み取るための権限が必要です。 詳細は、RBACを参照してください。
オペレータ・バージョン4.xには、変換webフックが必要です。 operatorOnly
Helm構成値は拡張設定であり、変換webフックがすでにインストールされている場合にのみ使用する必要があります。
指定されたネームスペースで変換webフック(オペレータではなく)のみをインストールする場合は、helm install
コマンドでHelm構成値webhookOnly
をtrue
に設定します。 「前提条件」を満たした後、次のコールを行います:
$ helm install sample-weblogic-conversion-webhook \
weblogic-operator/weblogic-operator \
--namespace sample-weblogic-conversion-webhook-ns \
--set "webhookOnly=true" \
--wait
前述のコマンドは、sample-weblogic-conversion-webhook-ns
ネームスペースにsample-weblogic-conversion-webhook
という名前のHelmリリースを作成し、変換webフックのデプロイメントおよびサポート・リソースを構成し、変換webフックをデプロイします。 このコマンドは、sample-weblogic-conversion-webhook-ns
ネームスペースにdefault
サービス・アカウントを使用します。
変換webフックがデプロイされて実行されているかどうかを確認するには、「トラブルシューティング」を参照してください。
オペレータのhelm uninstall
コマンド中に変換webフックが削除されないようにするには、オペレータ・リリースのhelm install
中にHelm構成値preserveWebhook
をtrue
に設定します。
次の表は、様々なHelm構成値に対する様々なオペレータHelm
チャート・コマンドの動作を示しています。
HelmコマンドとオペレータHelmチャート | Helmの構成値 | 動作 |
---|---|---|
Helmインストール | 指定されていません | オペレータおよび変換webフックがインストールされました。 |
Helmインストール | webhookOnly=true |
変換webフックのみがインストールされました。 |
Helmインストール | operatorOnly=true |
取り付けられているのはオペレータだけです。 |
Helmインストール | preserveWebhook=true |
オペレータとwebフックがインストールされ、将来のアンインストールによってwebフックが削除されることはありません。 |
Helmアンインストール | オペレータおよびwebフック・デプロイメントがアンインストールされました。 | |
helm install 中にpreserveWebhook=true が設定されたHelmアンインストール |
オペレータ・デプロイメントはアンインストールされ、webフック・デプロイメントは保持されます。 |
ノート: 同じバージョンまたは新しいバージョンのwebフック・デプロイメントがすでに存在する場合、Webフック・インストールはスキップされます。 helm install
ステップでは、すべてのネームスペースの既存の変換webフック・デプロイメントを検索するために、クラスタ・レベルの権限が必要です。
weblogic.oracle/v8
以前のスキーマを使用してドメインをデプロイし、複数のオペレータがデプロイされているか、オペレータがデプロイされていないドメインを作成する場合は、webフックをアンインストールしない方がよい場合があります。 これらの条件下で変換webフック・ランタイムを使用できない場合は、conversion webhook not found
エラーが表示されます。 このエラーを回避するには、webフックを再インストールし、将来、オペレータのインストール時にpreserveWebhook=true
Helm構成値を使用します。
helm uninstall
コマンドを使用して「オペレータのアンインストール」すると、リリースおよびそのリソースに関連付けられた変換webフックがKubernetesクラスタから削除されます。 ただし、webhookOnly=true
Helm構成値を使用して変換webフックのみをインストールした場合は、helm uninstall
コマンドを個別に実行して、リリースおよびそのリソースに関連付けられた変換webフックを削除します。
たとえば、変換webフックのHelmリリース名がsample-weblogic-conversion-webhook
で、変換webフック・ネームスペースがsample-weblogic-conversion-webhook-ns
であるとします:
$ helm uninstall sample-weblogic-conversion-webhook -n sample-weblogic-conversion-webhook-ns
このコマンドは、変換webフック・デプロイメント(weblogic-operator-webhook
)を削除し、サービスやシークレットなどの変換リソースも削除します。
「変換webフックのトラブルシューティング」を参照してください。