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
160
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
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
100
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
210
よくわかるフォルシアのエンジニア 新卒採用編
forcia_dev_pr
0
1.3k
第5回ゆるふわオンサイト解説
forcia_dev_pr
0
73
よくわかるフォルシアのエンジニア 旅行プラットフォーム部編
forcia_dev_pr
0
2.8k
React hooks を気合で理解する
forcia_dev_pr
0
160
第4回ゆるふわ競技プログラミングオンサイト解説
forcia_dev_pr
0
370
フォルシアのフレームワークとTypeScript
forcia_dev_pr
0
180
TypeScript(WebGL)+React+Viteで、さくっとGeodesic Polyhedronを描画してみた
forcia_dev_pr
0
200
Featured
See All Featured
RailsConf 2023
tenderlove
4
540
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
20
1.9k
Designing Experiences People Love
moore
136
23k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
16
2.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
648
58k
Documentation Writing (for coders)
carmenintech
60
3.9k
The Brand Is Dead. Long Live the Brand.
mthomps
49
28k
Designing for Performance
lara
601
67k
Faster Mobile Websites
deanohume
299
30k
How to Ace a Technical Interview
jacobian
272
22k
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+は、アプリエンジ ニアの心強い味方!