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をTerraformで管理してみた
Search
SHIFT EVOLVE
PRO
July 26, 2021
Business
610
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
K8sをTerraformで管理してみた
SHIFT EVOLVE
PRO
July 26, 2021
More Decks by SHIFT EVOLVE
See All by SHIFT EVOLVE
価値実現重視へとシフトした時代を生き抜くには / 20260713 Takeshi Watarai
shift_evolve
PRO
1
37
SHIFTのコミュニティ活動 / 20260828 Yumiko Ohata
shift_evolve
PRO
2
68
AI活用によるレガシーモダナイゼーションとプロジェクトマネジメント / 20260827 Tsukasa Takemura & Takashi Maekawa
shift_evolve
PRO
0
48
兼務の事務局から、組織へ SHIFTのAWSアライアンス立ち上げ記 / 20260807 Satoshi Torano
shift_evolve
PRO
1
66
AIは実装を速くする。では、私たちは何を今作るべきか?-立場を越えてリリースに向き合ったチーム開発の実践 / 20260801 Hiromi Nakaya and Naoki Takahashi
shift_evolve
PRO
3
1.2k
Issue設計から始める仕様駆動開発 / 20260731 Mizuki Hirata
shift_evolve
PRO
1
250
”そのまま移行”からの脱却へ ― AI解析で実現するSAP S/4HANA導入成功メソッド / 20260729 Akio Hane
shift_evolve
PRO
1
57
区民の問い合わせ、AIにどこまで任せる? 品川区×SHIFTが挑む自治体音声AI実証の現在地 / 20260626 Taku Nishizawa and Satoshi Torano
shift_evolve
PRO
1
99
コミュニティを、仕事にした。‐ 学びの場が会社の価値になるまで / 20260724 Ayana Chandler
shift_evolve
PRO
0
140
Other Decks in Business
See All in Business
AWSのログ/アラートの調査を AIで自動化してみた話
tomomasa
0
160
株式会社アシスト_会社紹介資料
ashisuto_career
3
190k
CMB.TECH Q2 2026 earnings release
cmbtech
PRO
1
1.5k
「受託脳」から「提案脳」へ〜「一緒に悩んで、いいものつくる」を目指して
kuranuki
3
2.4k
20260828_15minLT_データ分析10倍時代を考える
doradora09
PRO
0
940
AI時代のプロダクトディスカバリー:名刺OCR機能β版開発の舞台裏 2026.02.17
kawashimayoshihisa
0
220
ゲームにおけるメディアミックス展開との向き合い方 -ヘブンバーンズレッドのメディアミックス企画の立て方-
gree_tech
PRO
0
870
研修ガイドブック
nicrecruit
1
410
ナカソネ住設カスタマーエンジニア紹介資料WEB公開版_2026年8月版_.pdf
nakasonejusetsu
0
130
LW_brochure_engineer
lincwellhr
1
45k
2026 Fuji Oil Outside Directors’ Roundtable (Japanese version)
tsogo817421
2
170
10年、同じドメインに 浸かる覚悟 / Decade-deep in one domain.
hirokiyamamoto14
PRO
0
220
Featured
See All Featured
Deep Space Network (abreviated)
tonyrice
0
300
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
590
The Curious Case for Waylosing
cassininazir
1
500
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
350
Evolving SEO for Evolving Search Engines
ryanjones
0
280
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.7k
Ethics towards AI in product and experience design
skipperchong
2
370
Mind Mapping
helmedeiros
1
350
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
260
Transcript
K8sをTerraformで管理してみた 開発支援プロダクト推進部 CAT開発 小田柿 敦士
Terraformでもk8s上のアプリ管理ができ るって知ってました? ◦ クラウドリソースの管理 ◦ ネットワーク(VPC/サブネット) ◦ コントロールプレーン(EKS) ◦ ワーカーノード(EC2/Autoscaling
Group) ◦ etc. ◦ ⇒ これらがTerraformで管理できるのは普通に分かる ◦ K8s上のアプリのインストール・更新・削除 ◦ ⇒ 実はこれもTerraformで実行できます
【本番運用課題】 K8sマニフェストのテンプレート化ツール選定 候補ツール 事前調査結果 Helm • Helmチャートを自分で作るのは敷居が高そう(学習コスト高そう) • 複雑なことができそう(OSS公開するなら必須のようだ、、、) Kustomize
• 学習コスト低そう • kubectlコマンドの付随してくるので利用の敷居も低そう Terraform • クラウドリソース管理と併せて管理を一元化できる • ベトナムメンバーFooさんイチ押し ⇒ 採用 ◦ 実際の運用では dev/stg/prod で構成や設定値が異なる ◦ テンプレートと設定ファイルを分けて、環境ごとの差分だけ設定値として管理したい ◦ ⇒ K8sマニフェストのテンプレート化ツールが必要
【機能】 k8sアプリ管理でTerraformができること ◦ K8sマニフェストのテンプレート化&適用 ◦ プロバイダ: kubernetes provider ◦ 参考
https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs ◦ リソース: kubernetes_xxx (k8sオブジェクトの種類ごと) ◦ kubernetes_deployment, kubernetes_service, kubernetes_config_map, kubernetes_secret, ◦ kubernetes_daemonset, kubernetes_job, kubernetes_ingress, … ◦ Helmリポジトリに公開されているアプリの導入・更新 ◦ プロバイダ: helm provider ◦ リソース: helm_release (helmコマンドの代替) ◦ 参考 https://registry.terraform.io/providers/hashicorp/helm/latest/docs/resources/release
【実装】 K8sマニフェストのテンプレート化&適用 通常のマニフェストYAML resource "kubernetes_deployment" "nginx" { metadata { name
= "nginx-deployment" labels = { app = "nginx" } } spec { replicas = 3 selector { match_labels = { app = "nginx" } } template { metadata { labels = { app = "nginx" } } spec { container { image = "nginx:1.14.2" name = "nginx" port { container_port = 80 } } } } } } ② 変数定義埋め込み ⇒ テンプレート化 ③ Terraform実行 → 適用 HCL = HashiCorp configuration language = JSONぽい?Terraform独自記法 ※YAMLを単純に変換できないのがハマりどころ HCL形式のマニフェスト この例では分かりにくいが、配列の表現形式が違う のが厄介(都度ドキュメントの確認が必要なレベル) ① HCLに変換
【実装】 Helmリポジトリ公開アプリインストール URL・チャート名・バージョンを指定 設定ファイル指定: 通常の設定用YAMLファイルが指定可 設定値の上書き定義作成 ここにTerraformの変数定義を適用する ⇒ 設定YAMLファイルが簡単にテンプレート化できる HCL化不要で
とても簡単! ② Terraform実行 一連のhelmコマンドが実行される ① Terraformコード作成(helm_release)
【感想】 実際導入してみて… ◦ 慣れれば問題なく使える ◦ クラウドリソースのエンドポイント等をTfstateから取得し て利用できるのでアプリ-リソース間連携設定は容易 ◦ Helmリポジトリ上の公開アプリインストールはまあ便利 ◦
が、特段おすすめするほどでもない
【問題点】 積極的に勧められない理由 ◦ Terraform公式ドキュメント以外にHCLでのマニフェスト例 がほぼない ◦ ⇒ 調べたマニフェストYAMLをHCLに変換する作業が頻発 ◦ ⇒
HCLの書き方も都度調べることになり学習コストが増大 ◦ K8s:宣言的構成管理が売りだが… ◦ ⇒ Terraformを挟むとTfstate(状態)管理が発生 ◦ ⇒ 管理コストはさほどでもないが何か違和感。。。 ◦ AWSリソースとk8s上のアプリでは更新頻度も管理体系も そもそも別 ◦ ⇒ Terraformに統一することによる恩恵があまりない