vault 重启后自动解封的
1,前言
vault HA 模式,leader挂掉后会自动选举出新的leader,原leader降级为follower,但最少要保证有一个follower是解封状态,才可以选举出新的leader,而pod重启之后,会处于Seal状态,不解封的话无法作为follower,所以重启自动解封是必要的需求,官方推荐自动解封方式有许多种,但基本上都是用类似密码机的方式,具体参考官网文档: https://www.vaultproject.io/docs/v1.9.x/configuration/seal ,本文仅针对不使用文档中的方式 简单实现自动解封,有条件的话建议使用官方推荐方法实现自动解封。
2,创建解封脚本并将其创建为secret
- 解封脚本vault_unreal.sh
点击查看代码
#!/bin/sh
vault operator unseal Naioja2XND6Okz9NmOdKlnC+s54lkiHZeGote2Vve6Gh
sleep 3
vault operator unseal 2uya4Usc9jqMx03MMbuUjAFXYrmopoDo9fFF7520KjdK
sleep 3
vault operator unseal xfrUTv7CBtxU6h384d5A+kle8N5V12+VS2uX+iN5os09
sleep 3
- 将脚本创建为secret
kubectl create secret generic vault-unreal --from-file=vault_unreal.sh -n vault
3,statefulset中添加挂载和启动检测
点击查看代码
startupProbe:
exec:
command:
- /bin/sh
- -ec
- sh /tmp/sh/vault_unreal.sh
failureThreshold: 3
periodSeconds: 20
successThreshold: 1
timeoutSeconds: 1
挂载:
volumeMounts:
- mountPath: /tmp/sh
name: vault-unreal
volumes:
- name: vault-unreal
secret:
defaultMode: 420
secretName: vault-unreal
4,重启单个pod后,pod会自动解封。