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
20190924_Kubernetes_Meetup_Osaka__1_Kubernetesの...
Search
nezumisannn
September 24, 2019
Technology
56
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
38
20250723_Conohaウェビナー_高騰する海外クラウド費用を劇的カット_サーバーコスト最適化のポイント解説と成功事例のご紹介.pdf
nezumisannn
0
58
20241204_ビヨンド勉強会_44_AWS_Service_Catalogを利用したIaCのテンプレート化とTerraformによるデプロイ.pdf
nezumisannn
0
420
20240828_ビヨンド勉強会_42_EKS_on_FargateでWebサービスを公開するために覚えておきたいこと.pdf
nezumisannn
0
110
20240530_ビヨンド勉強会#41_ビヨンドのエンジニア新卒研修における取り組み
nezumisannn
0
140
20230511_AWSにおけるコンテナサービスの選択とIaC実装例.pdf
nezumisannn
0
1.5k
リーダーになって1年経過して_取り組んできたことと大事にしている考え方_の裏側_.pdf
nezumisannn
0
92
20211118_GKEにおける高負荷時のPodとWorker_Nodeの挙動について.pdf
nezumisannn
0
180
20211014_Alibaba_Cloud_Container_Service_for_KubernetesにおけるServerless_Kubernetesの概要とManaged_Kubernetesとの違い.pdf
nezumisannn
0
110
Other Decks in Technology
See All in Technology
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
2
360
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
460
Guerilla InnerSource in enterprises, during the AI hype
onenashev
PRO
0
150
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
3
830
なぜSRE・セキュリティは評価されないのか?守りの組織を事業成長エンジンに変えた実践
cscengineer
PRO
3
2.2k
When Does a Local Qwen Start to Break
morshoto
0
180
Tab5をRubyで動くパソコンにする
kishima
1
190
Jetpack Compose で挑む新聞紙面UI ─ 複合ジェスチャー・ポリゴン記事領域・適応的ページ構成という3つの壁/droidkaigi2026
nikkei_engineer_recruiting
0
210
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
360
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
110
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.6k
[RSJ26] NarrativeFlow: Flow-Based Vision-Language-Action Model Using Robot Velocity Fields
keio_smilab
PRO
0
160
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
141
7.7k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Google's AI Overviews - The New Search
badams
0
1.6k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Deep Space Network (abreviated)
tonyrice
0
290
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Between Models and Reality
mayunak
4
450
Odyssey Design
rkendrick25
PRO
2
800
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
390
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
300
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