天天看點

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      

繼續閱讀