SlideShare a Scribd company logo
俺のKubernetes Workflow with HashiStack
Toru Makabe
Cloud Solution Architect at Microsoft
自己紹介
CODE EDITOR
apiVersion: selfIntroduction/v1
name: “真壁 徹(まかべ とおる)”
company:
name: “日本マイクロソフト株式会社”
role: “クラウド ソリューションアーキテクト”
love: “Cloud Computing & Craft Beer”
お伝えしたいこと
本日のお品書き
▪ Kubernetes における構成管理の課題
▪ 俺のGitOps (Terraform & Flux)
▪ 俺のWorkflow (Terraform Cloud & Visual Studio Code & GitHub Actions)
▪ Now Challenging… Consul Service Mesh on Kubernetes
Azureでの経験をもとに
お話しします
ですが、Terraformがサポートしているプラットフォームであれば
他でも参考になると思います
Kubernetes における
構成管理の課題
Kubernetesの環境、
何を使って作っていますか?
Terraform
CLI by Cloud Provider
Provisioning Tool by Cloud Provider (e.g. Azure Resource Manager Template)
Other
Kubernetesクラスターを作るだけで
出来上がるシステムは稀
Kubernetes クラスター
仮想マシン
外部リソース
(データストア、
シークレットストア、
監視サービス、etc)
Kubernetes リソース
(Deployment、DarmonSet、StorageClass、
Secret、ConfigMap、etc)
ネットワーク ストレージ
Kubernetes クラスター
外部リソース
(データストア、
シークレットストア、
監視サービス、etc)
仮想マシン ネットワーク ストレージ
Azureが提供するプロビジョニングツールの
カバー範囲
Kubernetes リソース
(Deployment、DarmonSet、StorageClass、
Secret、ConfigMap、etc)
Kubernetes リソース
(Deployment、DarmonSet、StorageClass、
Secret、ConfigMap、etc)
Kubernetes クラスター
外部リソース
(データストア、
シークレットストア、
監視サービス、etc)
仮想マシン ネットワーク ストレージ
Terraformの
カバー範囲
k8sの構成管理におけるTerraformの利点
Kubernetesクラスター外部のリソースも構成管理できる
DBなどデータストア、シークレットストア、監視サービス、etc
リソース間で設定情報を受け渡せる(識別子、IPアドレス、etc)
Kubernetesクラスター上のリソースも構成管理できる
TerraformのKubernetes/Helmプロバイダーを活用
だがしかし
リソースには属性の違いがある
ライフサイクルの違い
一度作成したらあまり変更がないリソース
アプリの機能追加や変更に合わせて頻繁、継続的に操作されるリソース
担当者の役割の違い
変更の影響、リスクや機密性の観点から、管理者に権限を限定したいリソース
スピード感や柔軟性を重視し、アプリ開発者にも権限を委譲したいリソース
Kubernetes クラスター
仮想マシン
外部リソース
(データストア、
シークレットストア、
監視サービス、etc)
Kubernetes リソース – Platform寄り
(Ingress Controller、DaemonSet、
StorageClass、Secret、ConfigMap、etc)
Kubernetes リソース – App寄り
(Deployment、Ingress、Secret、
ConfigMap,、etc)
ネットワーク ストレージ
分離!!
Kubernetes クラスター
仮想マシン
外部リソース
(データストア、
シークレットストア、
監視サービス、etc)
Kubernetes リソース – Platform寄り
(Ingress Controller、DaemonSet、
StorageClass、Secret、ConfigMap、etc)
Kubernetes リソース – App寄り
(Deployment、Ingress、Secret、
ConfigMap,、etc)
ネットワーク ストレージ
Terraformの
カバー範囲
管理者向けの
“Bootstrap”ツールと
位置付ける
Kubernetes クラスター
仮想マシン
外部リソース
(データストア、
シークレットストア、
監視サービス、etc)
Kubernetes リソース – Platform寄り
(Ingress Controller、DaemonSet、
StorageClass、Secret、ConfigMap、etc)
Kubernetes リソース – App寄り
(Deployment、Ingress、Secret、
ConfigMap,、etc)
ネットワーク ストレージ
Terraformの
カバー範囲
ここを
どうする?
俺のGitOps
(Terraform & Flux)
Kubernetes クラスター
仮想マシン
外部リソース
(データストア、
シークレットストア、
監視サービス、etc)
Kubernetes リソース – Platform寄り
(Ingress Controller、DaemonSet、
StorageClass、Secret、ConfigMap、etc)
Kubernetes リソース – App寄り
(Deployment、Ingress、Secret、
ConfigMap,、etc)
ネットワーク ストレージ
Terraform
Flux & Helm Operator
GitHub(*)
継続的な
pull & apply
構築時のapply
(*)経験上Bootstrapはレポジトリを分けることが多い
それぞれの位置づけ
Terraform - Bootstrapping
一度作成したらあまり変更しない or したくないリソース
GitOpsの準備を整える
Flux & Helm Operator – GitOps Continuous Configuration
Bootstrap後にGitHubから構成をpull、適用し続ける
Fluxの他にはArgo CDも人気がある印象
GitHub - Single Source of Truth
ここさえ見れば構成が分かる、と信頼できる情報源
Kubernetesクラスターを直接操作せず、変更はGitHubへ
作成・設定・維持対象リソース例
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)
作成・設定・維持対象リソース例
▪ 一度作成したら変更したくない 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)
作成・設定・維持対象リソース例
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に書き換える必要があるた
め)
俺のWorkflow
(Terraform Cloud &
Visual Studio Code &
GitHub Actions)
俺の開発環境
もろもろの要件&条件
▪ 開発端末はプロジェクトに合わせてWindowsもmacOSも使う
▪ いくつかの端末を使い分ける
▪ オフィスでもお客様先でも家でもコードを書く
▪ コードは一元管理したい
▪ Terraformのステートも一元管理したい
▪ 開発環境の設定も一元管理したい
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で提供)
Terraform Visual Studio Code Extension
▪ v2からHashiCorpが開発をリード
▪ HCL 2やTerraform Language
Server対応など意欲的
▪ v2への移行に伴い、ややIssueが
多めですが、前向きにフィードバ
ックして育てていきましょう
https://github.com/hashicorp/vscode-terraform
俺のTerraform CI & Review
プルリク時にGitHub Actionsでplanし、レビューやマージ判断に活用
GitHub
Pull Request
Trigger
GitHub
Actions
• terraform fmt
• terraform init
• terraform plan
Result
applyの自動化は、あまりやっていません (技術的には可能ですが、リスクを考慮)
俺のKubernetes Workflow 全体像
Dev/Test Production
Apps Flow
Bootstrap
GitOps
参考: Azure Kubernetes Service インフラ ブートストラップ開発フロー&コードサンプル 2020春版
Now Challenging…
Consul Service Mesh
on Kubernetes
サービスメッシュの需要と必要性↑
正直、サービスメッシュが必要なプロジェクトは限られると感じていた
既存アプリの移行に使われる/妥当なケースは、あまりない(経験上)
技術やエコシステムの変化が激しく追従が大変
(Kubernetesだけでも激しいのに、サービスメッシュをそこに載せたら…)
採用が妥当と思えるプロジェクトが、少しずつ増えている印象
新しく作るシステムの共通機能としては非常に有用
(経路暗号化、トラフィック制御、可観測性向上、etc)
本気の相談をいただく機会も、少しずつ
Consul Connect
Service Mesh on k8s
激しく期待を込めて検証中
俺の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人衆
可観測性コンビ
現在の印象
かっちり動いて
開発のリード、ガバナンスに
安心感がある
おねだり‼
Consul
Server
Consul
Client
Consul
Connect &
Envoy
NGINX
Ingress
Controller
Backend
App
Frontend
App
Consul
Connect &
Envoy
Consul
Connect &
Envoy
構成管理4人衆
可観測性コンビ
代表的なIngress
Gatewayだけで構
わないので、もっ
と楽に設定したい
Helmで設定可
能な属性が増
えると幸せ
より容易な
統合手段があ
ると嬉しい
まとめ
お伝えしたかったこと
▪ Kubernetes における構成管理の課題
▪ 俺のGitOps (Terraform & Flux)
▪ 俺のWorkflow (Terraform Cloud & Visual Studio Code & GitHub Actions)
▪ Now Challenging… Consul Service Mesh on Kubernetes
俺の Kubernetes Workflow with HashiStack

