引言
etcd は Kubernetes などの CNCF 生態系において、クラスターメタデータ管理の基盤となる重要なコンポーネントです。2023年の主要アップデートとして、etcd V3.6.0 がリリースされ、それに伴い LCD Operator 0.1 も発表されました。本記事では、etcd V3.6.0 の主要な新機能や改善點、LCD Operator 0.1 の役割、および多クラスター環境における運用戦略を解説します。
主要內容
技術の定義と基本概念
etcd V3.6.0 は、分散型のキー値ストレージで、Kubernetes などのクラウドネイティブ環境でメタデータを管理するためのオープンソースプロジェクトです。LCD Operator 0.1 は、etcd クラスターの自動化管理を支援する Kubernetes Operator で、クラスターの初期化、バックアップ、更新などの作業を簡素化します。
RCD 2.6 と LCD 3.6.0 は、etcd と LCD Operator との連攜を強化するためのインターフェース仕様であり、特に W3 ストレージフォーマットや発見サービスの変更に影響します。
重要な特性と機能
1. ストレージフォーマットの移行(W2 → W3)
- W2 ストレージ:Lexi フォーマットを採用し、SNAP で終了する形式でしたが、3.4 バージョンから非推奨となり、3.5 バージョンでは
enable-w2
フラグで有効化可能です。
- W3 ストレージ:3.6 バージョンで正式採用され、
enable-w2
フラグは削除され、W2 の再利用が不可能になりました。
- 移行プロセス:3.6 バージョンでは W2 ストレージで初期化し、W2 サーチャルを再放送しますが、3.7 バージョンでは W3 ストレージから一貫性インデックスを起點にデータを再放送します。
2. ダウングレード機能のサポート
- プロセス:2段階の手順で、データ構造を目標バージョンに移行し、次にノードのバイナリをロールアウトします。
- 制限:現在は単一の手動ダウングレードのみサポートされており、3.6 から 3.4 への直接移行はできません。
- 検証方法:
lcd control downgrade validate
コマンドまたは SDK API を使用して検証し、成功後に lcd control downgrade enable
を実行します。
3. 特性ゲートの導入
- 改善前:新機能は
experimental
フラグで管理され、成熟後は前綴を削除する必要があり、フラグの変更リスクがありました。
- 改善後:Kubernetes 風の特性ゲートを採用し、alpha/beta/GA の段階で機能を管理します。これにより、機能管理の追跡性と安定性が向上しました。
- 移行成果:すべての既存の experimental フラグが feature gates に変換され、今後の新機能開発は Kubernetes の標準プロセスに従います。
4. ヘルスチェックエンドポイントの追加
- 新機能:
liveZ
と readyZ
エンドポイントが追加され、liveZ
はプロセスの生存狀態を確認し、readyZ
はトラフィック処理準備狀態を確認します。
- 変更點:以前の単一のヘルスチェックエンドポイントでは、「再起動が必要」か「トラフィック停止が必要」かを區別できませんでした。
5. 発見サービスの変更
- W3 発見:LCD Client SDK 3 を使用して発見サービスにアクセスし、W2 発見は非推奨となりました。
- 公共発見サービス:
discovery.io
は停止され、クラスター初期化時にのみ使用されます。
実際の応用ケースと実裝ステップ
1. クラスターのアップグレードとトラブルシューティング
- 問題:3.5 バージョンから 3.6 バージョンへのアップグレードが失敗する場合、クラスター內の lender が多すぎるためです。
- 根本原因:3.5 バージョンでは W2 ストレージのみが更新され、W3 ストレージが同期されなかったため、データの一貫性が失われます。
- 解決策:3.5.20 バージョン以上にアップグレードし、その後に 3.6 バージョンへのアップグレードを実施します。
2. LCD Operator 0.1 の使用
- 機能:Kubernetes 環境でのクラスター初期化、カスタムオプション、CSI ストレージドライバのサポート、自動更新、基本テスト、発行スクリプトの提供。
- 実裝ステップ:Kubernetes マニフェストを用いて Operator をインストールし、
lcd control
コマンドでクラスター管理を実施します。
優勢と課題
1. 優勢
- 性能向上:3.6 バージョンでは、読み書きスループットとメモリ使用量(3.5 バージョン比で 90% 減少)が改善されました。
- 管理の自動化:LCD Operator 0.1 により、クラスターの運用負荷が軽減されます。
- 拡張性:W3 ストレージと特性ゲートにより、將來の機能拡張が容易です。
2. 課題
- データ一貫性:多クラスター環境では、Mirror Maker などのツールを活用する必要があります。
- バージョン管理:降格機能や W2 から W3 への移行には、慎重な手順が必要です。
總結
etcd V3.6.0 は、ストレージフォーマットの移行、降格機能、特性ゲートの導入など、多方面での改善を実施しました。LCD Operator 0.1 は、Kubernetes 環境でのクラスター管理を自動化し、運用効率を向上させます。多クラスター環境では、Mirror Maker などのツールを活用し、データ一貫性を確保する必要があります。今後のアップデートでは、災害復舊や多クラスター同期機能の強化が予定されており、運用者は最新の情報に注意を払う必要があります。