Digital Ocean Kubernetes 秘密证书与托管数据库连接
Digital Ocean Kubernetes secrets certificate connect with Managed Database
我正在尝试将 Digital Ocean 中的 Kubernetes 集群与托管数据库连接起来。
我需要添加扩展名为 cer
的文件 CA CERTIFICATE
。这是将此 file/certificate 添加到机密的正确方法吗?
apiVersion: v1
kind: Secret
metadata:
name: secret-db-ca
type: kubernetes.io/tls
data:
.tls.ca: |
"<base64 encoded ~/.digitalocean-db.cer>"
如何从证书创建秘密
最简单和最快的方法是从命令行创建秘密:
kubectl create secret generic secret-db-ca --from-file=.tls.ca=digitalocean-db.cer
请注意,此机密的类型是 generic
,而不是 kubernetes.io/tls
,因为 tls
需要提供两个密钥:tls.key
和 tls.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 的可操作性可能存在问题。
有可能应该使用不同的 type/extension 证书(Digital Ocean 有很多有用和好的文档)。
我正在尝试将 Digital Ocean 中的 Kubernetes 集群与托管数据库连接起来。
我需要添加扩展名为 cer
的文件 CA CERTIFICATE
。这是将此 file/certificate 添加到机密的正确方法吗?
apiVersion: v1
kind: Secret
metadata:
name: secret-db-ca
type: kubernetes.io/tls
data:
.tls.ca: |
"<base64 encoded ~/.digitalocean-db.cer>"
如何从证书创建秘密
最简单和最快的方法是从命令行创建秘密:
kubectl create secret generic secret-db-ca --from-file=.tls.ca=digitalocean-db.cer
请注意,此机密的类型是 generic
,而不是 kubernetes.io/tls
,因为 tls
需要提供两个密钥:tls.key
和 tls.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 的可操作性可能存在问题。
有可能应该使用不同的 type/extension 证书(Digital Ocean 有很多有用和好的文档)。