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
Bo0km4n
February 24, 2022
470
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
200
Study Golang by developing mini crawler
bo0km4n
0
120
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
7k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Optimising Largest Contentful Paint
csswizardry
37
3.8k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Product Roadmaps are Hard
iamctodd
55
12k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Crafting Experiences
bethany
1
230
Test your architecture with Archunit
thirion
1
2.3k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
WCS-LA-2024
lcolladotor
0
750
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
470
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