Contrôleur de volumes persistants Kubernetes
Vue d’ensemble
- Contrôleur qui synchronise les PersistentVolume (PV) et les PersistentVolumeClaim (PVC) de Kubernetes
- Gère des « pointeurs » bidirectionnels entre les PVC et les PV pour éviter la perte de données
- Fonctionne en mode haute disponibilité et prend en charge les cas où un PVC demande un PV précis ou lorsqu’un PV est réservé à un PVC précis
Fonctions principales
- Synchronise périodiquement l’état des PVC et des PV
- Si un PVC ne demande pas de PV précis, trouve le PV le plus approprié et le lie
- Si un PVC demande un PV précis, vérifie que ce PV existe et remplit les conditions avant de le lier
- Si un PVC est déjà lié, vérifie son état et le corrige si nécessaire
Mode de fonctionnement
- Lorsque le PVC est créé ou mis à jour, appel de la méthode
syncClaim
- Si le PVC n’est pas lié, appel de la méthode
syncUnboundClaim
- Si le PVC est lié, appel de la méthode
syncBoundClaim
- Lorsque le PV est créé ou mis à jour, appel de la méthode
syncVolume
Méthodes principales
syncClaim
- Appelle
syncUnboundClaim ou syncBoundClaim selon l’état du PVC
syncUnboundClaim
- Si le PVC ne demande pas de PV précis, cherche le PV le plus approprié et tente la liaison
- Si le PVC demande un PV précis, vérifie que ce PV existe et remplit les conditions avant de le lier
syncBoundClaim
- Si le PVC est déjà lié, vérifie son état et le corrige si nécessaire
syncVolume
- Exécute l’action appropriée selon l’état du PV
- Si le PV n’est pas utilisé, met à jour son état en « Available »
- Si le PV est lié à un PVC précis, vérifie l’état de ce PVC et le corrige si nécessaire
Résumé de GN⁺
- Ce document fournit une explication détaillée du contrôleur de volumes persistants de Kubernetes
- Il aide à comprendre la logique de liaison entre les volumes persistants et les PersistentVolumeClaim
- Il traite du mode de fonctionnement en haute disponibilité ainsi que de la gestion de diverses situations d’exception
- Ressource utile pour les développeurs intéressés par la gestion du stockage dans Kubernetes
- Parmi les autres projets offrant des fonctionnalités similaires, on peut citer OpenEBS et Rook
1 commentaires
Commentaires sur Hacker News
Le logiciel de la navette spatiale est extrêmement stable et comporte très peu de bugs
Le code est assez classique et, écrit en Go, il est un peu verbeux
La base de code de la nouvelle entreprise est bien organisée, ce qui la rend agréable à explorer
Le bilan de sécurité de la navette spatiale n’est pas bon, c’est pourquoi elle n’est plus en service aujourd’hui
L’utilisation du pattern matching structurel pourrait simplifier les blocs
if/elseLe code n’est pas mauvais et suit une règle unique
Lien fourni vers une discussion de 2018
Écrire des pilotes CSI Kubernetes était agréable
Le fait d’avoir un
elsepour chaque instructionifest considéré comme une pratique de sécuritéExplication de la manière de créer un lien vers une plage de lignes précise dans un fichier GitHub