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
20190924_Kubernetes_Meetup_Osaka__1_Kubernetesの...
Search
nezumisannn
September 24, 2019
Technology
60
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20190924_Kubernetes_Meetup_Osaka__1_KubernetesのマニフェストをHCLで書く.pdf
nezumisannn
September 24, 2019
More Decks by nezumisannn
See All by nezumisannn
20250930_Conohaウェビナー_生成AI_Terraform_ConoHa_VPSサーバー_セットアップ入門編
nezumisannn
1
44
20250723_Conohaウェビナー_高騰する海外クラウド費用を劇的カット_サーバーコスト最適化のポイント解説と成功事例のご紹介.pdf
nezumisannn
0
66
20241204_ビヨンド勉強会_44_AWS_Service_Catalogを利用したIaCのテンプレート化とTerraformによるデプロイ.pdf
nezumisannn
0
430
20240828_ビヨンド勉強会_42_EKS_on_FargateでWebサービスを公開するために覚えておきたいこと.pdf
nezumisannn
0
120
20240530_ビヨンド勉強会#41_ビヨンドのエンジニア新卒研修における取り組み
nezumisannn
0
140
20230511_AWSにおけるコンテナサービスの選択とIaC実装例.pdf
nezumisannn
0
1.5k
リーダーになって1年経過して_取り組んできたことと大事にしている考え方_の裏側_.pdf
nezumisannn
0
96
20211118_GKEにおける高負荷時のPodとWorker_Nodeの挙動について.pdf
nezumisannn
0
190
20211014_Alibaba_Cloud_Container_Service_for_KubernetesにおけるServerless_Kubernetesの概要とManaged_Kubernetesとの違い.pdf
nezumisannn
0
120
Other Decks in Technology
See All in Technology
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
670
AI時代、つくる力を自分たちの手に。 ──電通×KAG、アジャイルとAI駆動開発で挑む開発の変革
yuukiyo
3
440
kintoneで在庫管理システムを作るときの要件定義・設計ポイント
kai0707
0
190
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
180
スマートロックを支えるFlutter × ネイティブ連携の実践 / Flutter and Native Integration in Practice: Powering Smart Locks
bitkey
PRO
0
110
Microsoft のサポート ライフサイクルを理解する
murachiakira
PRO
0
240
推論基盤と Scale-Up Interconnect の現状と制約から俯瞰する技術動向
markunet
2
670
外国人エンジニアがVueプロトタイプで仕様を合わせている話 / Vue Fes Japan 2026 LT
eluwing
0
320
Content Mapper APIの応用例~CSS Modules、言語ファイル~
uhyo
2
360
Vue.jsのGitHubから学ぶ意思決定
yut0naga1_fa
1
340
re:Invent の去年のスケジュールを公開します!
miu_crescent
PRO
0
120
「作れる」と「リリースできる」の間にあったもの── PdMを外して見えた、PdMがやるべき仕事/Buildable ≠ Shippable: What Removing the PM Taught Me About the PM’s Job
yappli_developers
0
390
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
540
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
230
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
800
Automating Front-end Workflow
addyosmani
1370
210k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Paper Plane
katiecoart
PRO
5
54k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
380
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Navigating Team Friction
lara
192
16k
Transcript
k8sのマニフェストをHCLで書く Kubernetes Meetup Osaka #1 2019/09/18 株式会社ビヨンド 寺岡 佑樹
自己紹介 resource “my_profile” “nezumisannn” { name = “Yuki.Teraoka” nickname =
“ねずみさん家。” company = “beyond” job = “Site Reliability Engineer” twitter = “@yktr_sre” skills = [“terraform”,”packer”] }
マニフェストとYAML ・マニフェストと言えばYAML ・1部分が違うだけでもひたすらコピペ作業 ・そのまま書いていると一瞬でYAMLだらけになる(
他のやり方ないかな? ・Helm ・Chartと呼ばれるテンプレートを作る ・ただしChartも元を正せばYAMLで書くことになる ・YAML以外の言語でマニフェストを書けないのかという疑問と好奇心
HCLとは? ・Hashicorp Configuration Language ・Hashicorp社の製品で利用されている独自言語 ・マニフェストもHCLで書ける
HCLで書くメリット ・設定反映前のドライラン ・マニフェスト内での変数の利用 ・マニフェストのモジュール化 ・Terraform + HCLでk8sのマニフェストを書いてみた (今回の本題)
今回作成するマニフェスト ・Nginxのpodを立ち上げるためのDeployment ・Service LoadBalancerも書けますが今回は省略します( ・今回はTerraformのversion 0.12を使っています ・version 0.11と若干記述が違う部分があるのでご注意ください
apiVersion: apps/v1 kind: Deployment metadata: name: k8s-meetup-sample spec: selector: matchLabels
: app: nginx-app replicas: 3 template: metadata: labels: app: nginx-app spec: containers: - name: nginx image: nginx:latest ports: - containerPort : 80
module "k8s-meetup-sample" { source = "./modules/k8s-meetup-sample" replicas = 3 }
template { metadata { labels = { app = "nginx-app" } } spec { container { name = "nginx" image = "nginx:latest" port { container_port = 80 } } } } } } variable "replicas" { type = "string" } resource "kubernetes_deployment" "k8s-meetup-sample" { metadata { name = "k8s-meetup-sample" } spec { selector { match_labels = { app = "nginx-app" } } replicas = "${var.replicas}"
HCLを書いたら ・Terraform init (初期化) ・Terraform plan (ドライラン) ・Terraform apply (反映)
・Terraform destroy (削除)
まとめ ・k8sのマニフェストはHCLでも書ける ・YAMLではなくHCLで書くことも検討してみてはいかがでしょうか
END