【Kubernetes】Pod のローリングアップデート時確認事項
- POSTS
1. はじめに Kubernetes において、Pod のデプロイ戦略として、ローリングアップデート が用意されています。
ローリングアップデートは、よく知られたデプロイ戦略です。
ただし、ローリングアップデートの実施前に確認しておかないと、想定していない障害や不具合が発生することがあります。
この記事では、ローリングアップデート実施前の確認事項をまとめています。
2. ローリングアップデートとは ローリングアップデートとは、システム全体停止を行わず、順次 Pod (コンテナ) を新しいバージョンの Pod へと段階的に入れ替えていくデプロイ手法です。
2.1. メリット ダウンタイムが生じない 常に一定数の Pod が存在しているため、サービス停止せず更新を行うことができます。 リスク分散 一度に全ての Pod を入れ替えないため、新しいバージョンに問題があった場合でも、影響範囲が少なくてすみます。S 2.2. 注意点 ローリングアップデートの注意点として、古い Pod と 新しい Pod が一時的に存在する時間が生まれてしまうことです。
この時、ユーザーによって、アクセスする Pod が異なる場合があります。
こういった挙動で不具合が生じる可能性があるシステムで利用する場合は、注意が必要です。
3. 最初に確認したい全体観点 レプリカ数の確認 maxUnavailable / maxSurge Readiness / Liveness Probe 4. レプリカ数の確認 ローリングアップデートを行う事前確認として、レプリカの数を kubectl get deployment コマンド で確認を行うのが良いです。
レプリカ数が 1 の場合 maxUnavailable を 0 と設定したとしても Pod の切替時に処理落ちが発生する可能性があるため、レプリカ数 は、2 以上あることが望ましいで 5. maxUnavailable / maxSurge の設定 Kubernetes では、設定変更することで ローリングアップデート時の挙動を変更することが可能です。