Service Mesh (ASM) は Gateway API を使用して、Ambient モードで Waypoint コンポーネントをデプロイします。このトピックでは、Waypoint 設定をカスタマイズする方法について説明します。
範囲
バージョン 1.2.1 以降の Gateway API コンポーネントがクラスターにインストールされていること。
ConfigMap の作成
ASM では、カスタム ConfigMap を使用して Waypoint の Deployment、Horizontal Pod Autoscaler (HPA)、および ProxyConfig を指定できます。ConfigMap と Gateway リソースが同じ名前空間にあることを確認してください。
次の内容で gw-options.yaml という名前のファイルを作成します。
apiVersion: v1 kind: ConfigMap metadata: name: gw-options data: horizontalPodAutoscaler: | spec: minReplicas: 2 maxReplicas: 2 deployment: | spec: # HPA が有効な場合はレプリカを構成しないでください。 # replicas: 4 template: spec: containers: - name: istio-proxy resources: requests: cpu: 1000m # Pod がオフラインになるまでの最大待機時間。 terminationGracePeriodSeconds: 120 proxyConfig: | # プロキシのドレイン期間。 drainDuration: 30s # プロキシがドレインを停止するまでの最大期間。terminationGracePeriodSeconds > terminationDrainDuration > drainDuration となるようにしてください。 terminationDrainDuration: 60sdata.horizontalPodAutoscaler: HPA 構成を定義します。この例では、Pod レプリカの最小数と最大数の両方が 2 に設定されています。data.deployment: Pod レベルのテンプレートを構成します。この例では、コンテナー名はistio-proxyに、CPU リクエストは 1000m に設定されています。data.proxyConfig: Istio プロキシ (istio-proxy) のランタイム構成を定義します。
ConfigMap を作成します。
kubectl apply -f gw-options.yaml
Waypoint の更新
Gateway リソースを変更して ConfigMap を参照します。次の内容を gateway.yaml という名前のファイルとして保存します。
apiVersion: gateway.networking.k8s.io/v1 kind: Gateway metadata: name: waypoint namespace: default spec: infrastructure: parametersRef: group: "" kind: ConfigMap name: gw-options gatewayClassName: istio-waypoint listeners: - allowedRoutes: namespaces: from: Same name: mesh port: 15008 protocol: HBONEWaypoint を更新します。
kubectl apply -f gateway.yaml更新後、ASM は ConfigMap の構成を使用して、デフォルトのリソース構成に対して Strategic Merge Patch を実行します。その後、ASM はマージされた構成に基づいて Waypoint リソースを作成または更新します。