"mkdir vault: разрешение отклонено" при использовании docker-vault с kubernetes

Я успешно развернул с помощью kubernetes пользовательский контейнер на основе официального образа docker-vault, но при использовании vault init Команда я получаю следующую ошибку:

* failed to initialize barrier: failed to persist keyring: mkdir vault: permission denied

Мой Dockerfile выглядит следующим образом:

FROM vault:0.8.3

WORKDIR /app
ADD . /app
RUN chmod +x ./configure_vault.sh
CMD ["server", "-config=vault.conf"]

Я пытаюсь выполнить сценарий оболочки после запуска контейнера, чтобы настроить хранилище. У меня есть скрипт конфигурации, который начинается так:

#!/bin/bash

export VAULT_ADDR="http://127.0.0.1:8200"
vault init -key-shares=1 -key-threshold=1 > vault_credentials
...
// configure some default roles and policies

Чтобы выполнить его, я настроил свой файл развертывания kubernetes yaml следующим образом:

...
spec:
      containers:
      - image: // my image
        imagePullPolicy: Always
        name: vault
        ports:
          - containerPort: 8200
            name: vaultport
            protocol: TCP
        # Enable mlock for the vault executable to stop
        # memory being swapped to disk so that secrets
        # don’t get written to disk.
        securityContext:
          capabilities:
            add:
              - IPC_LOCK
        volumeMounts:
        - name: vault-volume
          mountPath: /vault/file
        lifecycle:
            postStart:
              exec:
                command: ["/bin/sh", "./configure_vault.sh"]
      volumes:
        - name: vault-volume
          persistentVolumeClaim:
            claimName: vault

Я вижу, что пользователь хранилища имеет правильные права на папку / vault, поэтому я не могу понять, почему создание каталога не удалось. Я попытался дать root-права пользователю хранилища или выполнить скрипт вручную, используя kubernetes exec чтобы получить оболочку для контейнера, но ничего из этого не сработало.

Я не уверен, что это правильный путь, поэтому любые советы приветствуются!

0 ответов

Вам нужно будет проверить свой PV. Если вы используете путь к хосту, вам нужно будет перейти к хосту, на котором запланирован модуль, и предоставить права на запись в каталог, указанный в PV. После этого тебе должно быть хорошо.

Другие вопросы по тегам