Aller au contenu principal
Sommaire de la formation

installer vault server standalone avec kubernetes et backend de stockage file

coolibra298 vues

Installer vault server standalone avec kubernetes:

    • Kubernetes avec backend de stockage file

 

Pré-requis

  1. Un cluster kubernetes :

 

Déployer Vault en mode standalone

helm repo add hashicorp https://helm.releases.hashicorp.com
helm repo update

 

  • Créer un fichier vault-standalone-values.yaml pour la configuration de Vault
injector:
  enabled: "false"

server:
  enabled: "true"
  updateStrategyType: "OnDelete"
  logLevel: "trace"
 
  resources:
    requests:
      memory: 256Mi
      cpu: 250m
    limits:
      memory: 256Mi
      cpu: 250m

  ingress:
    enabled: false

  dataStorage:
    enabled: true
    size: 1Gi
    mountPath: "/vault/data"
    storageClass: standard-rwo
    accessMode: ReadWriteOnce

  persistentVolumeClaimRetentionPolicy:
    whenDeleted: Retain
    whenScaled: Delete

  auditStorage:
    enabled: true
    size: 1Gi
    storageClass: standard-rwo
    accessMode: ReadWriteOnce

  tolerations: []

  nodeSelector: {}

  standalone:
    enabled: true
    config: |-
      ui = true
      listener "tcp" {
        tls_disable = 1
        address     = "0.0.0.0:8200"
        cluster_address = "0.0.0.0:8201"
      }

      storage "file" {
        path = "/vault/data"
      }

    disruptionBudget:
      enabled: true

  serviceAccount:
    create: true
    name: "vault-sa"
    createSecret: true

ui:
  enabled: true

 

  • Déployer Vault avec Helm
helm upgrade --install vault-server hashicorp/vault -n vault-server -f ault-standalone-values.yaml --create-namespace

 

  • Verifier le pod
kubectl get po -n vault-server

Le pod est 0/1 parceque vault n'est pas encore initialisé.

 

  • Initialiser et Vérifier Vault
kubectl -n vault-server exec -it vault-server-0 -- sh

vault operator init

vault status

Copiez et sauvegardez en lieu sûr les clés Recovery et le root token (3, 4). Vous aurez besoin pour recovery et unseal après redemarrage du pod. 

Le initial root token (4) parmet de se connecter en temps que root pour faire les premières actions d'admin.

 

Recovery Key 1: oP/TYJWhApoAMTPElzj37epTQ8ysiu0kYbXfJoaLmQgP
Recovery Key 2: vsoWTGH6scxyV5eYbxopI0GVFnJSsrxdFUxYTsRK1WjA
Recovery Key 3: vefgkKAfeTyiWHYDyMgpuVd5vOLYL1IytACboZDSGITv
Recovery Key 4: 4aCvw1zA94a5b/Lk7x5+5kN/rO6FF8+Z5QVKNbiaZBPr
Recovery Key 5: klVuTyEpCirZy2aHd741se3eFkUMXaR+HgkpYl7r7UKw

Initial Root Token: hvs.dPJgv9DLxJx7zQM8Y8MYr1Jw

 

  • Verifier le pod à nouveau
kubectl get po -n vault-server

Le pod est 1/1 parceque vault est maintenant initialisé. Pour déverouiller vault, il faut acceder à l'ui et renseigner 3 des unseal key.

 

  • Unseal vault sur l'ui
kubectl -n vault-server port-forward vault-server-0 8200:8200

Acceder à l'url: http://localhost:8200/

 

Si le pod redemarre pour une quelque raison, il faudra utilisé les 3 unseal key pour deverouiller vault.

Après avoir renseigné les 3 unseal key, on peux maintenant se connecter avec la root key.

Acceder à l'url: http://localhost:8200/

On peut se connecter avec le root token sauvegardeé à l'initialisation (4).

 

 

Important:

En production avec ce mode de deploiement, il faut penser à bien sauvegarder le pvc/pv. L'outils k8up ou velero peut bien le faire.

Commentaires

Connectez-vous pour rejoindre la discussion.

Aucun commentaire pour le moment.