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
390
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
2
100
Fundamentals of Memory Management in Go: Learning Through the History
logica0419
0
98
GopherCon Tourのつくりかた
logica0419
2
73
Go言語はstack overflowの夢を見るか?
logica0419
2
740
あなたの言葉に力を与える、演繹的なアプローチ
logica0419
1
240
GC25 Recap+: Advancing Go Garbage Collection with Green Tea
logica0419
2
840
GopherCon Tour 概略
logica0419
2
480
言葉の壁を越えて ~Gophers EXと歩む海外登壇への道~
logica0419
1
67
Maintainer Meetupで「生の声」を聞く ~講演だけじゃないKubeCon
logica0419
1
710
Other Decks in Technology
See All in Technology
Fashion×AI「似合う」を届けるためのWEARのAI戦略
zozotech
PRO
2
850
「図面」から「法則」へ 〜メタ視点で読み解く現代のソフトウェアアーキテクチャ〜
scova0731
0
340
学習データって増やせばいいんですか?
ftakahashi
2
490
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
110
Sansanが実践する Platform EngineeringとSREの協創
sansantech
PRO
2
930
シニアソフトウェアエンジニアになるためには
kworkdev
PRO
3
180
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
240
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
160
ExpoのインダストリーブースでみたAWSが見せる製造業の未来
hamadakoji
0
150
Kiro を用いたペアプロのススメ
taikis
1
200
AI駆動開発における設計思想 認知負荷を下げるフロントエンドアーキテクチャ/ 20251211 Teppei Hanai
shift_evolve
PRO
2
420
5分で知るMicrosoft Ignite
taiponrock
PRO
0
400
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Balancing Empowerment & Direction
lara
5
810
Building Adaptive Systems
keathley
44
2.9k
Designing Experiences People Love
moore
143
24k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
Code Review Best Practice
trishagee
74
19k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Unsuck your backbone
ammeep
671
58k
A Modern Web Designer's Workflow
chriscoyier
698
190k
We Have a Design System, Now What?
morganepeng
54
7.9k
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、使ってみて下さい