Kubernetesサービス・メッシュのOCIサービス・オペレータの構成

OCI Service Operator for Kubernetesは、コンテナ・ネイティブ・アプリケーションでOCIサービスの管理と接続におけるシームレスなエクスペリエンスを提供します。OCI Service Operator for Kubernetesは、OCIサービスのオペレータのライブラリです。Kubernetesユーザーは、Kubernetes APIを使用して、オペレータをインストールし、サービス・メッシュなどのOCIリソースに対してアクションを実行できます。オペレータは、OCI CLIまたはその他のOCI開発者ツールを使用してサービスAPIと対話する必要性を排除します。この項では、OCI Service Operator for Kubernetesのサービス・メッシュで使用される構成について説明します。

ポッドのSidecar注入

OCI Service Operator for Kubernetesバンドルのインストール中に、MutatingWebhookConfigurationコールバックはネームスペース・セレクタを設定して、ネームスペース内のすべてのポッドに対するサイドカー・インジェクションを有効または無効にします。ネームスペース・レベルおよびポッド・レベルでのservicemesh.oci.oracle.com/sidecar-injectionラベルの存在に基づいて、サイドカー・インジェクションは有効または無効になります。次の例は、ネームスペースおよびポッド・レベルでのラベル付けを示しています。

  • ラベルが存在しないため、ネームスペースを作成してもサイドカー・インジェクションは起動されません。
    kubectl create namespace <your-namespace>
  • ネームスペース・レベルでサイドカー・インジェクションを有効にするには、ラベルをenabledに設定します。
    kubectl label namespace <your-namespace> servicemesh.oci.oracle.com/sidecar-injection=enabled
  • ネームスペース・レベルでサイドカー・インジェクションを無効にするには、ラベルをdisabledに設定します。
    kubectl label namespace <your-namespace> servicemesh.oci.oracle.com/sidecar-injection=disabled
  • ポッドを作成してもラベルは追加されず、ラベルはネームスペースから継承されます。ポッド・レベルでサイドカー・インジェクションを有効にするには、ラベルをenabledに設定します。
    kubectl label pods <pod-name> -n <your-namespace> servicemesh.oci.oracle.com/sidecar-injection=enabled
  • ポッド・レベルでサイドカー・インジェクションを無効にするには、ラベルをdisabledに設定します。
    kubectl label pods <pod-name> -n <your-namespace> servicemesh.oci.oracle.com/sidecar-injection=disabled
重要

sidecar-injectionラベルのロジックは次のように機能します。
  • sidecar-injectionラベルがポッド・レベルに設定されている場合、ポッド・ラベル値に基づいてサイドカー・インジェクションが有効または無効になります。
  • ポッド・レベルでsidecar-injectionラベルが設定されていない場合、sidecar-injectionはネームスペース・ラベル値に基づいて有効または無効になります。
  • ラベルが設定されていない場合、デフォルトではサイドカーの注入は無効になります。

サービス・メッシュ・プロキシ・サーバーの構成

サービス・メッシュ・プロキシ・サービスの構成の詳細は、次を参照してください。