Upgrade to Pro — share decks privately, control downloads, hide ads and more …

KubeCon NA 2024 Recap: How to Move from Ingress...

KubeCon NA 2024 Recap: How to Move from Ingress to Gateway API with Minimal Hassle

Kubernetes Meetup Tokyo #68 KubeCon NA 2024 Recap で登壇した際の資料です。

Yoshiaki Sakota

December 12, 2024
Tweet

Other Decks in Technology

Transcript

  1. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. KubeCon NA

    2024 Recap: 東京ガス株式会社 迫田 賀章 How to Move from Ingress to Gateway API with Minimal Hassle
  2. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 2 自己紹介

    @ysakotch ❑名前 迫田賀章 / Yoshiaki Sakota ❑所属 東京ガス株式会社リビング戦略部 SREチーム ❑経歴 SI -> 事業会社PM -> 2024年1月より現職 ❑好き 甘いもの
  3. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 3 会社名

    創立 従業員数 売上高(連結) 主な事業 東京ガス株式会社 明治18年(1885)年10月1日 単体:3,190名 連結:15,504名(2024年3月31日現在) 26,645億円(2023年度) エネルギー(ガス+電気)ソリューション、海外、都市ビジネス(不動産)など エネルギー需要の増大に伴い、クリーンで高効率なエネルギーとして、1969年、 日本で初めて LNG (液化天然ガス) を導入。 お客さまアカウント数は約1,300万件(*1) 都市ガス国内販売シェア約32%は国内No.1。 小売電力販売件数も387.1万件(*2) に到達、新電力No.1となっています。 *1 ガス・電気・サービス延べ契約数 2024年3月末時点 *2 2024年3月末時点 会社紹介
  4. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 4 CloudNative

    Days 2024 Winter に登壇しました! 内製開発やマイクロサービスについてお話ししています。 ご興味のある方はぜひ御覧ください! https://event.cloudnativedays.jp/cndw2024/talks/2370
  5. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 5 セッション概要

    タイトル How to Move from Ingress to Gateway API with Minimal Hassle (訳:最小限の手間で Ingress から Gateway API に移行する方法) Istio や Envoy Proxy、Gateway API などのコントリビューターの方が登壇。 部屋がほぼ満員となるほど大人気であった。
  6. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 6 本セッションを聴講した理由

    当チームでも Ingress や Istio Ingress Gateway を利用している中で、 Gateway API への移行のベストプラクティスについて理解を深めるため。 技術面のみではなく、プロセスやマインドの面でも学びのある内容だった 当チームのマイクロサービス全体構成(主要サービスのみ記載)
  7. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 8 Ingress

    のおさらい • Ingress API の概要 • Ingress: アプリケーションのL7ルーティングを記載 • IngressClass: 特定のコントローラーを指定するリソース • Kubernetes クラスターへの通信を取り込む ためのリソース • 実装としてはクラウドロードバランサーが 通信の転送を担うことが多い • Ingress API の現在 • 約1年前に凍結 • マルチテナント/マルチロール環境には 適していない 引用:https://sched.co/1i7ng
  8. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 9 Gateway

    API のおさらい • Ingress の後継 API • 組織の複数ロールをサポートするように設計 • 約1年前に GA(一般利用可能)に昇格 • 現在20以上の実装が存在 • Kubernetes 本体への組み込みではなく、カスタムリ ソースとして定義 • 高速な機能追加が可能 • 厳密に型付けされたフィールドを採用 • 実装間の設定互換性を確保 • マルチテナントの強化 • より安全なマルチテナント環境の実現が可能 引用:https://sched.co/1i7ng
  9. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 10 移行の現実

    • 誰もが新機能を望む一方、移行は簡単ではない。 • 移行そのものに価値があるのではなく、移行後に価値が生まれる。 • 移行に失敗すると、まだ見ぬ価値のためにビジネスの現状が妨げられる。 • ネットワークが関係すると、移行はさらにリスクが高まる。 • ネットワーク障害はユーザー影響が大きい。 • 特に Gateway API では新しいモデルを学ぶ必要がある。 • 単一リソースから複数リソースへ。 • セキュリティと堅牢性を高める一方、複雑さを増す。 • 組織によっては Gateway API が想定するすべての役割が揃っていない。 引用:https://sched.co/1i7ng
  10. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 11 安全な移行を実行するための原則

    • 失敗しながらも成功するように計画する。 • 「大きな切り替え」を避ける。 • Observability 戦略を確認する。 • 組織内で誰がどの Gateway API の役割を担うか把握する。 • コミュニティのベストプラクティスを活用する。 引用:https://sched.co/1i7ng
  11. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 12 マイグレーションに役立つツール

    (Ingress2gateway) Ingress2gateway というツールを利用すると、Ingress や CRD を Gateway API に翻訳してくれる。 • クラスターにデプロイされている Ingress リソース等を検知し、 Gateway API リソースの Manifest を出力する。 引用:https://sched.co/1i7ng
  12. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 13 重み付き

    DNS/Routing DNS や CDN の重み付き DNS/Routing 機能を活用し、 Ingress から Gateway API へのトラフィックを徐々に移行することで、 ダウンタイムをほぼゼロに抑えて移行することを目指すことができる。 50% 50% Ingress Gateway API Backend Pods 引用:https://sched.co/1i7ng
  13. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 15 業務課題との関わり

    現状、Istio の VirtualService を SRE チームで管理しているため、 変更のたびに依頼が発生する。 SRE が管理している Namespace に Istio VirtualService を配置
  14. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 16 Istio

    の VirtualService をアプリチームに移譲することも可能ではあるが、 実装方法としてはいろんな手法を選択できる余地がある。 一方、Gateway API のロール志向を元にアーキテクチャを設計することで、 組織構造と実装を一致させることができる。 業務課題との関わり Role-oriented: Gateway API kinds are modeled after organizational roles that are responsible for managing Kubernetes service networking: • Infrastructure Provider: Manages infrastructure that allows multiple isolated clusters to serve multiple tenants, e.g. a cloud provider. • Cluster Operator: Manages clusters and is typically concerned with policies, network access, application permissions, etc. • Application Developer: Manages an application running in a cluster and is typically concerned with application-level configuration and Service composition. Gateway API の Design principles 引用:https://kubernetes.io/docs/concepts/services-networking/gateway/
  15. Copyright©︎ TOKYO GAS Co., Ltd. All Rights Reserved. 17 所感

    移行のためのシンプルで万能な解決策はなく、プロセスを検討し 実行計画をしっかり立てることが一番の近道となることを改めて認識。 その中でも役立つツールは存在しているため、活用し効率的に進める。 特に「コミュニティのベストプラクティスを活用する」に強い感銘を受けた。 「オープンソースコミュニティに参加し、オープンな場所で意見を投じる」、 「すぐにコードが書けなくても、Issue や Discussion で少しでも貢献する」 といったことを心がけたい。 これはこのセッションに限らず、KubeCon 全体で感じた。 Gateway API に移行する検証をしたときはどこかでお話ししたい!