Vault es una herramienta potente para la gestión de secretos. Desplegar Vault en Kubernetes en modo HA con backend Raft ofrece resiliencia y escalabilidad para el almacenamiento seguro de secretos. En este artículo explicamos paso a paso la instalación, creación de namespaces, despliegue con Helm, unión de nodos, desellado y resolución de problemas comunes, además de cómo Q2BSTUDIO puede ayudar en integraciones seguras y arquitecturas a medida.
Sobre Q2BSTUDIO: somos una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida, con experiencia en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y automatización de procesos. Si necesita soluciones a medida puede consultar nuestras propuestas de desarrollo de aplicaciones y software a medida y nuestras capacidades en inteligencia artificial para empresas incluyendo agentes IA y soluciones de IA para automatizar operaciones.
Requisitos previos: un clúster de Kubernetes accesible con kubectl; Helm 3 instalado; permisos suficientes para crear namespaces y volúmenes persistentes; familiaridad básica con conceptos de Vault y Kubernetes.
Paso 1: crear namespace y añadir repositorio Helm. Crear un namespace aislado para Vault: kubectl create namespace vault. Añadir el repo de HashiCorp y actualizar: helm repo add hashicorp https://helm.releases.hashicorp.com ; helm repo update.
Paso 2: instalar Vault con Helm en modo HA usando Raft. Cree un archivo values.yaml con la configuración esencial, por ejemplo: injector: enabled: false server: image: repository: hashicorp/vault tag: 1.9.0 pullPolicy: IfNotPresent updateStrategyType: OnDelete resources: requests: memory: 256Mi cpu: 250m limits: memory: 256Mi cpu: 250m ha: enabled: true replicas: 3 raft: enabled: true config: | ui = true listener tcp { tls_disable = 1 address = [::]:8200 cluster_address = [::]:8201 } storage raft { path = /vault/data } service_registration kubernetes {} dataStorage: enabled: true size: 500Mi. Instalar con Helm: helm install vault hashicorp/vault -n vault -f values.yaml. Verificar pods: kubectl get pods -n vault.
Paso 3: inicializar y unir nodos Raft. Solo el primer pod vault-0 se inicializa. Inicialice Vault en vault-0: kubectl exec -it vault-0 -n vault -- vault operator init -key-shares=5 -key-threshold=3. Tras la inicialización Vault imprime las claves de recuperación y el token root inicial; aquí use un almacenamiento seguro para las claves por ejemplo Recovery Key 1: <unseal_key_1> Recovery Key 2: <unseal_key_2> Recovery Key 3: <unseal_key_3> Recovery Key 4: <unseal_key_4> Recovery Key 5: <unseal_key_5> Initial Root Token: <root_token>. Inicie sesión en el líder para hacerlo visible: kubectl exec -it vault-0 -n vault -- vault login <root_token>. Luego una los nodos seguidores a la tienda Raft del líder: kubectl exec -it vault-1 -n vault -- vault operator raft join https://vault-0.vault-internal:8200 ; kubectl exec -it vault-2 -n vault -- vault operator raft join https://vault-0.vault-internal:8200. Guarde las claves de desellado de forma segura.
Paso 4: desellado manual de pods. Deselle cada pod con el umbral de claves configurado, por ejemplo para tres claves: kubectl exec -it vault-0 -n vault -- vault operator unseal <unseal_key_1> ; kubectl exec -it vault-0 -n vault -- vault operator unseal <unseal_key_2> ; kubectl exec -it vault-0 -n vault -- vault operator unseal <unseal_key_3> . Repetir para vault-1 y vault-2. Tras el desellado los pods deberían aparecer con estado Ready: kubectl get pods -n vault.
Verificación HA. Compruebe el estado HA contra cada pod: kubectl exec -it -n vault vault-0 -- vault status ; kubectl exec -it -n vault vault-1 -- vault status ; kubectl exec -it -n vault vault-2 -- vault status. Asegúrese de que HA Enabled sea true y de que exista un nodo activo y nodos en modo standby. Un ejemplo de salida relevante es HA Enabled true HA Mode active para el líder y HA Mode standby para los seguidores.
Resolución de problemas comunes. Conflicto de ClusterRoleBinding: si existe ClusterRoleBinding ya creado elimínelo antes de reinstalar el chart: kubectl delete clusterrolebinding vault-server-binding. Errores de Helm upgrade indicando no deployed releases: desinstale cualquier release anterior en el namespace por defecto con helm uninstall vault -n default y vuelva a instalar en el namespace correcto. Pods que no se desellan o no quedan Ready: consulte los logs del pod con kubectl logs vault-1 -n vault y compruebe los PVCs con kubectl get pvc -n vault. Si un PVC está corrupto puede eliminar el PVC y el pod y volver a unir el nodo: kubectl delete pvc data-vault-1 -n vault ; kubectl delete pod vault-1 -n vault ; kubectl exec -it vault-1 -n vault -- vault operator raft join https://vault-0.vault-internal:8200 ; luego deselle vault-1. PVC atascado en Terminating: edite el PVC para eliminar finalizers con kubectl edit pvc data-vault-1 -n vault y borre la sección metadata.finalizers, luego guarde. Eliminación de un nodo Raft corrupto: ejecute kubectl exec -it vault-0 -n vault -- vault operator raft remove-peer <node-id> ; borre PVC y pod del nodo y vuelva a unirlo como nuevo.
Buenas prácticas y seguridad. Mantenga las claves de desellado y el token root fuera de registros y sistemas compartidos, utilice roles y políticas mínimas de Vault, automatice el desellado seguro si integra operadores o soluciones de KMS externas y monitorice la salud de los PVC y del clúster Raft para evitar inconsistencias.
Por qué confiar en Q2BSTUDIO. Como empresa de desarrollo de software ofrecemos servicios integrales para proyectos que requieren alta seguridad y automatización: implantaciones seguras en Kubernetes, integración con servicios cloud aws y azure, proyectos de inteligencia de negocio y Power BI, y desarrollo de soluciones de IA a medida con agentes IA para optimizar flujos. Podemos ayudar a diseñar y ejecutar la arquitectura Vault y su integración con sus aplicaciones y procesos de negocio, incluyendo auditoría y pruebas de ciberseguridad para reducción de riesgos.
Si desea asesoramiento sobre integraciones seguras, despliegues HA o soluciones en la nube contacte con nuestro equipo y descubra cómo combinamos software a medida, inteligencia artificial y ciberseguridad para entregar soluciones robustas y escalables que impulsan su negocio.