0

我正在尝试从 Kubernetes 作业生成 Kubernetes 机密。秘密是 TLS 证书,对于弹性搜索传输,我尝试了这项工作:

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

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

4

1 回答 1

4

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

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

于 2019-11-21T17:23:20.593 回答