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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
42
20250723_Conohaウェビナー_高騰する海外クラウド費用を劇的カット_サーバーコスト最適化のポイント解説と成功事例のご紹介.pdf
nezumisannn
0
61
20241204_ビヨンド勉強会_44_AWS_Service_Catalogを利用したIaCのテンプレート化とTerraformによるデプロイ.pdf
nezumisannn
0
420
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
93
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
おそらく日本で唯一のDevRelインターン生として
husengs7
0
170
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
540
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
0
430
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
680
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
5
1.2k
Datadog の学び方 - あるいは、オブザーバビリティを学ぶとは何か
mananyuki
1
500
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
430
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
210
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
3
1k
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.1k
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
410
IoTデバイスを繋げるプロトコルMatterをAndroidで使用する方法
harutiro
0
120
Featured
See All Featured
Everyday Curiosity
cassininazir
0
350
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.6k
A Soul's Torment
seathinner
8
3.7k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Leo the Paperboy
mayatellez
10
2.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
320
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
320
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
260
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
540
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