Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
0
360
HA K8s Clusterのスタンダードが覆る!? Cilium 1.18の🔥激アツ🔥新機能
2024/5/23 CloudNative Days Summer 2025にて登壇した際の資料です。
Takuto Nagami
May 23, 2025
Tweet
Share
More Decks by Takuto Nagami
See All by Takuto Nagami
【2025改訂版】ITエンジニアとして知っておいてほしい、電子メールという大きな穴
logica0419
1
79
Fundamentals of Memory Management in Go: Learning Through the History
logica0419
0
92
GopherCon Tourのつくりかた
logica0419
2
70
Go言語はstack overflowの夢を見るか?
logica0419
2
720
あなたの言葉に力を与える、演繹的なアプローチ
logica0419
1
230
GC25 Recap+: Advancing Go Garbage Collection with Green Tea
logica0419
1
730
GopherCon Tour 概略
logica0419
2
450
言葉の壁を越えて ~Gophers EXと歩む海外登壇への道~
logica0419
1
64
Maintainer Meetupで「生の声」を聞く ~講演だけじゃないKubeCon
logica0419
1
650
Other Decks in Technology
See All in Technology
MySQL AIとMySQL Studioを使ってみよう
ikomachi226
0
110
type-challenges を全問解いたのでエッセンスと推し問題を紹介してみる
kworkdev
PRO
0
140
確実に伝えるHealth通知 〜半自動システムでほどよく漏れなく / JAWS-UG 神戸 #9 神戸へようこそ!LT会
genda
0
160
.NET 10のEntity Framework Coreの新機能
htkym
0
140
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
9.7k
日経電子版の BCP への取り組みについて/mediajaws1121
nikkei_engineer_recruiting
0
110
都市スケールAR制作で気をつけること
segur
0
210
【ASW21-02】STAMP/CAST分析における生成AIの支援 ~羽田空港航空機衝突事故を題材として (Support of Generative AI in STAMP/CAST Analysis - A Case Study Based on the Haneda Airport Aircraft Accident -)
hianraku9498
1
370
20251127 BigQueryリモート関数で作る、お手軽AIバッチ実行環境
daimatz
0
350
TypeScript×CASLでつくるSaaSの認可 / Authz with CASL
saka2jp
2
160
Digitization部 紹介資料
sansan33
PRO
1
6k
Symfony AI in Action
el_stoffel
2
230
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
990
Into the Great Unknown - MozCon
thekraken
40
2.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
Site-Speed That Sticks
csswizardry
13
970
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Music & Morning Musume
bryan
46
7k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
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、使ってみて下さい