4.3. Istio アンビエントモードでの Bookinfo アプリケーションのデプロイ
ZTunnel
プロキシーを使用して、サイドカーインジェクションなしで Istio アンビエントモードで info
サンプルアプリケーションをデプロイできます。bookinfo
アプリケーションの詳細は、「Bookinfo アプリケーションについて」を参照してください。
前提条件
- Istio アンビエントモードに必要なサポートされている Kubernetes Gateway API カスタムリソース定義 (CRD) を含む OpenShift Container Platform 4.15 以降にクラスターをデプロイしている。
-
インストール方法に応じて、
cluster-admin
ロールを持つユーザーとして Web コンソールを使用するか、またはoc login
コマンドを使用して OpenShift Container Platform クラスターにログインしている。 - Red Hat OpenShift Service Mesh Operator をインストールし、Istio リソースを作成して、Operator によって Istio がデプロイされている。
-
IstioCNI
リソースが作成され、Operator によって必要なIstioCNI
Pod がデプロイされている。 -
Ztunnel
リソースが作成され、Operator によって必要なZtunnel
Pod がデプロイされている。
手順
次のコマンドを実行して、
info
namespace を作成します。oc create namespace info
$ oc create namespace info
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
istio-discovery=enabled
ラベルをinfo
namespace に追加します。oc label namespace info istio-discovery=enabled
$ oc label namespace info istio-discovery=enabled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
info
YAML ファイルを適用し、bookinfo
アプリケーションをデプロイします。oc apply -n info -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.26/samples/bookinfo/platform/kube/bookinfo.yaml
$ oc apply -n info -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.26/samples/bookinfo/platform/kube/bookinfo.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
info-versions
YAML ファイルを適用し、bookinfo
アプリケーションをデプロイします。oc apply -n info -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.26/samples/bookinfo/platform/kube/bookinfo-versions.yaml
$ oc apply -n info -f https://raw.githubusercontent.com/openshift-service-mesh/istio/release-1.26/samples/bookinfo/platform/kube/bookinfo-versions.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
info
Pod が実行されていることを確認します。oc -n info get pods
$ oc -n info get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
info
アプリケーションが実行中であることを確認します。oc exec "$(oc get pod -l app=ratings -n info \ -o jsonpath='{.items[0].metadata.name}')" \ -c ratings -n info \ -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>"
$ oc exec "$(oc get pod -l app=ratings -n info \ -o jsonpath='{.items[0].metadata.name}')" \ -c ratings -n info \ -- curl -sS productpage:9080/productpage | grep -o "<title>.*</title>"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow namespace 全体または個々の Pod にラベルを付けて、info アプリケーションを Istio アンビエントメッシュに追加します。
info namespace にすべてのワークロードを含めるには、次のコマンドを実行して、
istio.io/dataplane-mode=ambient
ラベルをbookinfo
namespace に適用します。oc label namespace info istio.io/dataplane-mode=ambient
$ oc label namespace info istio.io/dataplane-mode=ambient
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
特定のワークロードのみを含めるには、
istio.io/dataplane-mode=ambient
ラベルを個々の Pod に直接適用します。メッシュ内のワークロードを追加または除外するために使用されるラベルの詳細は、「関連情報」セクションを参照してください。
注記アンビエントメッシュにワークロードを追加する場合、アプリケーション Pod を再起動したり再デプロイしたりする必要はありません。サイドカーモードとは異なり、各 Pod 内のコンテナーの数は変更されません。
次のコマンドを実行して、Ztunnel プロキシーが Pod ネットワーク namespace でリスニングソケットを正常に開いたことを確認します。
istioctl ztunnel-config workloads --namespace ztunnel
$ istioctl ztunnel-config workloads --namespace ztunnel
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow