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

KubeCon + CloudNativeCon EU 2022 Recap Kubernetes Meetup Tokyo #51 / k8sjp51-kubecon-eu-2022-recap

KubeCon + CloudNativeCon EU 2022 Recap Kubernetes Meetup Tokyo #51 / k8sjp51-kubecon-eu-2022-recap

---
Cilium project Welcome, Vision & Updates
Thomas Graf & Liz Rice, Isovalent; Laurent Bernaille, Datadog
https://sched.co/ytq0
---
Better Bandwidth Management with eBPF
Daniel Borkmann & Christopher M. Luciano, Isovalent
https://sched.co/ytsQ
---
Falco to Pluginfinity and Beyond
Leonardo Grasso & Jason Dellaluce, Sysdig
https://sched.co/ytlz
---
Metrics as a First-Class citizen in the E2E Testing landscape
Matej Gera & Jéssica Lins, Red Hat
https://sched.co/ytuD
---
Supporting Long-Lived PodsUsing a Simple Kubernetes Webhook
Clément Labbe, Slack
https://sched.co/ytmo

More Decks by Masaya Aoyama (@amsy810)

Other Decks in Programming

Transcript

  1. Masaya Aoyama
    CyberAgent
    KubeCon + CloudNativeCon EU 2022 Recap
    Kubernetes Meetup Tokyo #51
    amsy810 @amsy810

    View Slide

  2. - Co-chair
    ੨ࢁ ਅ໵
    + CREATIONLINE - 技術アドバイザ
    + SAKURA Internet Research Center – 客員研究員
    + 3-shake 技術顧問
    + PLAID
    - Organizer
    - KaaS Product Owner - Publications
    Twitter: @amsy810

    View Slide

  3. F#1' 'BMDP &&UFTUJOH MPOHMJWFEQPET FUD
    https://gihyo.jp/admin/column/newyear/2022/cloudnative-prospect

    View Slide

  4. Cilium project Welcome, Vision & Updates
    Thomas Graf & Liz Rice, Isovalent; Laurent Bernaille, Datadog
    https://sched.co/ytq0

    View Slide

  5. $JMJVNGBNJMZ

    View Slide

  6. F#1'ͷద༻ྖҬ
    • 原因の切り分けを⾏う際に低レイヤーの情報を Pod やコンテナと紐付けた形で利⽤したい
    • Sidecar-less 等でアプリケーションから不可視な状態で様々なデータを収集したい
    • オーバーヘッドを極⼒抑えた形で導⼊したい
    Networking Observability Security
    servicemesh
    Cilium CNI Hubble tetragon
    tetragon
    ebpf
    ※ Falco / Pixie でしか取れないデータなどもあると思います

    View Slide

  7. $JMJVN$/*
    iptables 部分の eBPF 代替
    = 低レイヤーでのネットワーク関連処理(O11yを合わせて実現)
    L7 レイヤーの情報を元にした処理

    View Slide

  8. $JMJVN4FSWJDF.FTI

    View Slide

  9. )VCCMF
    サービス間通信の依存関係可視化
    【Cilium】
    • TCPコネクション等のL3/L4通信
    • HTTPリクエストやL7通信
    【Hubble】
    • L3/L4/L7のサービス間通信の状況
    • DNSクエリ等の通信状況
    • Network Policy の拒否
    リアルタイムのデータ収集
    定期的なデータ収集

    View Slide

  10. 5FUSBHPO
    ルールを定義し、
    リアルタイムの制御も可能
    Falco のようにルールセットは
    公開されていなさそう
    Kubernetes のワークロード情報と紐付け可能
    カーネルの情報やイベント情報を収集

    View Slide

  11. F#1'ͷద༻ྖҬ
    • 原因の切り分けを⾏う際に低レイヤーの情報を Pod やコンテナと紐付けた形で利⽤したい
    • Sidecar-less 等でアプリケーションから不可視な状態で様々なデータを収集したい
    • オーバーヘッドを極⼒抑えた形で導⼊したい
    Networking Observability Security
    servicemesh
    Cilium CNI Hubble tetragon
    tetragon
    ebpf
    ※ Falco / Pixie でしか取れないデータなどもあると思います

    View Slide

  12. Better Bandwidth Management with eBPF
    Daniel Borkmann & Christopher M. Luciano, Isovalent
    https://sched.co/ytsQ

    View Slide

  13. &%5Λར༻ͨ͠ଳҬ੍ޚ
    eBPF を⽤いて帯域制御の管理を向上
    ・EDT(Early Departure Timestamp)を利⽤
    ・timestamp を cilium が eBPF を⽤いて制御
    Evolving from AFAP – Teaching NICs about time
    Earliest Departure Timeモデル
    Replacing HTB with EDT and BPF
    タイミングホイール
    スケジューラー

    View Slide

  14. ᫔᫓੍ޚ ##3

    View Slide

  15. ##3XJUI1PE

    View Slide

  16. ##3XJUI1PE

    View Slide

  17. Falco to Pluginfinity and Beyond
    Leonardo Grasso & Jason Dellaluce, Sysdig
    https://sched.co/ytlz

    View Slide

  18. Falco architecture
    • カーネルモジュールか eBPF でデータを収集
    • Libsinsp: フィールドの抽出や加⼯
    • Libscap: イベントの収集

    View Slide

  19. Falco plugin
    • カーネルモジュールか eBPF でデータを収集
    • Libsinsp: フィールドの抽出や加⼯
    • Libscap: イベントの収集
    SDK は Go と C++ (WIP)
    動的共有ライブラリを⽣成して読み込む

    View Slide

  20. Falco plugin

    View Slide

  21. Falco plugin

    View Slide

  22. Falco plugin
    https://github.com/falcosecurity/plugins

    View Slide

  23. Metrics as a First-Class citizen
    in the E2E Testing landscape
    Matej Gera & Jéssica Lins, Red Hat
    https://sched.co/ytuD

    View Slide

  24. E2Eテストで Metrics を⽤いる
    • 正常終了化否かのバイナリチェック(2値)よりも詳細なアサーション
    • 「前提条件を満たすか」 や 「特定のメトリクスがXになるまで待つ」 といった柔軟な制御
    • 複雑なテストシナリオを簡単に扱える
    • より詳細な情報を元にテスト結果を可視化
    https://github.com/efficientgo/e2e
    利⽤実績
    • Cortex(もともと Cortex で利⽤するために作成)
    • Thanos
    • Observatorium

    View Slide

  25. efficientgo/e2e
    • docker 環境でアプリケーションを起動
    • Prometheus の起動や Scrape などはフレームワークが隠蔽
    Envtestのように環境を⽣成
    (docker利⽤)
    アプリケーションの起動
    (source code からは 🙅?)
    https://github.com/efficientgo/e2e/blob/b021e438f0224113fdc106
    48344826f15bf89e76/env.go#L68-L80

    View Slide

  26. Prometheusの初期化
    メトリクスが特定の値になるまで待機
    メトリクスが特定の値になるまで待機
    インタラクティブな処理も利⽤可能

    View Slide

  27. Supporting Long-Lived Pods
    Using a Simple Kubernetes Webhook
    Clément Labbe, Slack
    https://sched.co/ytmo

    View Slide

  28. 1PEͱ/PEFͷMJGFTQBO؅ཧ
    taints と tolerations を使って、ノードの寿命とPodが要求する寿命をゆるく制御
    実際問題あまり⽌められてほしくないPodが存在
    ・最初からやり直しになるバッチジョブ
    ・同期し直しになる分散キャッシュ
    ・Singleton なアプリケーション
    VMノードの停⽌予告や
    Preemptible でも応⽤可能

    View Slide

  29. 1PEͱ/PEFͷMJGFTQBO؅ཧ
    ノードには残りの寿命を表すtaintsが付与
    (slack.com/lifespan-remaining: “14”)
    • 1⽇経過するごとに1ずつ減らしていく

    View Slide

  30. 1PEͱ/PEFͷMJGFTQBO؅ཧ
    Podが 7 ⽇の lifespan をラベルで指定(slack.com/lifespan-requested: "7")
    Podは7〜14⽇のtolerationsがついた状態で起動してくる(mutating)
    • 「slack.com/lifespan-remaining: 7」
    • 「slack.com/lifespan-remaining: 14」

    View Slide

  31. 1PEͱ/PEFͷMJGFTQBO؅ཧ
    Podは残りの寿命が7⽇以上のノードにのみスケジューリングされる形になる
    • Slack社ではNoSchedule effectを使っているので、最低それだけ起動することが(だいたい)保証されている
    • NoExecuteではないので期限切れになった際にPodが削除されることが保証されるわけではない

    View Slide

  32. 開催⽇︓ 2022/8/5(⾦)
    CFP締め切り︓ 2022/6/13(⽉)
    オンライン・参加費無料

    View Slide

  33. Thank you for your attention
    Twitter: @amsy810

    View Slide