Service Topology による効率的なロードバランシング #jawsug_ct / JAWS Container SIG 16th

332f89cc697355902a817506b6995f2b?s=47 y_taka_23
January 23, 2020

Service Topology による効率的なロードバランシング #jawsug_ct / JAWS Container SIG 16th

JAWS コンテナ支部 #16 で使用したスライドです。

332f89cc697355902a817506b6995f2b?s=128

y_taka_23

January 23, 2020
Tweet

Transcript

  1. Service Topology による 効率的なロードバランシング チェシャ猫 (@y_taka_23) JAWS-UG コンテナ支部 #16 (2020/01/23)

  2. 東西分散クラスタの機運? https://aws.amazon.com/jp/blogs/news/in-the-works-aws-osaka-local-region-expansion-to-full-region/

  3. そもそもマルチ AZ 構成は OK?

  4. マルチ AZ クラスタの留意点 • 障害時の可用性 ◦ AZ がダウンすると複数の Node が同時に死ぬ

    ◦ 複数 Node 上に分散していても全滅の危険 • 通信のレイテンシ ◦ Service から Pod への振り分けはラウンドロビン ◦ Pod 間の通信で AZ を跨ぎたくない
  5. マルチ AZ クラスタの留意点 • 障害時の可用性:Topology Spread ◦ AZ がダウンすると複数の Node

    が同時に死ぬ ◦ 複数 Node 上に分散していても全滅の危険 • 通信のレイテンシ:Service Topology ◦ Service から Pod への振り分けはラウンドロビン ◦ Pod 間の通信で AZ を跨ぎたくない
  6. Topology Spread の参考スライド https://speakerdeck.com/ytaka23/kubernetes-meetup-tokyo-25th

  7. まず通常の Service を復習

  8. None
  9. もうちょい内部の仕組みを知ろう

  10. iptables

  11. iptables

  12. iptables

  13. iptables

  14. Service Topology

  15. Service Topology とは • Kubernetes v1.17 の α 機能 •

    ネットワークを Node 上の Label で表現 ◦ AWS 上では自動で付与されるラベルが使える • 効率的な Pod-Pod 間の通信が可能に ◦ ネットワーク的に「近い」Pod を狙って通信 ◦ hostname, zone, region をサポート ◦ Pod が無い場合に多段 Fallback も設定できる
  16. Service Topology の定義

  17. Service Topology の定義 まず同じ Node 内で Pod を探す

  18. Service Topology の定義 無ければ同じ Zone 内で探す

  19. Service Topology の定義 それでも無ければ任意の場所

  20. 機能の本体は EndpointSlice

  21. EndpointSlice • Service に属する Endpoint を分割 ◦ Pod 100 個ごとに分割、部分的に更新可能

    ◦ 通信コストを下げることができる • Endpoint の改良版的な扱い ◦ Kubernetes v1.17 時点で β 機能 ◦ API が再設計されている ◦ Pod に対応する Topology の情報を保持
  22. EndpointSlice の分割 101 個の Pod 2 個に分割された EndpointSlice

  23. Topology 情報の保持

  24. iptables

  25. iptables

  26. iptables

  27. iptables

  28. まとめ • マルチ AZ クラスタの留意点 ◦ AZ を跨いだ Pod 間通信のレイテンシの問題

    • Service Topology で通信を効率化 ◦ ネットワーク的に「近い」Pod を選択 • 背後にあるのは EndpointSlice ◦ 従来の Endpoint を分割・トポロジ情報を追加
  29. Serve Services Serviceably! Presented by チェシャ猫 (@y_taka_23)