kubernetes 在k8s pod定义中传递COMMAND时,是否可以不覆盖Docker入口点

gjmwrych  于 2023-04-11  发布在  Kubernetes
关注(0)|答案(1)|浏览(188)

尝试使用vault injector将vault secret作为环境变量导出到k8s pod。https://developer.hashicorp.com/vault/docs/platform/k8s/injector/examples#environment-variable-example
如示例中所述,您需要在容器中源配置文件,它将覆盖您在dockerfile中传递的ENTRYPOINT脚本/命令。

containers:
        - name: web
          image: alpine:latest
          command:
            ['sh', '-c']
          args:
            ['source /vault/secrets/config && <entrypoint script>']

在我设置中,我没有可以放在args中的静态入口点脚本。docker文件有自己的command/script作为入口点脚本运行。
试图找到是否有任何替代源这个保险库配置在一个容器,让我不改变任何在dockerfile中的入口点脚本。不知道如果k8s是提供任何方法来做到这一点与post-hook或东西。首先运行dockerfile中提到的入口点,然后执行其他脚本/命令通过post-hook。

f4t66c6m

f4t66c6m1#

您可以使用Vault Secrets Operator将secret从Vault同步到Kubernetes Secret资源。
一旦完成了这些操作,就可以在部署清单中使用envFromvaultFrom指令将这些秘密作为环境变量公开,如in the documentation所述。
此方法不需要重写容器的入口点或参数。
看起来Vault Secrets Operator相对较新,文档似乎有点单薄。您可以使用External Secrets Operator实现类似的功能,它的额外优势是支持各种秘密存储后端。

相关问题