3.10. 服务用(service serving)证书 secret
服务用证书 secret 旨在支持需要开箱即用证书的复杂中间件应用程序。它的设置与管理员工具为节点和 master 生成的服务器证书相同。
流程
要保护与您服务的通信,请让集群生成的签名的服务证书/密钥对保存在您的命令空间的 secret 中。
在服务上设置
service.beta.openshift.io/serving-cert-secret-name
注解,并将值设置为您要用于 secret 的名称。然后,您的
PodSpec
可以挂载该 secret。当它可用时,您的 Pod 会运行。该证书对内部服务 DNS 名称<service.name>.<service.namespace>.svc
有效。证书和密钥采用 PEM 格式,分别存储在
tls.crt
和tls.key
中。证书/密钥对在接近到期时自动替换。在 secret 的service.beta.openshift.io/expiry
注解中查看过期日期,其格式为 RFC3339。
在大多数情形中,服务 DNS 名称 <service.name>.<service.namespace>.svc
不可从外部路由。<service.name>.<service.namespace>.svc
的主要用途是集群内或服务内通信,也用于重新加密路由。
其他 pod 可以信任由集群创建的证书,这些证书只为内部 DNS 名称签名,方法是使用 pod 中自动挂载的 /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
文件中的证书颁发机构(CA)捆绑包。
此功能的签名算法是 x509.SHA256WithRSA
。要手动轮转,请删除生成的 secret。这会创建新的证书。