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
Kubernetes Casual Talk: Custom Controller in Cy...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Bo0km4n
February 24, 2022
460
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetes Casual Talk: Custom Controller in CyberAgent
Bo0km4n
February 24, 2022
More Decks by Bo0km4n
See All by Bo0km4n
CA 1day Youth Bootcamp CIU Kubernetes
bo0km4n
2
1.5k
VictoriaMetrics+Prometheusで構築する複数Kubernetesの監視基盤
bo0km4n
4
3.5k
[CAEC MeetUp#4] Go言語におけるos/execパッケージの豆知識
bo0km4n
0
190
Study Golang by developing mini crawler
bo0km4n
0
120
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
37
7.3k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
490
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
280
Building Flexible Design Systems
yeseniaperezcruz
330
40k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Product Roadmaps are Hard
iamctodd
PRO
55
12k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Transcript
Kubernetes Casual Talk カスタムコントローラ CA 編 2022/02/24
Katsuya Kawabe @KKawabe108 • CyberAgent group Infrastructure Unit ◦ ソフトウェアエンジニア
◦ プライベートクラウドのサービスを作っています • 趣味 ◦ 音楽、漫画、スノボ
CIU でのカスタムコントローラ AKE ML Platform GKE のような Kubernetes as a
Service Cluster API という Kubernetes が Kubernetes を作る仕組みを利用しています オンデマンドでユーザに GPU 付きのコンテナを払い出したり、 学習したモデルをワンコマンドで外部向けにデプロイできるような基盤 モデルの払い出しに応じて LB と証明書を払い出したりするようなコントローラを作っ たりしています
CIU でのカスタムコントローラ AKE ML Platform GKE のような Kubernetes as a
Service Cluster API という Kubernetes が Kubernetes を作る仕組みを利用しています オンデマンドでユーザに GPU 付きのコンテナを払い出したり、 学習したモデルをワンコマンドで外部向けにデプロイできるような基盤 モデルの払い出しに応じて LB と証明書を払い出したりするようなコントローラを作っ たりしています 今回は時間の都合で AKE に焦点を当てていきます
Cluster API で作る KaaS
Cluster API で作る KaaS https://cluster-api.sigs.k8s.io/image s/management-cluster.svg Cluster API 本体が用意するリソー スとコントローラ
と Provider ごとのリソースとコント ローラが協調して Kubernetes を作 り上げる複雑なシステム
Cluster API と Provider の OwnerReference OpenStackCluster OpenStackMachine Template OpenStackMachine
Cluster KubedmControlPlane MachineDeployment MachineSet Machine KubeadmConfig Template
Cluster API と Provider の OwnerReference OpenStackCluster OpenStackMachine Template OpenStackMachine
Cluster KubedmControlPlane MachineDeployment MachineSet Machine KubeadmConfig Template 🤯 とにかくリソース関係が複雑 🤯
Cluster API と Provider の OwnerReference OpenStackCluster OpenStackMachine Template OpenStackMachine
Cluster KubedmControlPlane MachineDeployment MachineSet Machine KubeadmConfig Template リソース関係は複雑ですが Provider ご との実装はこれらのリソースと Controller さえ実装すればいいのでそこまでコスト はかからない どのパラメータを実装すればいいのかも公式ドキュメントに あるよ!
Cluster API OpenStack Provider のコントローラ OpenStackCluster OpenStackMachine Template OpenStackMachine -
セキュリティグループの調整 - コントロールプレーン用の外部 LBの調整 ← AKE Original - ネットワーク、サブネットの調整 - サーバグループの調整 ← AKE Original - VM に紐づくポートの調整 - VM に紐づくボリュームの調整 - VM の作成、削除 - cloud-init の調整← AKE Original
Cluster API を改造したメリットとデメリット • OpenStack や物理 LB の API の挙動把握
◦ どういうエラーが返信されるのか ◦ 冪等性はあるのか ▪ 担保されていない場合は Controller の実装で保証してあげなきゃいけない • リソース同士の依存関係 ◦ 特定のリソースのフィールドが別コントローラによってセットされたりする ◦ 中途半端に子のリソースだけ削除するとクラスタごと作り直しになったり しかし、 • 元からあった OSS をベースに実装できたのである程度の品質を最初から担保できた ◦ OpenStack のラッパー部分や基礎的なコントローラ • メンテが活発なので不具合修正などもチェリーピックしやすい ◦ とは言っても基礎的な部分はほぼ完成してるのであんまない ◦ 逆にコントリビュートしたことはある (Port の GC 周り) • 何より OpenStack Heat をデバッグしなくていいのは本当に楽
Thank you for listening