More Related Content

PDF
インフラ野郎AzureチームProX
Toru Makabe
 
PDF
半日でわかる コンテナー技術 (応用編)
Toru Makabe
 
PDF
インフラ野郎 Azureチーム at クラウド boost
Toru Makabe
 
PDF
帰ってきた インフラ野郎 Azureチーム ~Azure データセンターテクノロジー解体新書2018春~ - de:code2018
Toru Makabe
 
PDF
Real World Azure RBAC
Toru Makabe
 
PDF
Essentials of container
Toru Makabe
 
PDF
俺とHashiCorp
Toru Makabe
 
PDF
Azure Infrastructure as Code 体験入隊
Toru Makabe
 
インフラ野郎AzureチームProX
Toru Makabe
 
半日でわかる コンテナー技術 (応用編)
Toru Makabe
 
インフラ野郎 Azureチーム at クラウド boost
Toru Makabe
 
帰ってきた インフラ野郎 Azureチーム ~Azure データセンターテクノロジー解体新書2018春~ - de:code2018
Toru Makabe
 
Real World Azure RBAC
Toru Makabe
 
Essentials of container
Toru Makabe
 
俺とHashiCorp
Toru Makabe
 
Azure Infrastructure as Code 体験入隊
Toru Makabe
 

What's hot (20)

