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
39
FinOpsとタグ付け防止対策 / CCoE Osaka FinOps Tags
taishin
1
350
Glacierだからってコストあきらめてない? / JAWS Meet Glacier Cost
taishin
1
490
スケールするプロダクトと膨らむ組織 SREの挑戦と解決策 / Findy Job LT SRE
taishin
0
200
組織の変化とSREの役割進化 責務拡大にどう応えるか / globis_sre
taishin
0
490
Lambdaの運用についてのなにか / lambda_unyo
taishin
0
220
おすすめAWSコスト対策 / AWS Startup Meetup Osaka AWS Cost
taishin
1
570
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
1.7k
ECS Runtime Monitoring で コンテナランタイムセキュリティに入門 / nakanoshima-dev-ecs-runtime-monitoring
taishin
0
440
Other Decks in Technology
See All in Technology
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
150
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
200
Refining Active Record
shugo
0
160
遠藤な_めぐろLT #38 「社内のAI活用推進」@麻布台_20261009
endonanana
0
130
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
930
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.4k
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
560
CTO Night|NotionのAIエージェントとFDE
kzkhykw1991
0
160
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
1
240
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
190
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
55
8.4k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
Leo the Paperboy
mayatellez
10
2.4k
Accessibility Awareness
sabderemane
1
250
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Are puppies a ranking factor?
jonoalderson
2
4.1k
Agile that works and the tools we love
rasmusluckow
331
22k
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