サービス・メッシュの管理にOCI APIを使用する場合とkubectlを使用する場合の比較
サービス・メッシュ・サービスでは現在、OCI API (OCIコンソール、CLI、SDK、Terraform Provider)またはKubernetes CLI (kubectl)を使用して、メッシュ・リソース(イングレス・ゲートウェイ、仮想サービス、仮想デプロイメントなど)を管理できます。
メッシュ・リソースは、2つの方法のいずれかを使用して管理されます。ただし、Kubernetes CLIを使用してリソースを管理することを選択した場合、OCI APIを使用してリソースを変更することはできません。Kubernetesを使用してリソースを作成すると、Kubernetes Operatorはそのリソースの構成の正しい情報源になります。リソースに対する変更は、Kubernetes CLIでのみ行う必要があります。
OCI APIで作成されたリソースは、サービス・メッシュ・コントロール・プレーンにのみ存在します。リソースにはKubernetesに対応するカスタム・リソースがないため、Kubernetesオペレータはリソースを管理しません。
更新/同期の動作
Kubernetes CLI (kubectl)管理対象リソースを変更する唯一の方法は、kubectl
コマンドを実行することです。OCI API (OCIコンソール、CLI、SDK、Terraform Provider)を使用して行われた変更は、Kubernetesオペレータに同期できず、自動的に元に戻されます。Kubernetes Operatorは、1時間ごとに調整ループを実行します。OCI APIを使用して変更されたリソースは、OCI Service Operator for Kubernetesによって管理されるカスタム・リソースに格納されている構成と一致するように戻されます。
シナリオ
次のシナリオでは、サービス メッシュでの更新/同期動作について説明します。これらのシナリオはすべて、メッシュ リソースが存在することを前提としています。
- コンソールまたはCLIから作成された
kubectl
イングレス・ゲートウェイの構成が変更されます。- オペレータの調整プロセスが実行されると、変更は自動的に初期状態に戻ります。
- 仮想デプロイメントの変更は、
kubectl
を使用して行われます。kubectl
によって行われた変更は、演算子を更新し、すぐにOCI APIに反映されます。