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
オンプレ Kubernetes クラスタの全サーバーを宣言的に再起動する方法
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Daichi Sakaue
January 21, 2021
Programming
1.4k
0
Share
オンプレ Kubernetes クラスタの全サーバーを宣言的に再起動する方法
Daichi Sakaue
January 21, 2021
Other Decks in Programming
See All in Programming
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
1
400
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
130
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
180
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
310
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
210
Claspは野良GASの夢をみるか
takter00
0
140
自動レビューエンジンの実装と運用 ~レビューのない世界へ~
kurukuru1999
2
300
Oxcを導入して開発体験が向上した話
yug1224
4
260
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
140
[KCD Czech] eBPF Meets the GPU: Future of AI Infra Observability
doniacld
0
130
Stage 3 Decorators でできること / できないこと / TSKaigi 2026
susisu
1
1.4k
関係性から理解する"同一性"の型用語たち
pvcresin
2
620
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Designing for Timeless Needs
cassininazir
1
240
Joys of Absence: A Defence of Solitary Play
codingconduct
1
380
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
210
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
190
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
A Soul's Torment
seathinner
6
2.9k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
150
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Transcript
オンプレ Kubernetes クラスタの全サーバーを 宣⾔的に再起動する⽅法 2021/01/21 yokaze (Cybozu, Inc.)
⾃⼰紹介 ▌@yokaze l Cybozu l Kubernetes クラスタの運⽤ ▌今⽇の内容は技術ブログのダイジェスト版 l 詳細に興味がある⽅は
https://blog.cybozu.io/entry/2020/12/25/134334
Kubernetes クラスタの全ノードを再起動したい ▌⽬的 l ファームウェア更新 l 多くの場合、更新後に再起動が必要 l セキュリティ対応 l
アプリの耐障害性の確認 l カオスエンジニアリング ▌条件 l クラスタ上で動いているサービスを⽌めない l ⼿作業で複雑なオペレーションをしない
簡単な⽅法 ▌サービスのバックエンドは冗⻑化されているので Pod を 1 個消しても動く ようになっている ▌ノード 1 を再起動(終わるまで待つ)
▌ノード 2 を再起動(終わるまで待つ) ▌… ▌⼿でやると永遠に終わらない
簡単な⽅法 ▌サービスのバックエンドは冗⻑化されているので Pod を 1 個消しても動く ようになっている ▌ノード 1 を再起動(終わるまで待つ)
▌ノード 2 を再起動(終わるまで待つ) ▌… ▌⼿でやると永遠に終わらない
簡単な⽅法 ▌サービスのバックエンドは冗⻑化されているので Pod を 1 個消しても動く ようになっている ▌ノード 1 を再起動(終わるまで待つ)
▌ノード 2 を再起動(終わるまで待つ) ▌… ▌⼿でやると永遠に終わらない
簡単な⽅法 ▌サービスのバックエンドは冗⻑化されているので Pod を 1 個消しても動く ようになっている ▌ノード 1 を再起動(終わるまで待つ)
▌ノード 2 を再起動(終わるまで待つ) ▌… ▌⼿でやると永遠に終わらない
実装した⽅法 ▌クラスタ管理ツール (CKE) に再起動待ちキューを実装する ▌「再起動待ちキューに全てのノードを追加するコマンド」を作る ▌トラブル発⽣時はアラートを発⽕させる l ⼈⼿で進捗を確認しなくてよい l コマンド⼊⼒後、⼈間が即座に解放される
Kubernetes クラスタ
その他注意点 ▌サービスを壊さないよう PodDisruptionBudget と Eviction API を 活⽤する l Pod
が Eviction できない場合は時間をおいてリトライする l ⼀定時間経つとアラートも鳴る ▌多少再起動に失敗したサーバーがあっても動作を続ける l アラートは鳴る ▌⼀時停⽌ボタンを付けておく
そもそもどうして⼀台ずつ再起動するのか ▌適当に複数台選ぶと運悪く特定 サービスの Pod が集中することが ある
そもそもどうして⼀台ずつ再起動するのか ▌適当に複数台選ぶと運悪く特定 サービスの Pod が集中することが ある ▌ノードをグループ分けしておき、 Pod に anti-affinity
を付けて 分散させる ▌ノード数が超多い時はこういった 対策をする必要がある