本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

添加 TLS 秘密

Kubernetes 将为 Rancher 创建所有对象和服务,但在将证书和密钥填充到 cattle-system 名称空间中的 tls-rancher-ingress 秘密之前,它将不可用。

将服务器证书与所需的任何中间证书合并到一个名为 tls.crt 的文件中。将您的证书密钥复制到一个名为 tls.key 的文件中。

例如, acme.shfullchain.cer 文件中提供服务器证书和 CA 链。 此 fullchain.cer 应重命名为 tls.crt,证书密钥文件应命名为 tls.key

使用 kubectltls 秘密类型来创建秘密。

kubectl -n cattle-system create secret tls tls-rancher-ingress \
  --cert=tls.crt \
  --key=tls.key

如果您想替换证书,可以使用 tls-rancher-ingress 删除 kubectl -n cattle-system delete secret tls-rancher-ingress 秘密,并使用上面显示的命令添加一个新的。如果您使用的是私有 CA 签名的证书,只有当新证书由与当前使用的证书相同的 CA 签名时,才能替换证书。

使用私有 CA 签名的证书

如果您使用的是私有 CA,Rancher 需要私有 CA 的根证书或证书链的副本,Rancher Agent 使用它来验证与服务器的连接。

创建一个名为 cacerts.pem 的文件,仅包含来自您的私有 CA 的根 CA 证书或证书链,并使用 kubectlcattle-system 名称空间中创建 tls-ca 秘密。

kubectl -n cattle-system create secret generic tls-ca \
  --from-file=cacerts.pem

配置的 tls-ca 秘密在 Rancher 启动时被检索。在运行的 Rancher 安装中,更新的 CA 在新的 Rancher pod 启动后生效。

证书链必须格式正确,否则组件可能无法从 Rancher 服务器下载资源。

添加额外的 CA 证书

如果您使用的节点驱动程序使用与为 Rancher 配置的 CA 不同的 CA 进行 API 请求,您可以添加额外的根证书和证书链。

为每个所需的证书创建一个以 .pem 结尾的唯一文件,并使用 kubectl 在 cattle-system 名称空间中创建 tls-additional 秘密。

kubectl -n cattle-system create secret generic tls-additional \
  --from-file=cacerts1.pem=cacerts1.pem --from-file=cacerts2.pem=cacerts2.pem

Rancher 在配置期间将这些 CA 根证书和证书链挂载到节点驱动程序 pod 中。

更新私有 CA 证书

按照 此页面上的步骤更新 Rancher 高可用性 Kubernetes 安装 中的入口的 SSL 证书,或将默认的自签名证书切换为自定义证书。