Vault HA pas réactif aux fails, des idées ?

Posté par wlelievre le 25/06/2025
RÉSOLU

wlelievre

Membre depuis le 26/07/2019

salut la team

on a vault en ha sur k8s avec consul comme backend et le truc c'est que quand on tue un pod vault leader le failover prend une plombe genre 30-45s c'est trop long pour nos app qui pètent des timeout

on est sur vault 1.14 et consul 1.15

# partie de notre config vault (simplifiée)
storage "consul" {
  address = "consul-server.consul:8500"
  path    = "vault/"
}
ha_storage "consul" {
  address = "consul-server.consul:8500"
  path    = "vault_ha/"
}
listener "tcp" {
  address     = "0.0.0.0:8200"
  tls_disable = true
}

des pistes pour réduire ce délai ?

Commentaires

alexandre29

Membre depuis le 28/02/2020

yo

vous avez checké le timeout du lease consul pour vault

si le lease est long vault mettra du temps à relâcher le lock leader

regarde dans la conf consul côté serveur et aussi le client vault

tbarthelemy

Membre depuis le 02/04/2020

oui et aussi la latence réseau entre tes pods vault et les serveurs consul

si t'as des micro-coupures ou du lag ça peut allonger le temps pour que consul détecte que le leader est down

regarde les logs consul et vault pour voir si y a des messages de connectivité

patrick88

Membre depuis le 22/08/2019

un truc con mais tu uses bien le HEALTH endpoint de vault dans tes liveness probes k8s

si ta probe est trop laxiste ou utilise le STANDBY endpoint le kubelet va mettre du temps à relancer le pod leader

# exemple de probe
livenessProbe:
  httpGet:
    path: /v1/sys/health?standbyok=true&sealedok=false
    port: 8200
  initialDelaySeconds: 10
  periodSeconds: 5
  timeoutSeconds: 5
  failureThreshold: 3

attention le standbyok=true doit pas être là pour le leader sinon ça dit ok même si c'est pas le leader

wlelievre

Membre depuis le 26/07/2019

ah merde le standbyok=true c'est exactement ce qu'on a sur la liveness probe

je vais tester de l'enlever pour la liveness et le laisser juste pour la readiness

pour le lease consul je dois vérifier quoi comme paramètre exactement

alexandre29

Membre depuis le 28/02/2020

le paramètre c'est le ttl des sessions consul pour vault

il est souvent défini implicitement mais tu peux le forcer côté vault

session_ttl = "10s" # exemple

fais gaffe à pas le mettre trop bas non plus sinon t'as des faux positifs si le réseau tousse un peu

tbarthelemy

Membre depuis le 02/04/2020

et n'oublie pas le paramètre `raft.leader_election_timeout` si tu étais passé de consul à raft avant

mais là t'es en consul donc moins pertinent mais on sait jamais

sinon pour la latence réseau entre pods vault et consul dans k8s un iperf3 entre eux peut donner des indices si c'est vraiment réseau

wlelievre

Membre depuis le 26/07/2019

ok les gars j'ai enlevé le standbyok=true de la liveness probe et j'ai forcé le ttl à 15s sur consul et vault

on est passé de 45s à genre 8-10s c'est beaucoup mieux

merci pour les tips c'était la liveness probe qui déconnait à plein tube

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