Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ChatworkDevDay_Kubernetes導入における実践プラクティス / Chatw...
Search
sasaki
May 26, 2021
Technology
8.1k
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
保育ICTに求められる信頼性と、それを支えるDatadog活用 / Datadog Live Osaka 2026 Codmon
taishin
0
51
FinOpsとタグ付け防止対策 / CCoE Osaka FinOps Tags
taishin
1
350
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
500
スケールするプロダクトと膨らむ組織 SREの挑戦と解決策 / Findy Job LT SRE
taishin
0
210
組織の変化とSREの役割進化 責務拡大にどう応えるか / globis_sre
taishin
0
510
Lambdaの運用についてのなにか / lambda_unyo
taishin
0
230
おすすめAWSコスト対策 / AWS Startup Meetup Osaka AWS Cost
taishin
1
580
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
1.7k
ECS Runtime Monitoring で コンテナランタイムセキュリティに入門 / nakanoshima-dev-ecs-runtime-monitoring
taishin
0
450
Other Decks in Technology
See All in Technology
bpf_arenaとstruct_opsを使うのが難しかった話
masu_mi
0
200
In-Context Learning再入門。ICLの勾配降下的解釈の研究動向を追ってみる。
dai08srhg
1
510
AWS構成から考えるWebセキュリティ ― WordPressの構築経験から考える公開範囲と更新運用【JAWS FESTA 2026 in AKITA】
cscengineer
PRO
1
300
AI AgentによるEmbedded SREの取り組み
tgidgd
1
350
Sinatra on PicoRuby ローカルでセルフホスト
bash0c7
0
100
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
440
Claude Codeで作ったアプリを安全に公開する/Built with Claude Japan 2026
yoshidashingo
0
170
E2Eってつらくないですか?E2Eの管理コストを下げる手段とその実践
akaboshinit
6
3k
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
110
Flutter Widget Previewerで始めるUIプレビューとVRTの自動化
sakusaku3939
0
210
攻撃 3 時間 vs 復旧 10 時間。アクセスキー流出の非対称性を体感するために CTF を作った話
kazzpapa3
1
150
Kiro Crew の Bot (続く役目を任せる窓口) | 目指せ Kiro マスター 12
inariku
PRO
2
280
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
60k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
280
Testing 201, or: Great Expectations
jmmastey
46
8.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Color Theory Basics | Prateek | Gurzu
gurzu
1
510
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.4k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
370
Navigating Weather and Climate Data
rabernat
0
580
Crafting Experiences
bethany
1
430
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
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