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
410
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
Dylib Hijacking on macOS: Dead or Alive?
patrickwardle
0
170
When Token Pruning is Worse than Random: Understanding Visual Token Information in VLLMs
sansantech
PRO
0
190
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3.2k
みてねにおけるAI-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
300
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
GopherCon @シアトル に行ってきました
logica0419
0
460
顧客の要望は2次情報である 〜アンテナを張るFDEの構造論〜
noriakioji
5
1.1k
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
1
900
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
2
790
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
54k
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.5k
internal/testlog で遊ぼう
rokuosan
0
420
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
310
Navigating Weather and Climate Data
rabernat
0
500
Being A Developer After 40
akosma
91
590k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Done Done
chrislema
186
16k
Become a Pro
speakerdeck
PRO
31
6.2k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Skip the Path - Find Your Career Trail
mkilby
1
200
The SEO Collaboration Effect
kristinabergwall1
1
540
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
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