ローカリティ重み付け分散

このガイドに従って、ローカリティ間でのトラフィックの分散を構成します。

続行する前に、始める前にの手順を完了してください。

このタスクでは、region1 zone1curl ポッドを、HelloWorld サービスへのリクエストの送信元として使用します。以下のローカリティ間の分散で Istio を構成します。

リージョンゾーントラフィックの割合 (%)
region1zone170
region1zone220
region2zone30
region3zone410

重み付け分散の構成

以下を構成するDestinationRuleを適用します。

  • HelloWorld サービスのアウトライア検出。これは、分散を正しく機能させるために必要です。特に、サービスのエンドポイントが正常でない場合にサイドカープロキシが認識できるように構成します。

  • 上記の表に記載されているように、HelloWorld サービスの重み付け分散

$ kubectl --context="${CTX_PRIMARY}" apply -n sample -f - <<EOF
apiVersion: networking.istio.io/v1
kind: DestinationRule
metadata:
  name: helloworld
spec:
  host: helloworld.sample.svc.cluster.local
  trafficPolicy:
    loadBalancer:
      localityLbSetting:
        enabled: true
        distribute:
        - from: region1/zone1/*
          to:
            "region1/zone1/*": 70
            "region1/zone2/*": 20
            "region3/zone4/*": 10
    outlierDetection:
      consecutive5xxErrors: 100
      interval: 1s
      baseEjectionTime: 1m
EOF

分散の検証

curl ポッドから HelloWorld サービスを呼び出します。

$ kubectl exec --context="${CTX_R1_Z1}" -n sample -c curl \
  "$(kubectl get pod --context="${CTX_R1_Z1}" -n sample -l \
  app=curl -o jsonpath='{.items[0].metadata.name}')" \
  -- curl -sSL helloworld.sample:5000/hello

この手順を数回繰り返し、各ポッドの応答数が、このガイドの上部にある表の期待値と一致することを確認してください。

おめでとうございます! ローカリティ分散を正常に設定しました!

次のステップ

クリーンアップ このタスクのリソースとファイル。

この情報は役に立ちましたか?
改善のための提案はありますか?

ご意見ありがとうございます!