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
ChatworkDevDay_Kubernetes導入における実践プラクティス / Chatw...
Search
sasaki
May 26, 2021
Technology
8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ChatworkDevDay_Kubernetes導入における実践プラクティス / ChatworkDevDay_Kubernetes
https://lp.chatwork.com/devday/2021/
sasaki
May 26, 2021
More Decks by sasaki
See All by sasaki
FinOpsとタグ付け防止対策 / CCoE Osaka FinOps Tags
taishin
1
280
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
440
スケールするプロダクトと膨らむ組織 SREの挑戦と解決策 / Findy Job LT SRE
taishin
0
170
組織の変化とSREの役割進化 責務拡大にどう応えるか / globis_sre
taishin
0
400
Lambdaの運用についてのなにか / lambda_unyo
taishin
0
210
おすすめAWSコスト対策 / AWS Startup Meetup Osaka AWS Cost
taishin
1
520
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
1.5k
ECS Runtime Monitoring で コンテナランタイムセキュリティに入門 / nakanoshima-dev-ecs-runtime-monitoring
taishin
0
370
JAWS-UG-Osaka-guardrail
taishin
0
410
Other Decks in Technology
See All in Technology
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
150
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
1
1.9k
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
3
2.1k
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
300
Claude Code 珍プレー好プレー
shinyasaita
0
290
インフラ寄りSREでも 開発に踏み出せる〜境界を越えてユーザー体験に向き合いたい〜
sansantech
PRO
1
2.7k
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
1.9k
地域 SRE コミュニティ最前線 / SRE NEXT 2026 Discussion Night Track C
muziyoshiz
0
160
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
390
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
2
2.7k
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
2.2k
デジタル・デザイン:次の50年を描く「進化する青写真」
y150saya
0
840
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
330
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
Side Projects
sachag
455
43k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
How to make the Groovebox
asonas
2
2.3k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
260
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
640
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
280
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
400
Transcript
SESSION Kubernetes 導入における 実践プラクティス
SESSION Immutable Clusterに対する 定期Version Upgrade戦略
AGENDA 1. EKSのImmutable Clusterによる運用に 至るまでの経緯 2. クラスタのアップデートの流れ
1 EKSのImmutable Clusterによる 運用に至るまでの経緯
EKSの前の時代 - 現在はEOLだが、EKSのなかった時代のKuberentes構成ツール - コントローラも含めてEC2のプロビジョニング - 1年に1回のアップデートだったので、差分が多く、ローリングアップデートは不可 kube-aws時代 - アプリケーション側の移行に時間がかかる
- 1年に1回のアップデートだったので、Kubernetes側の変更箇所が多い - デプロイツールが微妙で、クラスタ依存の変更が多く、開発の傍らでパワーが必要 クラスタアップデート時の問題 - クラスタ側、アプリケーション側にKubernetesへの変更追従が辛い - Kubernetes側の新しい機能が使えない 1年に1回のつらみ
- 構築ツールとしてeksctlの採用 - ニッチなツールや自作は減らす(ラッパーはあるけど) - クラスタ構築自体の負荷が減った EKSの強みを活かす - クラスタ運用負荷を減らす -
アプリケーション側の移行負荷を減らす - helmfile(パッケージ化) + GitOpsの採用 クラスタアップデート時の問題の解決 - Kubernetesの(ほぼ)最新の機能を利用可能 - セキュリティ的にも◎ - 変更追従が少なく、結果的に負荷が少ない - 変更箇所を少なくするように構築環境を整備したのもある 1年に1回から3ヶ月に1回の世界へ EKS後の時代
2 クラスタのアップデートの流れ
クラスタのアップデートの流れ(クラスタ作成) - バージョンごとのクラスタを作成 - 各アプリケーションは(ある程度期限を決 めて)開発者側のタイミングで移行 - SREはクラスタの作成と管理系アプリ ケーション(Datadog, fluentd,
etc)の インストールまでが責務
クラスタのアップデートの流れ(アプリケーションの移行)
おわり
SESSION Kubernetes CI / CD の構成例
1 Immutable Clusterでの アプリケーション管理
EKS(Kubernetes)導入前のCI/CD
EKS(Kubernetes)導入前のCI/CD Deploy Config Prod CI/CD Pipeline Stage Test Application CI
Tool
EKS(Kubernetes)導入前のCI/CD Deploy Config Prod CI/CD Pipeline Stage Test Application CI
Tool RUN
EKS(Kubernetes)導入前のCI/CD Deploy Config Prod CI/CD Pipeline Stage Test Application CI
Tool Pull Pull
EKS(Kubernetes)導入前のCI/CD Deploy Config Prod CI/CD Pipeline Stage Test Application CI
Tool Build
EKS(Kubernetes)導入前のCI/CD Deploy Config Prod CI/CD Pipeline Stage Test Application CI
Tool Deploy Deploy Deploy
EKS(Kubernetes)導入後
EKS(Kubernetes)導入後 Deploy Config Prod Cluster CI/CD Pipeline Stage Cluster Test
Cluster Application CI Tool Deploy Deploy Deploy
EKS(Kubernetes)導入後 Deploy Config Old Prod CI/CD Pipeline Old Stage Old
Test Application CI Tool Deploy Deploy Deploy New Prod New Stage New Test Blue Green
EKS(Kubernetes)導入後 Deploy Config Old Prod CI/CD Pipeline Old Stage Old
Test Application CI Tool Deploy Deploy Deploy New Prod New Stage New Test Blue Green クラスタが追加される度にデプロイ先の変更 Immutable Cluster、Blue/Greenデプロイ対応のためのクラスタ数の増加 移行期間中の並行稼動時のデプロイ先指定 EKSのアップデートポリシーに追随するため3〜4ヶ月おきに発生・・・
GitOps!!
Immutable Cluster環境にGitOps • GitOps ◦ Git上の構成ファイルをSingle Of Truthとする ◦ CIとCDを分離
• 一般的なGitOpsのメリット ◦ PR → レビューのフロー ◦ 履歴管理 ◦ セキュリティの分離 • Immutable Cluster環境におけるGitOpsのメリット ◦ クラスタからGitに同期させることで正しい状態にすることができる
Blue Green Immutable Cluster環境にGitOps Deploy Config Old Prod Old Stage
Old Test Application New Prod New Stage New Test Sync Sync Sync Sync Sync Sync
Blue Green Immutable Cluster環境にGitOps Deploy Config Old Prod Old Stage
Old Test Application New Prod New Stage New Test Sync Sync Sync Sync Sync Sync クラスタ構築時にアプリケーションの デプロイまで完了
2 GitOpsによる ChatworkのCI/CD
構成とフロー
ChatworkのCI/CD Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster Sync CI Pipeline CD Pipeline
ChatworkのCI/CD Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster Sync CI Pipeline CD Pipeline
ChatworkのCI/CD Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster Sync CI Pipeline CD Pipeline
ChatworkのCI/CD Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster Sync CI Pipeline CD Pipeline Push
ChatworkのCI/CD Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster Sync CI Pipeline CD Pipeline Build
ChatworkのCI/CD Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster Update Sync CI Pipeline CD Pipeline Push
ChatworkのCI/CD Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster Out Of Sync CI Pipeline CD Pipeline
ChatworkのCI/CD Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster kubectl apply Manifest CI Pipeline CD Pipeline Out Of Sync
ChatworkのCI/CD Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster Sync CI Pipeline CD Pipeline
組織と役割
組織と役割 Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster CI Pipeline CD Pipeline
組織と役割 Developer SRE Application k8s Config Helmfile Charts Container Registry
Kubernetes Cluster CI Pipeline CD Pipeline • クラスタのバージョン差異を吸収する Chartを作成 • バージョン更新時に説明会の開催 • Helmfileのレビュー
おわり
Appendix. Helmfileとは? • Helmチャートをより宣言的に扱えるデプロイツール ◦ https://github.com/roboll/helmfile • デプロイに便利な機能 ◦ 複数チャートの依存関係を管理
◦ AWS ParameterStore連携 等 helmfile --environment prod apply Prod Test values.yaml / ├── helmfile.yaml └── values/ ├── values.yaml (共通のValue) ├── prod.yaml (Prod用のValue) └── test.yaml (Test用のValue) Helmfile prod.yaml helmfile --environment test apply values.yaml test.yaml