🎯 レッスンの目的__HTMLTAG_68___
- ✅ プライマリ ポッドが強制終了されたときの自動フェイルオーバーをテストする__HTMLTAG_71___
- ✅ 計画された切り替え (メンテナンス期間)
- ✅ レプリケーションの遅延を監視
- ✅ フェイルオーバー中のアプリケーション接続処理
- ✅ フェンシングとスプリット ブレインの防止
パート 1: 自動フェイルオーバー
1.1。テスト: プライマリ ポッドを強制終了
___コードブロック_0___1.2.フェイルオーバーのタイムライン
___コードブロック_1___パート 2: 計画された切り替え
2.1.計画的なスイッチオーバー (データ損失ゼロ)
___コードブロック_2___パート 3: レプリケーション ラグの監視
コードブロック_3
3.1.レプリケーション ラグに関するアラート
___コードブロック_4___パート 4: アプリケーション接続の処理
4.1.アプリケーションでのフェイルオーバーの処理
___コードブロック_5___コードブロック_6
パート 5: フェンスとスプリットブレインの防止
コードブロック_7
💡 重要なポイント
- 自動フェイルオーバー: ~10 ~ 15 秒、オペレーターが検出 + 促進
- 計画的スイッチオーバー: データ損失ゼロ、__HTMLTAG_117___kubectl cnpg promote
- レプリケーションラグモニタリング: pg_stat_replication、Prometheus メトリクス
- アプリケーション: サービス名、再試行ロジック、target_session_attrs を使用します。
- フェンシング: K8s リースはスプリット ブレインを防止
- PgBouncer アプリケーションからフェイルオーバーを非表示にします (透過的再接続)
🎯 演習
演習 1: フェイルオーバー ラボ
- プライマリ ポッドを強制終了し、フェイルオーバー時間を測定
- フェイルオーバー後のデータ整合性の検証
- 特定のスタンバイへの計画的な切り替え
演習 2: アプリ接続テスト
- PgBouncer 経由で PG に接続するシンプルなアプリをデプロイ
- アプリの書き込み中にフェイルオーバーをトリガー
- アプリが自動的に回復することを確認
📚 次の投稿
__HTMLTAG_164___レッスン 20: PostgreSQL のモニタリング、チューニング、および 2 日目の操作 では、運用環境向けに詳細なモニタリングとチューニングをセットアップします。