Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
k8sマニフェストを Typescriptで管理したい― cdk8s+を導入してみました ―
Search
forcia_dev_pr
March 01, 2023
510
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
k8sマニフェストを Typescriptで管理したい― cdk8s+を導入してみました ―
2023/2/28開催Shinjuku.ts#2LT資料
forcia_dev_pr
March 01, 2023
More Decks by forcia_dev_pr
See All by forcia_dev_pr
"書く文化"を仕組みで育てる──フォルシアの技術ブログ継続戦略
forcia_dev_pr
1
300
新しいおもちゃを見つけたい私がやっている情報収集
forcia_dev_pr
2
500
「Pythonの環境構築について」と記事作成で意識したこと
forcia_dev_pr
1
210
Neovim で VS Code みたいにコーディングする
forcia_dev_pr
1
230
なぜ・どうやって・何を書く? 〜技術記事を書く習慣の作り方〜
forcia_dev_pr
1
240
第8回ゆるふわオンサイト 解説スライド
forcia_dev_pr
0
230
第7回ゆるふわオンサイト解説
forcia_dev_pr
0
310
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
310
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
1.4k
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
420
Building a Scalable Design System with Sketch
lauravandoore
464
34k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
Designing for Timeless Needs
cassininazir
1
470
Balancing Empowerment & Direction
lara
6
1.3k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
660
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
880
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
Abbi's Birthday
coloredviolet
3
9.9k
Transcript
k8sマニフェストを Typescriptで管理したい ― cdk8s+を導入してみました ― 2023/2/28 komago
自己紹介 ・komago ・2017年フォルシア入社 ・旅行商品のSaaS型サービス「webコネクト」のアプリ開発を担当 ・k8sに興味があり、SRE的なこともやっています
アジェンダ ・きっかけ ・cdk8s+について ・cdk8s+を使ってみる ・cdk8s+を導入してみてよかったこと ・cdk8s+で少し気になったこと ・最後に
きっかけ ・フォルシアではアプリエンジニアがk8sの運用を行っている。 ・k8sマニフェスト(yamlの定義ファイル)を触るのは、アプリエンジニアにとって心理的 負担。 ・設定漏れやインデントのずれでうまく反映されないこともしばしば。。 ・プロダクトの成長に伴い定義ファイルも増加。
きっかけ k8sマニフェストの例 ・k8sのDeploymentリソースの最もシ ンプルな設定例 (nginxのPodが3つ作成される) ・k8sに慣れていないと、何がなんだ か。見よう見まねで作ってもうまく動か ない。。
Typescriptをビルドしてyamlにできれば。。 ・アプリ開発では主にTypescriptを利用している。 ・Typescriptでk8sの定義を書いて、ビルドしてyamlにできれば。。 ・と思ったら、願ったり叶ったりなツールがあった!
cdk8s+ ・AWS CDK : 使い慣れたプログラミング言語でAWSリソースを定義するためのフレー ムワーク。 ・cdk8s (CDK for Kubernetes)は、AWS
CDKの考え方をk8sのリソース定義に取り入 れたツール。 ・cdk8s+はcdk8sよりも抽象化されており、k8sの定義をよりシンプルに記述できる。 (2022/10に一般利用開始)
cdk8s+ ・Typescriptのほか、Go、Python、Javaに対応している。 ・AWS CDKではAWSリソースのデプロイまでセットになっているが、cdk8sではプログ ラミング言語で書いたファイルをビルドして、yamlのk8sマニフェストを作成するところま で。(デプロイは行わない) ・k8s環境へのデプロイは、cdk8sは使わずにこれまで通りの方法で行う。
cdk8s+を使ってみる ・必要最小限の設定 ・型に守られている安心感 ・環境ごとの設定はconfig ファイルに切り出せばよい
cdk8s+を使ってみる
cdk8s+を使ってみる 実際のビルド成果物 ・設定したかった項目が設定されている。 ・設定していない項目もデフォルト値が設定されるの で、設定すべき項目に気付ける。
cdk8s+を導入してみてよかったこと ・k8sマニフェストの細かいルールを気にしなくてよい。 ・アプリ開発でTypescriptを使っているので、k8sの定義を触るハードルが下がる。 ・型に守られるので、設定ミスが起きにくい。 ・環境ごとの設定の違いをconfigファイルに切り出しやすい。 ・ビルド生成物であるyamlのk8sマニフェストもGit管理すると、スナップショットテストに なる。
cdk8s+で少し気になったこと ・作成済みのcdk8s+の設定変更にはk8sの知識があまり要らないが、新たにcdk8s+ でk8sリソースの定義をするにはある程度のk8sの知識が必要。
最後に ・中小規模のアプリでは、専任のSREではなくアプリエンジニアがk8s運用を行うという ケースが少なくないはず。 ・全てのアプリエンジニアがk8sに詳しくなるのは現実的ではないし、他にやるべきこと もたくさんある。 ・慣れ親しんだTypescriptでk8sリソースの定義を管理できるcdk8s+は、アプリエンジ ニアの心強い味方!