PDF
Demystifying Identities for Azure Kubernetes Service
Toru Makabe
 
PDF
半日でわかる コンテナー技術 (入門編)
Toru Makabe
 
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
PDF
ダイ・ハード in the Kubernetes world
Toru Makabe
 
PDF
Ingress on Azure Kubernetes Service
Toru Makabe
 
PDF
今改めて学ぶ Microsoft Azure 基礎知識
Minoru Naito
 
PDF
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Toru Makabe
 
PDF
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
Toru Makabe
 
PDF
Azure update flash
Minoru Naito
 
PDF
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座
Minoru Naito
 
PDF
de:code 2019 Cloud トラック 総まとめ! 完全版
Minoru Naito
 
PDF
Terraform Bootcamp - Azure Infrastructure as Code隊
Toru Makabe
 
PDF
コマンド1発でAzureにDC/OS環境を作る方法
Toru Makabe
 
PDF
クラウドネイティブガバナンスの実現
Minoru Naito
 
PDF
インフラCICDの勘所
Toru Makabe
 
PDF
インフラ廻戦 品川事変 前夜編
Toru Makabe
 
PDF
俺のサイジング
Toru Makabe
 
PDF
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
Minoru Naito
 
PDF
de:code 2019 Cloud トラック 総まとめ!
Minoru Naito
 
PDF
次世代の企業ITインフラを支えるエンジニアとは
Trainocate Japan, Ltd.
 
Demystifying Identities for Azure Kubernetes Service
Toru Makabe
 
半日でわかる コンテナー技術 (入門編)
Toru Makabe
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Toru Makabe
 
ダイ・ハード in the Kubernetes world
Toru Makabe
 
Ingress on Azure Kubernetes Service
Toru Makabe
 
今改めて学ぶ Microsoft Azure 基礎知識
Minoru Naito
 
Azure Blueprints - 企業で期待される背景と特徴、活用方法
Toru Makabe
 
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
Toru Makabe
 
Azure update flash
Minoru Naito
 
一歩先行く Azure Computing シリーズ(全3回) 第2回 Azure VM どれを選ぶの? Azure VM 集中講座
Minoru Naito
 
de:code 2019 Cloud トラック 総まとめ! 完全版
Minoru Naito
 
Terraform Bootcamp - Azure Infrastructure as Code隊
Toru Makabe
 
コマンド1発でAzureにDC/OS環境を作る方法
Toru Makabe
 
クラウドネイティブガバナンスの実現
Minoru Naito
 
インフラCICDの勘所
Toru Makabe
 
インフラ廻戦 品川事変 前夜編
Toru Makabe
 
俺のサイジング
Toru Makabe
 
AWS 技術者向け Azure サービス解説 de:code2019版 #CD81
Minoru Naito
 
de:code 2019 Cloud トラック 総まとめ!
Minoru Naito
 
次世代の企業ITインフラを支えるエンジニアとは
Trainocate Japan, Ltd.
 
Ad

Similar to 俺の Kubernetes Workflow with HashiStack (20)

PDF
Building andobservingcloudnativeappliactionusingazure elastic-terraform
Shotaro Suzuki
 
PDF
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
 
PDF
VMware が考えるコンテナと Kubernetes の世界
Yuichi Tamagawa
 
PDF
20191209 hccjp azure-stackhub_overview
Osamu Takazoe
 
PPTX
Java on Kubernetes on Azure
Yoshio Terada
 
PDF
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Michitaka Terada
 
PDF
Kubecon NA 2019 Recap: Your Path to Production Ready Kubernetes hosted by Wea...
Tomohiro Tsuchida
 
PPTX
Container x azure x kubernetes
Yasuaki Matsuda
 
PDF
クラスターを分割するという運用の現実解
CASAREAL, Inc.
 
PDF
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Masaya Aoyama
 
