【问题标题】:"mkdir vault: permission denied" when using docker-vault with kubernetes将 docker-vault 与 kubernetes 一起使用时出现“mkdir vault:权限被拒绝”
【发布时间】:2023-03-26 04:29:01
【问题描述】:

我使用 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"]

我想要实现的是在容器启动后执行一个 shell 脚本来配置保险库。我有一个这样开始的配置脚本:

#!/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 用户对 /vault 文件夹拥有正确的权限,所以我似乎无法理解为什么目录创建会失败。我尝试向 Vault 用户授予 root 权限,或者使用 kubernetes exec 手动执行脚本以获取容器的 shell,但都没有成功。

我不确定这是正确的方法,因此欢迎任何建议!

【问题讨论】:

  • 与您一起运行脚本的用户是否在它尝试mkdir 的文件夹的所有者组中?
  • 啊,愚蠢的错误..! docker-vault 映像会创建一个 vault 用户,该用户是整个 /vault 文件夹的所有者。我以为这是它试图将mkdir 放入的文件夹,但它实际上是在尝试在我的 Docker /app 工作目录中创建它。我授予 Vault 用户对 /app 文件夹的权限,并且它起作用了......谢谢@mickburkejnr!
  • 根本不是一个愚蠢的错误,只是其中之一。几乎我从事/开始的每个项目我总是犯这个错误,因为我忘记了用户组!

标签: docker kubernetes hashicorp-vault


【解决方案1】:

您必须检查您的 PV。如果您使用的是 hostpath,那么您将必须导航到正在调度 pod 的主机并授予对 PV 中指定的目录的写入权限。 在那之后你应该会很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2013-07-01
    • 2012-08-13
    相关资源
    最近更新 更多