只有当我们在 cattle-system 命名空间,将自签名证书和对应密钥配置到 tls-rancher-ingress 的密文中,Kubernetes 才会为 Rancher 创建所有的对象和服务。

将服务器证书和任何所需的中间证书合并到名为 tls.crt 的文件中,将您的证书密钥拷贝到名称为 tls.key 的文件中。

例如,acme.shfullchain.cer文件中提供了服务器证书和中间证书。在这种情况下,您应该将fullchain.cer文件重命名为tls.crt,将证书秘钥文件重命名为tls.key

使用 kubectl 创建 tls 类型的密文。

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

提示: 如果您想要更换证书,您可以使用 kubectl -n cattle-system delete secret tls-rancher-ingress 来删除 tls-rancher-ingress 密文,之后使用上面的命令创建一个新的密文。如果您使用的是私有 CA 签发的证书,仅当新证书与当前证书是由同一个 CA 签发的,才可以替换。

使用私有 CA 签发证书

如果您使用的是私有 CA,Rancher 需要您提供 CA 证书的副本,用来校验 Rancher Agent 与 Server 的连接。

拷贝 CA 证书到名为 cacerts.pem 的文件,使用 kubectl 命令在 cattle-system 命名空间中创建名为 tls-ca 的密文。

重要: 请确保文件名称为 cacerts.pem,因为 Rancher 使用该文件名来配置 CA 证书。

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

注意: Rancher 在启动时检索tls-ca密文。如果您的 Rancher Server 正在运行中,您需要重新启动 Rancher Server Pod 才能使新的 CA 生效。