Ce Vault tourne en standalone (Shamir, un seul réplica, pas d'auto-unseal) : toute interruption de pod exige un unseal humain ensuite. Le PDB du sous-chart vendored ne se rend qu'en mode HA (server.ha.disruptionBudget, gardé par `eq .mode "ha"`), donc jamais ici — il en fallait un écrit à la main. Par ailleurs chaque remount du volume déclenchait un chown -R complet du fsGroup, mesuré à ~9 min sur ce PVC (event kubelet VolumePermissionChangeInProgress, suggestion du kubelet lui-même). Avec OnRootMismatch, un remount dont le propriétaire racine est déjà correct saute ce chown. Le PDB ne protège que des évictions volontaires (drain, descheduler) — pas d'une panne de nœud ni d'une suppression manuelle.
27 lines
1.1 KiB
YAML
27 lines
1.1 KiB
YAML
# Le sous-chart vendored `vault` ne rend son PodDisruptionBudget qu'en mode HA
|
|
# (server.ha.disruptionBudget.enabled, gardé par `eq .mode "ha"` dans
|
|
# server-disruptionbudget.yaml). Ce Vault tourne en standalone (storage "file",
|
|
# un seul réplica, scellement Shamir sans auto-unseal) : le garde-fou du chart
|
|
# ne s'applique jamais ici, d'où ce PDB écrit à la main dans le chart parapluie.
|
|
#
|
|
# Il ne protège que des évictions VOLONTAIRES (kubectl drain, descheduler) — pas
|
|
# d'une panne de nœud ni d'une suppression manuelle. Avec un seul réplica et
|
|
# aucun auto-unseal, toute interruption exige un unseal humain ensuite ; ce PDB
|
|
# réduit seulement les interruptions évitables.
|
|
apiVersion: policy/v1
|
|
kind: PodDisruptionBudget
|
|
metadata:
|
|
name: {{ .Release.Name }}-server
|
|
namespace: {{ .Release.Namespace }}
|
|
labels:
|
|
app.kubernetes.io/name: vault
|
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
spec:
|
|
maxUnavailable: 0
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: vault
|
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
component: server
|