【问题标题】:Digital Ocean Kubernetes secrets certificate connect with Managed DatabaseDigital Ocean Kubernetes 机密证书与托管数据库连接
【发布时间】:2021-08-26 02:26:23
【问题描述】:

我正在尝试将 Digital Ocean 中的 Kubernetes 集群与托管数据库连接。

我需要添加CA CERTIFICATE,这是一个扩展名为cer 的文件。这是将此文件/证书添加到机密的正确方法吗?

apiVersion: v1
kind: Secret
metadata:
  name: secret-db-ca
type: kubernetes.io/tls
data:
  .tls.ca: |
        "<base64 encoded ~/.digitalocean-db.cer>"

【问题讨论】:

    标签: kubernetes digital-ocean kubernetes-secrets


    【解决方案1】:

    如何从证书创建密钥


    最简单最快的方法是从命令行创建一个秘密:

    kubectl create secret generic secret-db-ca --from-file=.tls.ca=digitalocean-db.cer
    

    请注意,此密钥的类型是 generic,而不是 kubernetes.io/tls,因为 tls 需要同时提供两个密钥:tls.keytls.crt

    也可以从清单创建密钥,但是您需要向数据字段提供完整的base64 encoded 字符串,并再次在清单中使用类型Opaque(这与命令行中的通用相同)。

    它看起来像:

    apiVersion: v1
    kind: Secret
    metadata:
      name: secret-db-ca
    type: Opaque
    data:
      .tls.ca: |
         LS0tLS1CRUdJTiBDRVJ..........
    

    您尝试使用的选项用于docker config 文件。请看Docker config - secrets


    注意!我用cer证书测试了上述内容。

    DER(可分辨编码规则)是 X.509 证书和私钥的二进制编码,它们不包含纯文本(扩展名 .cer 和 .der)。 Secret 保存在 etcd(一般来说是 Kubernetes 集群的数据库)中,但是基于此类 Secret 的 Secret 的可操作性可能存在问题。

    有可能应该使用不同类型/扩展的证书(Digital Ocean 有很多有用且良好的文档)。


    请参考secrets in kubernetes page

    【讨论】:

    • @WytrzymałyWiktor 感谢您的回答,我能够创建秘密并检查它是否作为秘密工作。现在我面临着另一个连接问题,但我正在努力解决这个问题。也感谢您的解释,非常有帮助。
    猜你喜欢
    • 2019-05-22
    • 1970-01-01
    • 2021-06-04
    • 2015-05-21
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    相关资源
    最近更新 更多