vault ha et dr sur k8s le cluster raft est ko après un failover

Posté par guillon-laurence le 04/11/2025
RÉSOLU

guillon-laurence

Membre depuis le 08/03/2019

Salut la team ! J'essaie de monter un setup Vault HA sur k8s avec un cluster Raft et un réplica DR sur une autre région. Le HA marche nickel mais quand je simule un failover sur le réplica DR, le cluster Raft de la région primaire part en vrac. Genre il ne trouve plus ses peers, il se splitte. J'ai l'impression qu'il y a un souci de résilience ou de découverte entre les régions.

# vault server config (extrait)
storage "raft" {
  path = "/vault/data"
  node_id = "node-{{ .NodeID }}"
}

cluster_addr = "https://{{ .PodIP }}:8201"
api_addr = "https://{{ .PodIP }}:8200"

listener "tcp" {
  address = "0.0.0.0:8200"
  tls_disable = false
  tls_cert_file = "/vault/userconfig/vault-server-tls/vault.crt"
  tls_key_file = "/vault/userconfig/vault-server-tls/vault.key"
}

Commentaires

sylvie-delmas

Membre depuis le 11/01/2020

hmm ça ressemble à un souci de split-brain ou de résolution de nom dans tes clusters k8s quand tu bascules. comment est gérée la découverte des peers raft entre les deux régions ? tu utilises des services k8s ou des ips directes ? parce que si c'est des ips directes et qu'elles changent ça va pas le faire.

aimee13

Membre depuis le 23/05/2024

ouais et même avec des services k8s si t'as des dns regionaux qui mettent du temps à se sync ou des caches dns trop agressifs ça peut poser souci. as-tu regardé les logs des noeuds raft après le failover ? surtout les erreurs de connexion ou de membre absent.

william-perrier

Membre depuis le 20/07/2019

j'ai eu un truc similaire c'était lié à la persistance des données. les noeuds raft doivent bien voir leurs disques persistants même après redémarrage ou migration. t'es sûr que tes PVC sont bien attachés aux bons pods dans la région DR et que la data est cohérente ? des fois un noeud rejoint le cluster avec une ancienne config et ça fout le bazar.

guillon-laurence

Membre depuis le 08/03/2019

les logs montrent des "no Raft leader" et des "failed to communicate with peer". pour la découverte j'utilise des services k8s avec des endpoints externes pour la région DR. mais peut-être que les IP derrière changent trop vite ou que les résolutions DNS sont chaotiques. les PVC sont okay je pense ils sont répliqués avec Velero.

sylvie-delmas

Membre depuis le 11/01/2020

si tes services k8s sont bien configurés pour pointer sur les bonnes IP des pods vault et que tes firewalls inter-régions sont ouverts sur les ports 8200/8201 c'est ptete un heartbeat timeout trop court. par defaut raft est à 1s. si ta latence inter-région dépasse ça régulièrement tu vas avoir des faux positifs de leader down.

aimee13

Membre depuis le 23/05/2024

essaye d'augmenter les timeouts raft `heartbeat_timeout`, `election_timeout` et `commit_timeout` dans ta config si la latence réseau est un facteur. genre met les à 5s pour voir si ça stabilise le truc. après faudra ajuster finement.

guillon-laurence

Membre depuis le 08/03/2019

okay je vais tenter d'augmenter les timeouts Raft c'est une piste intéressante ça colle avec l'inter-région. et je vais revérifier la config DNS des services k8s. merci pour les idées je vous tiens au jus !

Laisser une réponse

Vous devez être connecté pour poster un message !

Rejoindre la communauté

Recevoir les derniers articles gratuitement en créant un compte !

S'inscrire