Controlador de volúmenes persistentes de Kubernetes
Resumen
- Controlador que sincroniza los volúmenes persistentes de Kubernetes (PersistentVolume, PV) y las solicitudes de volúmenes persistentes (PersistentVolumeClaim, PVC)
- Administra "punteros" bidireccionales entre PVC y PV para evitar la pérdida de datos
- Funciona en modo de alta disponibilidad y admite casos donde un PVC solicita un PV específico o un PV está reservado para un PVC específico
Funciones principales
- Sincroniza periódicamente el estado de los PVC y los PV
- Si un PVC no solicita un PV específico, encuentra el PV más adecuado y lo vincula
- Si un PVC solicita un PV específico, verifica que ese PV exista y cumpla las condiciones antes de vincularlo
- Si un PVC ya está vinculado, verifica su estado y lo corrige si es necesario
Cómo funciona
- Cuando se crea o actualiza un PVC, se llama al método
syncClaim
- Si el PVC no está vinculado, se llama al método
syncUnboundClaim
- Si el PVC está vinculado, se llama al método
syncBoundClaim
- Cuando se crea o actualiza un PV, se llama al método
syncVolume
Métodos principales
syncClaim
- Según el estado del PVC, llama a
syncUnboundClaim o syncBoundClaim
syncUnboundClaim
- Si el PVC no solicita un PV específico, intenta encontrar el PV más adecuado y vincularlo
- Si el PVC solicita un PV específico, verifica que ese PV exista y cumpla las condiciones antes de vincularlo
syncBoundClaim
- Si el PVC ya está vinculado, verifica su estado y lo corrige si es necesario
syncVolume
- Realiza la acción adecuada según el estado del PV
- Si el PV no está en uso, actualiza su estado a "Available"
- Si el PV está vinculado a un PVC específico, verifica el estado de ese PVC y lo corrige si es necesario
Resumen de GN⁺
- Este documento ofrece una explicación detallada del controlador de volúmenes persistentes de Kubernetes
- Ayuda a entender la lógica de vinculación entre volúmenes persistentes y solicitudes de volúmenes persistentes
- Cubre cómo funciona en modo de alta disponibilidad y el manejo de varias situaciones excepcionales
- Es un material útil para desarrolladores interesados en la gestión de almacenamiento en Kubernetes
- Otros proyectos con funciones similares incluyen OpenEBS y Rook
1 comentarios
Opinión de Hacker News
El software del Space Shuttle es extremadamente estable y casi no tiene errores
El código es genérico y, al estar escrito en Go, resulta algo verboso
La base de código de la nueva empresa está tan bien ordenada que da gusto recorrerla
El historial de seguridad del Space Shuttle no es bueno, por eso ya no está en operación
Si se usa pattern matching estructural, se podrían simplificar los bloques
if/elseEl código no está mal y sigue una sola regla
Se comparte un enlace a una discusión de 2018
Fue divertido escribir un driver CSI de Kubernetes
Que cada sentencia
iftenga suelsese considera una práctica seguraSe explica cómo enlazar un rango específico de líneas al compartir un archivo de GitHub