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
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
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
HDC tutorial
michielstock
2
720
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
GitHub's CSS Performance
jonrohan
1033
470k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
310
RailsConf 2023
tenderlove
30
1.5k
Everyday Curiosity
cassininazir
0
240
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
540
Designing for Performance
lara
611
70k
Building an army of robots
kneath
306
46k
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