ロカリティ負荷分散
この一連のタスクでは、Istioでロカリティ負荷分散を構成する方法を示します。
ロカリティは、メッシュ内のワークロードインスタンスの地理的な位置を定義します。次の3つ組がロカリティを定義します。
リージョン:us-eastなどの広大な地理的エリアを表します。通常、リージョンには複数のアベイラビリティゾーンが含まれます。Kubernetesでは、ラベル
topology.kubernetes.io/region
によって、ノードのリージョンが決定されます。ゾーン:リージョン内のコンピューティングリソースのセット。リージョン内の複数のゾーンでサービスを実行することで、エンドユーザーとのデータロカリティを維持しながら、リージョン内のゾーン間でフェイルオーバーが発生する可能性があります。Kubernetesでは、ラベル
topology.kubernetes.io/zone
によって、ノードのゾーンが決定されます。サブゾーン:管理者は、より詳細な制御(「同じラック」など)のためにゾーンをさらに細分化できます。サブゾーンの概念はKubernetesには存在しません。その結果、Istioはサブゾーンを定義するために、カスタムノードラベル
topology.istio.io/subzone
を導入しました。
ロカリティは、一致順序で階層化されています。
リージョン
ゾーン
サブゾーン
つまり、リージョンfoo
のゾーンbar
で実行されているPodは、リージョンbaz
のゾーンbar
で実行されているPodに対してローカルとはみなされません。
Istioはこのロカリティ情報を使用して、ロードバランシングの動作を制御します。このシリーズのいずれかのタスクに従って、メッシュのロカリティロードバランシングを設定してください。