Elasticsearch rolling upgrade (8.x のマイナーアップグレードまたは 8.19 → 9.x)
Elasticsearchレベル: 上級所要時間: ノードあたり 15〜30 分インストールではありません。稼働中の Elasticsearch クラスタを、ノードを 1 台ずつアップグレードしてダウンタイムなしで新しいバージョンへ移行します (8.x 内のマイナーアップグレード、または 8.19 → 9.x のメジャーアップグレード)。事前チェック (バージョン、ヘルス、deprecation API、system feature migration)、アップグレード前の snapshot、shard allocation の primaries への制限と flush、ノードごとのバージョンアップとプラグイン、allocation の再有効化とヘルスの待機、Kibana のアップグレード、必要に応じた snapshot からの切り戻しを順に行います。最終的にすべてのノードと Kibana がターゲットバージョンになり、クラスタは green になります。8.19 より古い 8.x から 9.x へ移行する場合は、まずこのガイドを「同一メジャーバージョン内」オプションで適用して 8.19 にしてください。snapshot リポジトリがない場合は、先に snapshot ガイドを開いてください。
構成: 3 ノード以上の既存クラスタ (+ Kibana)
シナリオ
- 同一メジャーバージョン内 (例: 8.18 → 8.19、9.1 → 9.2) — 同一メジャーバージョン内 (8.18 → 8.19、9.1 → 9.2): リポジトリは変わりませんが、deprecation チェックは実施します。中間のマイナーバージョンを飛ばすことはサポートされています。
- メジャーバージョン: 8.19.x → 9.x — 移行元クラスタは事前に 8.19.x (最新パッチ) にアップグレードしておく必要があります。事前チェックには Upgrade Assistant / deprecation API と system feature migration の手順が含まれます。
開始前の確認
- すべてのノードが同じバージョン … です。…9.x へ移行するには移行元バージョンが 8.19.x である必要があります (8.18 → 9.0 を除く)。そうでない場合は、まずこのガイドを「同一メジャーバージョン内」オプションで適用して 8.19 にしてください。…ターゲットバージョン … は現在のバージョンより新しい必要があります。中間のマイナーバージョンを飛ばすこと (8.17 → 8.19) はサポートされています。…
- クラスタが green である。relocating/initializing の shard がない。すべてのノードでディスク使用率が 75% 未満である (アップグレード中に shard が再構築されるため)。
- アプリケーションクライアント、Logstash、Beats/Elastic Agent、APM がターゲットバージョンと互換性がある。…9.x では 9.x のクライアントライブラリ (または互換性ヘッダー付きの 8.x) が必要です。リリースノートの breaking change を確認してください。…
- snapshot リポジトリ … が登録・検証済みで、snapshot に十分な空き容量がある。アップグレードしたノードは旧バージョンに戻せません。切り戻しの唯一の手段はこの snapshot です。
- サーバーから artifacts.elastic.co (または社内ミラー) にアクセスでき、リポジトリに … が存在する。
- メンテナンスウィンドウが承認済みである。可能であればアップグレード中の書き込み負荷を下げておく (必須ではありません)。…Kibana の Stack Management → Upgrade Assistant 画面の critical な警告がすべて解消されている。…
ガイドのフェーズ
- 準備 — API アクセス用の一時認証ファイルを作成する · 設定をバックアップする · インストール済みプラグインを一覧表示する
- 事前チェック — バージョンとロールを確認する · クラスタのヘルスを確認する · deprecation チェックを実行する (Upgrade Assistant API) · system feature migration を実行する · インストール可能なターゲットバージョンを一覧表示する
- リポジトリを 9.x に切り替える — Elastic 9.x リポジトリを定義する · Elastic 9.x リポジトリを定義する · ターゲットバージョンを確認する
- 切り戻しポイント: snapshot — アップグレード前の snapshot を取得する · ML upgrade mode を有効にする
- 検証 — すべてのノードがターゲットバージョンであることを確認する · allocation 設定が永続的にクリアされたことを確認する · ML upgrade mode を無効にする · ログにエラーがないか確認する
- Kibana をアップグレードする — Kibana を停止する · Kibana を … にアップグレードする · Kibana を起動し、状態を確認する
- インストール後の作業 — アップグレード後の snapshot を取得する · 一時認証ファイルを削除する
- 切り戻し (アップグレードが失敗した場合のみ) — すべてのノードでサービスを停止する · 旧バージョンをインストールする · データディレクトリを退避し、空のディレクトリを作成する · 新しいクラスタ用に initial_master_nodes 設定を書き込む · サービスを起動する · 一時的な elastic パスワードを設定する …