2.11.2. 自動サイドカーインジェクションの有効化
アプリケーションをデプロイする場合は、deployment オブジェクトで spec.template.metadata.labels の sidecar.istio.io/inject ラベルを true に設定して、インジェクションをオプトインする必要があります。オプトイン方式であるため、サイドカーインジェクションが、他の OpenShift Container Platform 機能 (OpenShift Container Platform エコシステム内の多数のフレームワークで使用されるビルダー Pod など) に干渉することはありません。
前提条件
- Service Mesh の一部である namespace と、自動サイドカーインジェクションが必要なデプロイメントを特定しておく。
手順
デプロイメントを見つけるには、
oc getコマンドを使用します。$ oc get deployment -n <namespace>たとえば、
bookinfo名前空間内の ratings-v1 マイクロサービスのデプロイメントYAML ファイルを表示するには、次のコマンドを使用してリソースを YAML 形式で表示します。oc get deployment -n bookinfo ratings-v1 -o yaml-
エディターでアプリケーションの
DeploymentYAML ファイルを開きます。 次の例に示すように、
spec.template.metadata.labels.sidecar.istio/injectを Deployment YAML ファイルに追加し、sidecar.istio.io/injectをtrueに設定します。bookinfo deployment-ratings-v1.yaml のスニペットの例
apiVersion: apps/v1 kind: Deployment metadata: name: ratings-v1 namespace: bookinfo labels: app: ratings version: v1 spec: template: metadata: labels: sidecar.istio.io/inject: 'true'注記自動サイドカーインジェクションを有効にするときに
annotationsパラメーターを使用することは非推奨となりました。代わりにlabelsパラメーターを使用してください。-
DeploymentYAML ファイルを保存します。 ファイルをアプリケーションが含まれるプロジェクトに追加し直します。
$ oc apply -n <namespace> -f deployment.yamlこの例では、
bookinfoはratings-v1アプリを含むプロジェクトの名前であり、deployment-ratings-v1.yamlは編集したファイルです。$ oc apply -n bookinfo -f deployment-ratings-v1.yamlリソースが正常にアップロードされたことを確認するには、以下のコマンドを実行します。
$ oc get deployment -n <namespace> <deploymentName> -o yaml以下に例を示します。
$ oc get deployment -n bookinfo ratings-v1 -o yaml