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
Daichi Sakaue
January 21, 2021
Programming
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オンプレ Kubernetes クラスタの全サーバーを宣言的に再起動する方法
Daichi Sakaue
January 21, 2021
Other Decks in Programming
See All in Programming
Android CLI
fornewid
0
220
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
530
Building a Meta Ray-Ban display app
akkeylab
0
170
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
720
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
330
Flow は今どうなっているか
mizdra
PRO
0
640
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
210
SlackアプリとLambdaの 連携を構築した話
pawn_4_s
1
130
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
110
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
150
What's New in Android 2026
veronikapj
0
270
プロポーザルを書いてもらう
pvcresin
0
560
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
650
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
440
We Have a Design System, Now What?
morganepeng
55
8.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Discover your Explorer Soul
emna__ayadi
2
1.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
Optimizing for Happiness
mojombo
378
71k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
170
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
940
The Cult of Friendly URLs
andyhume
79
7k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
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
を付けて 分散させる ▌ノード数が超多い時はこういった 対策をする必要がある