繁体   English   中英

如何将 kubernetes/openshift 机密复制到初始化容器作业的卷中?

[英]How to copy kubernetes/openshift secrets into a volume for init container job?

在通过 curl 构建 docker 文件期间,有一个 init 容器将 keystore.jks 从 nexus repo 复制到卷中。 然后,一旦 init 容器处于活动状态,python 代码将获取该 keystore.jks 并进行必要的更新,然后 init 容器就会死亡。 我们要做的是将此keystore.jks作为秘密存储在openshift中,但是一旦init容器处于活动状态,如何将秘密复制到卷中? 以便 python 代码可以像以前一样使用它? 提前感谢您的任何评论/帮助!

正如@larsks 建议的那样,您可以将秘密挂载到卷并将其用于主容器。

这里分享 YAML 配置,可能有助于您理解。

apiVersion: v1
kind: Secret
metadata:
  name: ssh-key
  namespace: acme
data:
  id_rsa: {{ secret_value_base64_encoded }}

现在将秘密添加到安装路径

spec:
  template:
    spec:
      containers:
      - image: "my-image:latest"
        name: my-app
        ...
        volumeMounts:
          - mountPath: "/var/my-app"
            name: ssh-key
            readOnly: true
     initContainers:
     - command:
     - sh
     - -c
     - chown -R 1000:1000 /var/my-app #if any changes required
     image: busybox:1.29.2
     name: set-dir-owner
     securityContext:
       privileged: true
     volumeMounts:
     - mountPath: /var/my-app
       name: ssh-key
    volumes:
        - name: ssh-key
          secret:
            secretName: ssh-key

正如建议的那样,更好的选择是直接将秘密挂载到主容器而不使用 init contianer。

spec:
  template:
    spec:
      containers:
      - image: "my-image:latest"
        name: my-app
        ...
        volumeMounts:
          - mountPath: "/var/my-app"
            name: ssh-key
            readOnly: true
      volumes:
        - name: ssh-key
          secret:
            secretName: ssh-key

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM