4.7. waypoint プロキシーのデプロイ
info アプリケーション namespace に waypoint プロキシーをデプロイして、トラフィックを Istio アンビエントデータプレーン経由でルーティングし、L7 ポリシーを適用できます。
前提条件
- アンビエントモード機能に必要な、サポートされている Kubernetes Gateway API カスタムリソース定義 (CRD) を提供する OpenShift Container Platform 4.19 以降にログインする。
- OpenShift クラスターに Red Hat OpenShift Service Mesh Operator 3.2.0 以降がインストールされている。
- Istio がアンビエントモードでデプロイされている。
-
次の例の
infoサンプルアプリケーションをデプロイした。 -
ターゲット namespace に
label istio.io/dataplane-mode=ambientを追加した。
手順
次の例のように、
infoアプリケーション namespace に waypoint プロキシーをデプロイします。設定例
apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: labels: istio.io/waypoint-for: service name: waypoint namespace: info spec: gatewayClassName: istio-waypoint listeners: - name: mesh port: 15008 protocol: HBONE次のコマンドを実行して、
waypointカスタムリソース (CR) を適用します。$ oc apply -f waypoint.yamlistio.io/waypoint-for: serviceラベルは、waypoint がサービスのトラフィックを処理することを示します。ラベルによって、処理されるトラフィックの種類が決まります。詳細は、「waypoint のトラフィックの種類」を参照してください。次のコマンドを実行して、waypoint を使用するために
infonamespace を登録します。$ oc label namespace info istio.io/use-waypoint=waypoint
namespace を登録すると、アンビエントデータプレーンを使用するすべての Pod から info 内のサービスへのリクエストは、L7 処理とポリシーを適用するために waypoint を経由してルーティングされます。
検証
次のコマンドを実行して、
infonamespace 内のすべてのサービスによって waypoint プロキシーが使用されていることを確認します。$ istioctl ztunnel-config svc --namespace ztunnel出力例
NAMESPACE SERVICE NAME SERVICE VIP WAYPOINT ENDPOINTS info details 172.30.15.248 waypoint 1/1 info details-v1 172.30.114.128 waypoint 1/1 info productpage 172.30.155.45 waypoint 1/1 info productpage-v1 172.30.76.27 waypoint 1/1 info ratings 172.30.24.145 waypoint 1/1 info ratings-v1 172.30.139.144 waypoint 1/1 info reviews 172.30.196.50 waypoint 3/3 info reviews-v1 172.30.172.192 waypoint 1/1 info reviews-v2 172.30.12.41 waypoint 1/1 info reviews-v3 172.30.232.12 waypoint 1/1 info waypoint 172.30.92.147 None 1/1
それぞれのサービスまたは Pod にラベルを付けることで、特定のサービスまたは Pod のみが waypoint を使用するように設定することもできます。Pod を明示的に登録する場合は、対応する gateway リソースに istio.io/waypoint-for: workload ラベルも追加します。