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.5k
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
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
240
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
220
SREは、MCPとSRE Agentをこう使え!
kazumax55
0
130
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
160
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.9k
The NotImplementedError Problem in Ruby
koic
1
1.1k
act1-costs.pdf
sumedhbala
0
150
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
570
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.9k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
160
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
660
For a Future-Friendly Web
brad_frost
183
10k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
400
It's Worth the Effort
3n
188
29k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
So, you think you're a good person
axbom
PRO
2
2.1k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
Optimising Largest Contentful Paint
csswizardry
37
3.8k
A Soul's Torment
seathinner
6
3k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
200
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
を付けて 分散させる ▌ノード数が超多い時はこういった 対策をする必要がある