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
  2. - Co-chair ੨ࢁ ਅ໵ + CREATIONLINE - 技術アドバイザ + SAKURA

    Internet Research Center – 客員研究員 + 3-shake 技術顧問 + PLAID - Organizer - KaaS Product Owner - Publications Twitter: @amsy810
  3. F#1' 'BMDP &&UFTUJOH MPOHMJWFEQPET FUD https://gihyo.jp/admin/column/newyear/2022/cloudnative-prospect

  4. Cilium project Welcome, Vision & Updates Thomas Graf & Liz

    Rice, Isovalent; Laurent Bernaille, Datadog https://sched.co/ytq0
  5. $JMJVNGBNJMZ

  6. F#1'ͷద༻ྖҬ • 原因の切り分けを⾏う際に低レイヤーの情報を Pod やコンテナと紐付けた形で利⽤したい • Sidecar-less 等でアプリケーションから不可視な状態で様々なデータを収集したい • オーバーヘッドを極⼒抑えた形で導⼊したい

    Networking Observability Security servicemesh Cilium CNI Hubble tetragon tetragon ebpf ※ Falco / Pixie でしか取れないデータなどもあると思います
  7. $JMJVN$/* iptables 部分の eBPF 代替 = 低レイヤーでのネットワーク関連処理(O11yを合わせて実現) L7 レイヤーの情報を元にした処理

  8. $JMJVN4FSWJDF.FTI

  9. )VCCMF サービス間通信の依存関係可視化 【Cilium】 • TCPコネクション等のL3/L4通信 • HTTPリクエストやL7通信 【Hubble】 • L3/L4/L7のサービス間通信の状況

    • DNSクエリ等の通信状況 • Network Policy の拒否 リアルタイムのデータ収集 定期的なデータ収集
  10. 5FUSBHPO ルールを定義し、 リアルタイムの制御も可能 Falco のようにルールセットは 公開されていなさそう Kubernetes のワークロード情報と紐付け可能 カーネルの情報やイベント情報を収集

  11. F#1'ͷద༻ྖҬ • 原因の切り分けを⾏う際に低レイヤーの情報を Pod やコンテナと紐付けた形で利⽤したい • Sidecar-less 等でアプリケーションから不可視な状態で様々なデータを収集したい • オーバーヘッドを極⼒抑えた形で導⼊したい

    Networking Observability Security servicemesh Cilium CNI Hubble tetragon tetragon ebpf ※ Falco / Pixie でしか取れないデータなどもあると思います
  12. Better Bandwidth Management with eBPF Daniel Borkmann & Christopher M.

    Luciano, Isovalent https://sched.co/ytsQ
  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 タイミングホイール スケジューラー
  14. ᫔᫓੍ޚ  ##3

  15. ##3XJUI1PE

  16. ##3XJUI1PE

  17. Falco to Pluginfinity and Beyond Leonardo Grasso & Jason Dellaluce,

    Sysdig https://sched.co/ytlz
  18. Falco architecture • カーネルモジュールか eBPF でデータを収集 • Libsinsp: フィールドの抽出や加⼯ •

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

    Libscap: イベントの収集 SDK は Go と C++ (WIP) 動的共有ライブラリを⽣成して読み込む
  20. Falco plugin

  21. Falco plugin

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

  23. Metrics as a First-Class citizen in the E2E Testing landscape

    Matej Gera & Jéssica Lins, Red Hat https://sched.co/ytuD
  24. E2Eテストで Metrics を⽤いる • 正常終了化否かのバイナリチェック(2値)よりも詳細なアサーション • 「前提条件を満たすか」 や 「特定のメトリクスがXになるまで待つ」 といった柔軟な制御

    • 複雑なテストシナリオを簡単に扱える • より詳細な情報を元にテスト結果を可視化 https://github.com/efficientgo/e2e 利⽤実績 • Cortex(もともと Cortex で利⽤するために作成) • Thanos • Observatorium
  25. efficientgo/e2e • docker 環境でアプリケーションを起動 • Prometheus の起動や Scrape などはフレームワークが隠蔽 Envtestのように環境を⽣成

    (docker利⽤) アプリケーションの起動 (source code からは 🙅?) https://github.com/efficientgo/e2e/blob/b021e438f0224113fdc106 48344826f15bf89e76/env.go#L68-L80
  26. Prometheusの初期化 メトリクスが特定の値になるまで待機 メトリクスが特定の値になるまで待機 インタラクティブな処理も利⽤可能

  27. Supporting Long-Lived Pods Using a Simple Kubernetes Webhook Clément Labbe,

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

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

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

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

  33. Thank you for your attention Twitter: @amsy810