Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
HA K8s Clusterのスタンダードが覆る!? Cilium 1.18の🔥激アツ🔥新機能
Search
Takuto Nagami
May 23, 2025
Technology
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HA K8s Clusterのスタンダードが覆る!? Cilium 1.18の🔥激アツ🔥新機能
2024/5/23 CloudNative Days Summer 2025にて登壇した際の資料です。
Takuto Nagami
May 23, 2025
More Decks by Takuto Nagami
See All by Takuto Nagami
Do Gophers Dream of Stack Overflow?
logica0419
0
41
今こそ学びたいKubernetesネットワーク ~CNIが繋ぐNWとプラットフォームの「フラッと」な対話
logica0419
9
1.2k
キャリア科目では教えてくれない、就活を生き抜く法則
logica0419
2
290
歴史から学ぶ、Goのメモリ管理基礎
logica0419
17
4k
【2025改訂版】ITエンジニアとして知っておいてほしい、電子メールという大きな穴
logica0419
2
210
Fundamentals of Memory Management in Go: Learning Through the History
logica0419
1
160
GopherCon Tourのつくりかた
logica0419
2
150
Go言語はstack overflowの夢を見るか?
logica0419
2
870
あなたの言葉に力を与える、演繹的なアプローチ
logica0419
1
300
Other Decks in Technology
See All in Technology
AIのReact習熟度を測る
uhyo
2
680
生成 AI 実践ガイド (概略版) AIガバナンス編
asei
0
180
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
460
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
180
クレデンシャル流出 ― 攻撃 3 時間 vs 復旧 10 時間。この非対称性にどう備えるか
kazzpapa3
3
540
[AWS Summit Japan 2026]迷っているあなたへ_小さな一歩が、やがて自分を助けてくれる
sh_fk2
1
400
新しいUbuntu/GNOMEが使いたいからXからWaylandへ移行頑張ってるの巻 2026-06-20
nobutomurata
0
160
When Platform Engineering Meets GenAI
sucitw
0
170
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.6k
5分でわかるDuckDB Quack
chanyou0311
2
240
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
150
時期が悪い!それでもRaspberry Piを買って遊んで活用するには / 20260627-osc26do-rpi-jikigawarui
akkiesoft
0
760
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Rails Girls Zürich Keynote
gr2m
96
14k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
400
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
870
Agile that works and the tools we love
rasmusluckow
331
22k
Transcript
Takuto Nagami X: @logica0419 GitHub: @logica0419 HA K8s Clusterの スタンダードが覆る!?
Cilium 1.18の 🔥激アツ🔥新機能
自己紹介 • Takuto Nagami (logica) • 千葉工業大学 情報科学部 情報ネットワーク学科 4年
• ネットワークコンテンツ研究会 所属 ◦ 数人の自宅サーバーをVPNで繋いでクラウド基盤 作ろうとしてます • 最近はさくらのクラウド シークレット マネージャーをExternal Secretsに対応 させるお手伝いをしたりしています
CNDW2024 プレイベントの続きです
この発表とも関連しています
Cilium • 最近話題のeBPFをフルに用いたCNIプラグイン ◦ AWS / Google Cloudでも採用されている • kube-proxyの置き換えが最も大きな特徴
◦ iptables実装の弱い部分をeBPFで解決 ◦ kube-proxyの無いクラスタを用意し、そこに Ciliumを投げ込む ◦ (置き換えないこともできるが、面白くない)
Highly AvailableなK8sクラスタ • コントロールプレーンが複数台あるクラスタのこと ◦ 公式ドキュメントの中では「Highly Available Topology」と呼ばれている • コントロールプレーンが何個か落ちても大丈夫
◦ 3台以上のコントロールプレーンが必要とされる • KaaS等マネージドなサービスを使わず構築する場合 Control Planeロードバランシング問題が発生する
Control Planeが複数ある Plane Plane Plane
どこ接続すればいいか、わからない Plane Plane Plane ???
固定してしまったら Plane Plane Plane
死んだとき Plane Plane Plane
一巻の終わり Plane Plane Plane 💥
死んだときには Plane Plane Plane
別の所に接続できるように欲しい Plane Plane Plane
Control Planeのロードバランシング • コントロールプレーンを冗長化した際、外部から apiserverに常に接続できる状態を維持する ◦ どこかのノードが死んだらフォールバックする ◦ 同一のIPアドレスで常に接続できる •
Kubernetesエコシステムの中にはツールが無い ◦ “Since this is not part of Kubernetes or kubeadm, this must be taken care of separately.” とドキュメントに書いてある
ロードバランサーの選択肢 https://github.com/kubernetes/kubeadm/blob/main /docs/ha-considerations.md#options-for-software- load-balancing で取れる選択肢が提示されている 1. Keepalived と HAProxy 2.
kube-vip 他にも選択肢が無くはない (CNDW2024 プレイベ参照)
Internal API server hostname • Kubernetesには、内部にkube-apiserverに繋がる Serviceが存在する ◦ Podからのアクセスは通常これが用いられる •
Serviceなのでkube-proxy相当の物が必要 ◦ Ciliumはデプロイ時、直にapiserverのAddress / Portを一組示してやる必要がある ◦ Cilium内部のapiserverアドレスは勝手に書き換わら ないので、仮想IPを指定したい
ロードバランサーが必要な場所 • 外部からapiserverへの接続 • Worker Nodeからapiserverへの接続 • Ciliumからapiserverへの接続 ◦ これはkube-proxyを置き換えるCiliumならでは
◦ これが理由で、CiliumはHAのProduction環境では 基本的に使えないとされていた
1.18 (未リリース) でこれが解決する • 外部からapiserverへの接続 • Worker Nodeからapiserverへの接続 • Ciliumからapiserverへの接続
◦ これはkube-proxyを置き換えるCiliumならでは ◦ これが理由で、CiliumはHAのProduction環境では 基本的に使えないとされていた
kpr: Support kube-apiserver HA
この変更は何? • HA K8s ClusterにおいてCiliumをセットアップする際 ◦ 複数のapiserver URLを指定できるようにする ▪ 以前の単一Address
/ Port指定はDeprecatedに ◦ kube-proxy置き換えのセットアップが完了したら自 動的にInternal API server hostname Serviceに接 続を切り替えてくれる • 3年前くらいに提案されようやく叶った🔥激アツ🔥機能
復習: Internal API server hostname • Kubernetesには、内部にkube-apiserverに繋がる Serviceが存在する ◦ Podからのアクセスは通常これが用いられる
• Serviceなのでkube-proxy相当の物が必要 ◦ Ciliumはデプロイ時、直にapiserverのAddress / Portを一組示してやる必要がある ◦ Cilium内部のapiserverアドレスは勝手に書き換わら ないので、仮想IPを指定したい
これが覆った • Kubernetesには、内部にkube-apiserverに繋がる Serviceが存在する ◦ Podからのアクセスは通常これが用いられる • Serviceなのでkube-proxy相当の物が必要 ◦ Ciliumはデプロイ時、直にapiserverのAddress
/ Portを一組示してやる必要がある ◦ Cilium内部のapiserverアドレスは勝手に書き換わら ないので、仮想IPを指定したい
ロードバランサーが必要な場所 • 外部からapiserverへの接続 • Worker Nodeからapiserverへの接続 • Ciliumからapiserverへの接続 ◦ これはkube-proxyを置き換えるCiliumならでは
◦ これが理由で、CiliumはHAのProduction環境では 基本的に使えないとされていた 上二つはどうなる?
一般的なCNIにおける代替案は存在する • Internal API server hostname Serviceと同じ設定の LoadBalancer Serviceが作れれば外から接続可能 ◦
クラスタの接続先IP設定を後から書き換える必要 • LoadBalancer Serviceを作るためには、外部向けIPアド レスのIPAMをしてくれるコンポーネントが必要 ◦ 現在はほぼMetalLB一択 • ロードバランサー入れるかMetalLB入れるかで、追加の 手間考えたらロードバランサーかな…となるのは自然
Ciliumだからこその強みが出る可能性が • Ciliumは独自に、BGPを用いたIPAM機構がある ◦ Cilium BGP Control Planeと呼ばれている ◦ Cilium単体で、LoadBalancer
Serviceが正常に動く 環境が用意できる! • Cilium単体でのapiserverロードバランシング計画は既 に進みつつある
今後に期待したい
ありがとう ございました Cilium、使ってみて下さい