Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Masaya Aoyama CyberAgent KubeCon + CloudNativeCon EU 2022 Recap Kubernetes Meetup Tokyo #51 amsy810 @amsy810
Slide 2
Slide 2 text
- Co-chair ੨ࢁ ਅ + CREATIONLINE - 技術アドバイザ + SAKURA Internet Research Center – 客員研究員 + 3-shake 技術顧問 + PLAID - Organizer - KaaS Product Owner - Publications Twitter: @amsy810
Slide 3
Slide 3 text
F#1' 'BMDP &&UFTUJOH MPOHMJWFEQPET FUD https://gihyo.jp/admin/column/newyear/2022/cloudnative-prospect
Slide 4
Slide 4 text
Cilium project Welcome, Vision & Updates Thomas Graf & Liz Rice, Isovalent; Laurent Bernaille, Datadog https://sched.co/ytq0
Slide 5
Slide 5 text
$JMJVNGBNJMZ
Slide 6
Slide 6 text
F#1'ͷద༻ྖҬ • 原因の切り分けを⾏う際に低レイヤーの情報を Pod やコンテナと紐付けた形で利⽤したい • Sidecar-less 等でアプリケーションから不可視な状態で様々なデータを収集したい • オーバーヘッドを極⼒抑えた形で導⼊したい Networking Observability Security servicemesh Cilium CNI Hubble tetragon tetragon ebpf ※ Falco / Pixie でしか取れないデータなどもあると思います
Slide 7
Slide 7 text
$JMJVN$/* iptables 部分の eBPF 代替 = 低レイヤーでのネットワーク関連処理(O11yを合わせて実現) L7 レイヤーの情報を元にした処理
Slide 8
Slide 8 text
$JMJVN4FSWJDF.FTI
Slide 9
Slide 9 text
)VCCMF サービス間通信の依存関係可視化 【Cilium】 • TCPコネクション等のL3/L4通信 • HTTPリクエストやL7通信 【Hubble】 • L3/L4/L7のサービス間通信の状況 • DNSクエリ等の通信状況 • Network Policy の拒否 リアルタイムのデータ収集 定期的なデータ収集
Slide 10
Slide 10 text
5FUSBHPO ルールを定義し、 リアルタイムの制御も可能 Falco のようにルールセットは 公開されていなさそう Kubernetes のワークロード情報と紐付け可能 カーネルの情報やイベント情報を収集
Slide 11
Slide 11 text
F#1'ͷద༻ྖҬ • 原因の切り分けを⾏う際に低レイヤーの情報を Pod やコンテナと紐付けた形で利⽤したい • Sidecar-less 等でアプリケーションから不可視な状態で様々なデータを収集したい • オーバーヘッドを極⼒抑えた形で導⼊したい Networking Observability Security servicemesh Cilium CNI Hubble tetragon tetragon ebpf ※ Falco / Pixie でしか取れないデータなどもあると思います
Slide 12
Slide 12 text
Better Bandwidth Management with eBPF Daniel Borkmann & Christopher M. Luciano, Isovalent https://sched.co/ytsQ
Slide 13
Slide 13 text
&%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 タイミングホイール スケジューラー
Slide 14
Slide 14 text
੍ޚ ##3
Slide 15
Slide 15 text
##3XJUI1PE
Slide 16
Slide 16 text
##3XJUI1PE
Slide 17
Slide 17 text
Falco to Pluginfinity and Beyond Leonardo Grasso & Jason Dellaluce, Sysdig https://sched.co/ytlz
Slide 18
Slide 18 text
Falco architecture • カーネルモジュールか eBPF でデータを収集 • Libsinsp: フィールドの抽出や加⼯ • Libscap: イベントの収集
Slide 19
Slide 19 text
Falco plugin • カーネルモジュールか eBPF でデータを収集 • Libsinsp: フィールドの抽出や加⼯ • Libscap: イベントの収集 SDK は Go と C++ (WIP) 動的共有ライブラリを⽣成して読み込む
Slide 20
Slide 20 text
Falco plugin
Slide 21
Slide 21 text
Falco plugin
Slide 22
Slide 22 text
Falco plugin https://github.com/falcosecurity/plugins
Slide 23
Slide 23 text
Metrics as a First-Class citizen in the E2E Testing landscape Matej Gera & Jéssica Lins, Red Hat https://sched.co/ytuD
Slide 24
Slide 24 text
E2Eテストで Metrics を⽤いる • 正常終了化否かのバイナリチェック(2値)よりも詳細なアサーション • 「前提条件を満たすか」 や 「特定のメトリクスがXになるまで待つ」 といった柔軟な制御 • 複雑なテストシナリオを簡単に扱える • より詳細な情報を元にテスト結果を可視化 https://github.com/efficientgo/e2e 利⽤実績 • Cortex(もともと Cortex で利⽤するために作成) • Thanos • Observatorium
Slide 25
Slide 25 text
efficientgo/e2e • docker 環境でアプリケーションを起動 • Prometheus の起動や Scrape などはフレームワークが隠蔽 Envtestのように環境を⽣成 (docker利⽤) アプリケーションの起動 (source code からは 🙅?) https://github.com/efficientgo/e2e/blob/b021e438f0224113fdc106 48344826f15bf89e76/env.go#L68-L80
Slide 26
Slide 26 text
Prometheusの初期化 メトリクスが特定の値になるまで待機 メトリクスが特定の値になるまで待機 インタラクティブな処理も利⽤可能
Slide 27
Slide 27 text
Supporting Long-Lived Pods Using a Simple Kubernetes Webhook Clément Labbe, Slack https://sched.co/ytmo
Slide 28
Slide 28 text
1PEͱ/PEFͷMJGFTQBOཧ taints と tolerations を使って、ノードの寿命とPodが要求する寿命をゆるく制御 実際問題あまり⽌められてほしくないPodが存在 ・最初からやり直しになるバッチジョブ ・同期し直しになる分散キャッシュ ・Singleton なアプリケーション VMノードの停⽌予告や Preemptible でも応⽤可能
Slide 29
Slide 29 text
1PEͱ/PEFͷMJGFTQBOཧ ノードには残りの寿命を表すtaintsが付与 (slack.com/lifespan-remaining: “14”) • 1⽇経過するごとに1ずつ減らしていく
Slide 30
Slide 30 text
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」
Slide 31
Slide 31 text
1PEͱ/PEFͷMJGFTQBOཧ Podは残りの寿命が7⽇以上のノードにのみスケジューリングされる形になる • Slack社ではNoSchedule effectを使っているので、最低それだけ起動することが(だいたい)保証されている • NoExecuteではないので期限切れになった際にPodが削除されることが保証されるわけではない
Slide 32
Slide 32 text
開催⽇︓ 2022/8/5(⾦) CFP締め切り︓ 2022/6/13(⽉) オンライン・参加費無料
Slide 33
Slide 33 text
Thank you for your attention Twitter: @amsy810