PPTX
K8s meetup containerized_cloud_foundry
JUNICHI YOSHISE
 
PDF
Infrastructure as code for azure
Keiji Kamebuchi
 
PPTX
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
Norio Sashizaki
 
PPTX
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド - OpenStack Day Tokyo 2018講演資料
VirtualTech Japan Inc.
 
PDF
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
 
PDF
Hccjp rancher+azurearc 201009
Junji Nishihara
 
PDF
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
Keiichi Hikita
 
PPTX
Step by stepで学ぶTerraformによる監視付きAWS構築
Yo Takezawa
 
PDF
ConsulとNomadで簡単クッキング
Masatomo Ito
 
PDF
俺のTerraform CI/CD ライフサイクル
HonMarkHunt
 
Building andobservingcloudnativeappliactionusingazure elastic-terraform
Shotaro Suzuki
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
 
VMware が考えるコンテナと Kubernetes の世界
Yuichi Tamagawa
 
20191209 hccjp azure-stackhub_overview
Osamu Takazoe
 
Java on Kubernetes on Azure
Yoshio Terada
 
Rancher/k8sを利用した運用改善の取り組み(Rancher Day 2019)
Michitaka Terada
 
Kubecon NA 2019 Recap: Your Path to Production Ready Kubernetes hosted by Wea...
Tomohiro Tsuchida
 
Container x azure x kubernetes
Yasuaki Matsuda
 
クラスターを分割するという運用の現実解
CASAREAL, Inc.
 
Kube con + cloudnativecon 2017 社内報告会(外部公開用)
Masaya Aoyama
 
K8s meetup containerized_cloud_foundry
JUNICHI YOSHISE
 
Infrastructure as code for azure
Keiji Kamebuchi
 
AKS on Azure Stack HCI/Windows Serverのデプロイ _ Deploying AKS on Azure Stack HCI...
Norio Sashizaki
 
OpenStack Summit & KubeConからみるコンテナ技術の最新トレンド - OpenStack Day Tokyo 2018講演資料
VirtualTech Japan Inc.
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
 
Hccjp rancher+azurearc 201009
Junji Nishihara
 
OpenStack上の環境構築自動化に向けたTerraform/Pulumiの活用
Keiichi Hikita
 
Step by stepで学ぶTerraformによる監視付きAWS構築
Yo Takezawa
 
ConsulとNomadで簡単クッキング
Masatomo Ito
 
俺のTerraform CI/CD ライフサイクル
HonMarkHunt
 
Ad

More from Toru Makabe (12)

PDF
ミッション : メガクラウドを安全にアップデートせよ!
Toru Makabe
 
PDF
Resilience Engineering on Kubernetes
Toru Makabe
 
PDF
Azure Kubernetes Service 2019 ふりかえり
Toru Makabe
 
PDF
NoOps Japan Community 1st Anniversary 祝辞
Toru Makabe
 
PDF
ZOZOTOWNのCloud Native Journey
Toru Makabe
 
PDF
Ops meets NoOps
Toru Makabe
 
PDF
インフラエンジニア エボリューション ~激変する IT インフラ技術者像、キャリアとスキルを考える~ at Tech Summit 2018
Toru Makabe
 
PDF
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
Toru Makabe
 
PDF
NoOps?よろしいならば戦争だ
Toru Makabe
 
PDF
Azure Design Review Checklist Availabilityの巻
Toru Makabe
 
PDF
インフラ野郎 Azureチーム 博多夏祭り
Toru Makabe
 
PDF
Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計
Toru Makabe
 
ミッション : メガクラウドを安全にアップデートせよ!
Toru Makabe
 
Resilience Engineering on Kubernetes
Toru Makabe
 
Azure Kubernetes Service 2019 ふりかえり
Toru Makabe
 
NoOps Japan Community 1st Anniversary 祝辞
Toru Makabe
 
ZOZOTOWNのCloud Native Journey
Toru Makabe
 
Ops meets NoOps
Toru Makabe
 
インフラエンジニア エボリューション ~激変する IT インフラ技術者像、キャリアとスキルを考える~ at Tech Summit 2018
Toru Makabe
 
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
Toru Makabe
 
NoOps?よろしいならば戦争だ
Toru Makabe
 
Azure Design Review Checklist Availabilityの巻
Toru Makabe
 
インフラ野郎 Azureチーム 博多夏祭り
Toru Makabe
 
Azure Virtual Data Centerで学ぶ 企業向けAzureネットワーク設計
Toru Makabe
 

Recently uploaded (10)

PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 

俺の Kubernetes Workflow with HashiStack