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
k8sマニフェストを Typescriptで管理したい― cdk8s+を導入してみました ―
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
forcia_dev_pr
March 01, 2023
0
480
k8sマニフェストを Typescriptで管理したい― cdk8s+を導入してみました ―
2023/2/28開催Shinjuku.ts#2LT資料
forcia_dev_pr
March 01, 2023
Tweet
Share
More Decks by forcia_dev_pr
See All by forcia_dev_pr
"書く文化"を仕組みで育てる──フォルシアの技術ブログ継続戦略
forcia_dev_pr
1
260
新しいおもちゃを見つけたい私がやっている情報収集
forcia_dev_pr
2
470
「Pythonの環境構築について」と記事作成で意識したこと
forcia_dev_pr
1
170
Neovim で VS Code みたいにコーディングする
forcia_dev_pr
1
200
なぜ・どうやって・何を書く? 〜技術記事を書く習慣の作り方〜
forcia_dev_pr
1
200
第8回ゆるふわオンサイト 解説スライド
forcia_dev_pr
0
160
第7回ゆるふわオンサイト解説
forcia_dev_pr
0
260
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
280
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
1k
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Darren the Foodie - Storyboard
khoart
PRO
3
3k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
The Invisible Side of Design
smashingmag
302
51k
Chasing Engaging Ingredients in Design
codingconduct
0
150
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
780
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
200
How to Talk to Developers About Accessibility
jct
2
160
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
120
Done Done
chrislema
186
16k
The agentic SEO stack - context over prompts
schlessera
0
720
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+は、アプリエンジ ニアの心強い味方!