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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
240
なぜ・どうやって・何を書く? 〜技術記事を書く習慣の作り方〜
forcia_dev_pr
1
240
第8回ゆるふわオンサイト 解説スライド
forcia_dev_pr
0
240
第7回ゆるふわオンサイト解説
forcia_dev_pr
0
320
第6回ゆるふわオンサイト解説
forcia_dev_pr
0
320
よくわかるFORCIAのエンジニア旅行SaaSプロダクト開発編
forcia_dev_pr
0
1.4k
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Everyday Curiosity
cassininazir
0
350
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
630
What's in a price? How to price your products and services
michaelherold
247
13k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
Git: the NoSQL Database
bkeepers
PRO
433
67k
How GitHub (no longer) Works
holman
316
150k
Building Adaptive Systems
keathley
44
3.2k
WCS-LA-2024
lcolladotor
0
890
My Coaching Mixtape
mlcsv
0
360
[SF Ruby Conf 2025] Rails X
palkan
3
1.5k
Fireside Chat
paigeccino
43
4.1k
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+は、アプリエンジ ニアの心強い味方!