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
forcia_dev_pr
March 01, 2023
0
300
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
第7回ゆるふわオンサイト解説
forcia_dev_pr
0
130
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
170
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
490
よくわかるフォルシアのエンジニア 新卒採用編
forcia_dev_pr
0
2.7k
第5回ゆるふわオンサイト解説
forcia_dev_pr
0
110
よくわかるフォルシアのエンジニア 旅行プラットフォーム部編
forcia_dev_pr
0
4.7k
React hooks を気合で理解する
forcia_dev_pr
0
300
第4回ゆるふわ競技プログラミングオンサイト解説
forcia_dev_pr
0
480
フォルシアのフレームワークとTypeScript
forcia_dev_pr
0
280
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
88
5.7k
A Philosophy of Restraint
colly
203
16k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
47
2.1k
Happy Clients
brianwarren
98
6.7k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
96
Agile that works and the tools we love
rasmusluckow
327
21k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
BBQ
matthewcrist
85
9.3k
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+は、アプリエンジ ニアの心強い味方!