ロカリティ負荷分散

この一連のタスクでは、Istioでロカリティ負荷分散を構成する方法を示します。

ロカリティは、メッシュ内のワークロードインスタンスの地理的な位置を定義します。次の3つ組がロカリティを定義します。

  • リージョンus-eastなどの広大な地理的エリアを表します。通常、リージョンには複数のアベイラビリティゾーンが含まれます。Kubernetesでは、ラベルtopology.kubernetes.io/regionによって、ノードのリージョンが決定されます。

  • ゾーン:リージョン内のコンピューティングリソースのセット。リージョン内の複数のゾーンでサービスを実行することで、エンドユーザーとのデータロカリティを維持しながら、リージョン内のゾーン間でフェイルオーバーが発生する可能性があります。Kubernetesでは、ラベルtopology.kubernetes.io/zoneによって、ノードのゾーンが決定されます。

  • サブゾーン:管理者は、より詳細な制御(「同じラック」など)のためにゾーンをさらに細分化できます。サブゾーンの概念はKubernetesには存在しません。その結果、Istioはサブゾーンを定義するために、カスタムノードラベルtopology.istio.io/subzoneを導入しました。

ロカリティは、一致順序で階層化されています。

  1. リージョン

  2. ゾーン

  3. サブゾーン

つまり、リージョンfooのゾーンbarで実行されているPodは、リージョンbazのゾーンbarで実行されているPodに対してローカルとはみなされません

Istioはこのロカリティ情報を使用して、ロードバランシングの動作を制御します。このシリーズのいずれかのタスクに従って、メッシュのロカリティロードバランシングを設定してください。