Chuyển đến nội dung chính

レッスン 10: ETCD — 操作、バックアップ、およびディザスタリカバリ

etcd 内部の詳細、Raft コンセンサス、etcdctl 操作、CronJob による自動バックアップ、スナップショット復元、デフラグ、圧縮、アラーム管理、災害復旧手順。

🔒 DevSecOps — レッスン 10 レッスン 10: ETCD — 操作、バックアップ、および 災害復旧

Kubernetes HA を使用してマイクロサービスをオンプレミスにデプロイ

パート 2: kubeadm を使用した Kubernetes HA クラスター__HTMLTAG_62___

xdev.asia

🎯 レッスンの目的__HTMLTAG_68___

このレッスンを完了すると、次のことができるようになります:

  • ✅ Raft コンセンサス アルゴリズムと etcd の内部構造を理解する__HTMLTAG_73___
  • ✅ 日常業務のための etcdctl に精通している__HTMLTAG_75___
  • ✅ CronJob を使用した自動バックアップのセットアップ
  • ✅ スナップショットからの復元の練習 (災害復旧)
  • ✅ デフラグ、圧縮、パフォーマンス チューニング

パート 1: ETCD 内部

1.1. Raft コンセンサス アルゴリズム

コードブロック_0

コードブロック_1

⚠️ etcd は (N-1)/2 の失敗を許容します:

  • 3 ノード → 1 つの障害を許容 (クォーラム = 2)
  • 5 ノード → 2 つの障害を許容 (クォーラム = 3)

1.2.データモデル

___コードブロック_2___

パート 2: ETCDCTL オペレーション

2.1.クラスターの健全性の監視

___コードブロック_3___

2.2.パフォーマンスチェック

___コードブロック_4___

2.3. etcd で Kubernetes データを表示

___コードブロック_5___

パート 3: ETCD バックアップ

3.1.手動スナップショット

___コードブロック_6___

3.2.自動バックアップ スクリプト

___コードブロック_7___

3.3. Cron バックアップ (6 時間ごと)

___コードブロック_8___

コードブロック_9


パート 4: 災害復旧 — 復元

4.1.復元シナリオ

コードブロック_10

4.2.段階的な復元

___コードブロック_11___

パート 5: 圧縮と最適化

5.1.圧縮

___コードブロック_12___

5.2.デフラグ

___コードブロック_13___

5.3.アラーム管理

___コードブロック_14___

パート 6: ETCD モニタリング

6.1. Prometheus メトリクス

___コードブロック_15___

6.2. PrometheusRule (レッスン 32 で使用します)

___コードブロック_16___

💡 重要なポイント

  1. Raft コンセンサス: 書き込みには過半数のクォーラム (2/3) が必要
  2. 6 時間ごとのバックアップ は運用環境では最小です — スナップショットと証明書の両方を保存
  3. 復元 = スナップショットから新しいクラスターを作成、スナップショット後のすべてのデータが失われます__HTMLTAG_156___
  4. 順次デフラグ同時にではなく各メンバー
  5. NOSPACE アラーム: コンパクト→デフラグ→解除
  6. NVMe SSD は etcd に必須です (p99 書き込み遅延 < 10ms)
  7. )

🎯 演習__HTMLTAG_172___

演習 1: バックアップと復元のラボ

  • Nginx デプロイメントの作成 (3 つのレプリカ)
  • etcd スナップショットのバックアップ
  • デプロイ nginx を削除
  • スナップショットから復元し、デプロイ nginx が返すことを確認

演習 2: モニタリング

  • etcd-check.sh を実行し、DB サイズ、リーダー、状態を記録
  • 圧縮とデフラグ、前後の DB サイズの比較

演習 3: CronJob バックアップのセットアップ

  • etcd-backup CronJob のデプロイ
  • _ジョブが正常に実行されたことを確認__HTMLTAG_199___
  • /backup/etcd/
  • のスナップショット ファイルを確認してください

📚 次の投稿

__HTMLTAG_207___レッスン 11: Rook-Ceph を使用した分散ストレージ アーキテクチャ では、パート 3 — 永続ストレージ用の Rook-Ceph のインストールを開始します。