Kubernetes 永続ボリュームコントローラー
概要
- Kubernetes の永続ボリューム(PersistentVolume, PV)と永続ボリューム要求(PersistentVolumeClaim, PVC)を同期するコントローラー
- PVC と PV 間の双方向の「ポインター」を管理し、データ損失を防止
- 高可用性モードで動作し、PVC が特定の PV を要求する場合や、PV が特定の PVC に予約されている場合をサポート
主な機能
- PVC と PV の状態を定期的に同期
- PVC が特定の PV を要求していない場合、最適な PV を見つけてバインド
- PVC が特定の PV を要求している場合、その PV が存在し条件を満たしているか確認してからバインド
- PVC がすでにバインドされている場合、状態を確認し必要に応じて修正
動作方式
- PVC が作成または更新されると
syncClaim メソッドを呼び出し
- PVC がバインドされていない場合は
syncUnboundClaim メソッドを呼び出し
- PVC がバインドされている場合は
syncBoundClaim メソッドを呼び出し
- PV が作成または更新されると
syncVolume メソッドを呼び出し
主要メソッド
syncClaim
- PVC の状態に応じて
syncUnboundClaim または syncBoundClaim を呼び出し
syncUnboundClaim
- PVC が特定の PV を要求していない場合、最適な PV を見つけてバインドを試行
- PVC が特定の PV を要求している場合、その PV が存在し条件を満たしているか確認してからバインド
syncBoundClaim
- PVC がすでにバインドされている場合、状態を確認し必要に応じて修正
syncVolume
- PV の状態に応じて適切な動作を実行
- PV が使用されていない場合、状態を "Available" に更新
- PV が特定の PVC にバインドされている場合、その PVC の状態を確認し必要に応じて修正
GN⁺ のまとめ
- この文書は Kubernetes の永続ボリュームコントローラーについて詳細に説明している
- 永続ボリュームと永続ボリューム要求の間のバインディングロジックを理解するのに役立つ
- 高可用性モードでの動作方式と、さまざまな例外状況への処理を扱っている
- Kubernetes のストレージ管理に関心のある開発者にとって有用な資料
- 類似の機能を提供する他のプロジェクトとして OpenEBS、Rook などがある
1件のコメント
Hacker Newsの意見
スペースシャトルのソフトウェアは非常に安定しており、バグがほとんどない
コードは一般的で、Go言語で書かれているためやや冗長
新しい会社のコードベースはよく整理されており、探索するのが楽しい
スペースシャトルの安全実績は良くなく、現在は運用されていない
構造的パターンマッチングを使えば、
if/elseブロックを単純化できるだろうコードは悪くなく、単一のルールに従っている
2018年の議論へのリンクを提示
Kubernetes CSIドライバーを書くのは楽しかった
各
if文にelse文があることは、安全上の慣行と見なされているGitHubのファイルリンクで特定の行範囲にリンクする方法を提示