从作业创建或编辑 Kubernetes 密钥

Tho*_*aux 1 kubernetes kubernetes-secrets kubernetes-jobs

我正在尝试从 Kubernetes 作业生成 Kubernetes 秘密。秘密是TLS证书,对于elasticsearch传输,我尝试了这个工作:

apiVersion: batch/v1
kind: Job
metadata:
  name: conso-security-tls-gen-certs
spec:
  template:
    spec:
      containers:
      - name: generator
        volumeMounts:
          - name: certs
            mountPath: "/certs"
        image: "docker.elastic.co/elasticsearch/elasticsearch:7.4.2"
        command: ["/bin/sh", "-c"]
        args:
        - "bin/elasticsearch-certutil ca (...) --silent -out /certs/bundle.p12"
      restartPolicy: Never
      volumes:
      - name: certs
        secret:
          secretName: conso-security-tls-certs
  backoffLimit: 4
Run Code Online (Sandbox Code Playgroud)

但正如https://github.com/kubernetes/kubernetes/issues/62099所说,该卷/certs是只读的。有没有办法像这样创建/编辑这个秘密?

api*_*sim 5

一旦容器/容器消失,来自秘密的卷就会消失。此外,更新从 Secret 创建的卷中的文件不会更新 Secret 本身。

生成证书并使用该证书创建或更新Secret对象的作业的目标似乎是什么?如果是这种情况,我建议考虑使用Kubernetes APIkubectl从正在运行的容器内操作 Secret。您需要设置并使用一个有权使用给定命名空间中的 Secret 的服务帐户。