More Related Content Similar to 俺の Kubernetes Workflow with HashiStack (20) More from Toru Makabe (12) 俺の Kubernetes Workflow with HashiStack19. それぞれの位置づけ
Terraform - Bootstrapping
一度作成したらあまり変更しない or したくないリソース
GitOpsの準備を整える
Flux & Helm Operator – GitOps Continuous Configuration
Bootstrap後にGitHubから構成をpull、適用し続ける
Fluxの他にはArgo CDも人気がある印象
GitHub - Single Source of Truth
ここさえ見れば構成が分かる、と信頼できる情報源
Kubernetesクラスターを直接操作せず、変更はGitHubへ
20. 作成・設定・維持対象リソース例
Flux & Helm Operator
User Application
(e.g. Deployment, Service, HPA, ConfigMap)
Cache
Utilities & Tools
(e.g. Kured, Prometheus)
Terraform
Azure Virtual Network
Azure Public IP Address (For Ingress)
Azure Kubernetes Service
Azure Monitor Integration
Kubernetes Storage Class
Flux & Helm Operator
Ingress Controller (e.g. NGINX)
Service Mesh (e.g. Consul)
21. 作成・設定・維持対象リソース例
▪ 一度作成したら変更したくない or
させたくないリソース
▪ 管理者に操作権限を限定させたい
リソース
▪ Flux & Helm Operatorが動き出
す前に作成を完了したいリソース
▪ 作成、設定順序を意識するリソー
ス
Terraform
Azure Virtual Network
Azure Public IP Address (For Ingress)
Azure Kubernetes Service
Azure Monitor Integration
Kubernetes Storage Class
Flux & Helm Operator
Ingress Controller (e.g. NGINX)
Service Mesh (e.g. Consul)
22. 作成・設定・維持対象リソース例
Flux & Helm Operator
User Application
(e.g. Deployment, Service, HPA, ConfigMap)
Cache
Utilities & Tools
(e.g. Kured, Prometheus)
▪ 継続的に変更するリソース
▪ アプリ開発者にも権限を委譲した
いリソース
▪ 作成、設定順序を意識しない、宣
言的構成管理、Kubernetes Way
に沿ったリソース
▪ Bootstrapで構成する強い理由が
ないリソース (Terraformでは
Kubernetes YAMLマニフェスト
をHCLに書き換える必要があるた
め)
25. Windows 10
WSL 2
VS Code
Remote
Dev. Ext.
Terraform
Ext. GitHub
Settings Sync
Ext.
macOS
VS Code
Terraform
Ext.
Settings Sync
Ext.
Terraform
Cloud
Git Terraform Git Terraform
State
Code &
VS Code settings
俺の開発環境
いつでも どこでも Terraform
▪ Terraform Cloudでステートを管理
▪ VS Codeの設定を複数端末で同期(Settings Sync拡張を利用)
– 同期機能は標準提供される予定(現在はInsidersで提供)
26. Terraform Visual Studio Code Extension
▪ v2からHashiCorpが開発をリード
▪ HCL 2やTerraform Language
Server対応など意欲的
▪ v2への移行に伴い、ややIssueが
多めですが、前向きにフィードバ
ックして育てていきましょう
https://github.com/hashicorp/vscode-terraform
27. 俺のTerraform CI & Review
プルリク時にGitHub Actionsでplanし、レビューやマージ判断に活用
GitHub
Pull Request
Trigger
GitHub
Actions
• terraform fmt
• terraform init
• terraform plan
Result
applyの自動化は、あまりやっていません (技術的には可能ですが、リスクを考慮)
32. 俺のConsul Connect Service Mesh on k8s
絶賛検証中
Consul
Server
Consul
Client
Consul
Connect &
Envoy
NGINX
Ingress
Controller
Backend
App
Frontend
App
Consul
Connect &
Envoy
Consul
Connect &
Envoy
構成管理4人衆
可観測性コンビ
36. お伝えしたかったこと
▪ Kubernetes における構成管理の課題
▪ 俺のGitOps (Terraform & Flux)
▪ 俺のWorkflow (Terraform Cloud & Visual Studio Code & GitHub Actions)
▪ Now Challenging… Consul Service Mesh on Kubernetes