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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
290
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
450
スケールするプロダクトと膨らむ組織 SREの挑戦と解決策 / Findy Job LT SRE
taishin
0
180
組織の変化とSREの役割進化 責務拡大にどう応えるか / globis_sre
taishin
0
430
Lambdaの運用についてのなにか / lambda_unyo
taishin
0
220
おすすめAWSコスト対策 / AWS Startup Meetup Osaka AWS Cost
taishin
1
530
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
1.6k
ECS Runtime Monitoring で コンテナランタイムセキュリティに入門 / nakanoshima-dev-ecs-runtime-monitoring
taishin
0
380
JAWS-UG-Osaka-guardrail
taishin
0
420
Other Decks in Technology
See All in Technology
攻撃と防御で学ぶAI時代のプロダクトセキュリティ演習
recruitengineers
PRO
7
2.2k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
53k
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
1
200
制約理論(ToC)入門 2026版
recruitengineers
PRO
6
2.1k
Goでデータパイプラインを作ろう
sansantech
PRO
0
360
【CEDEC2026】『GRANBLUE FANTASY: Relink - Endless Ragnarok』のバトル制作事例 ~最高のキャラゲーを目指して~
cygames
PRO
0
230
変化の早いClaude Codeを 書籍に落とし込む
oikon48
7
1.3k
SmartHR Engineering Team Deck
smarthr
1
1.3k
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
770
修正PRを食べてレビュースキルが賢くなる:Claude Codeによる自己改善サイクル
yuyaumetsu
6
1.4k
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
630
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
550
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Abbi's Birthday
coloredviolet
3
9.3k
Chasing Engaging Ingredients in Design
codingconduct
0
260
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Site-Speed That Sticks
csswizardry
13
1.4k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
240
Automating Front-end Workflow
addyosmani
1370
210k
The Curse of the Amulet
leimatthew05
2
14k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
480
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
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