:::note 警告

  1. 如果您使用的是 2.1.x 以前的版本,可以在 Master 节点的/etc/kubernetes/.tmp路径下找到kubecfg-kube-admin.yml文件。该文件是具有集群管理员权限的直连 kubeconfig 配置文件;

  2. 执行域名变更或 IP 变更之前,请备份 Rancher Server,详情请参考。

:::

步骤 2:准备证书

SSL 证书与域名或IP之间存在绑定关系,客户端通过域名或IP访问 Server 端时,需要进行 SSL 证书校验。如果客户端访问的域名或IP与 SSL 证书中预先绑定的域名或IP不一致,那么 SSL 会认为这个 Server 端是伪造的,导致证书校验失败,客户端无法连接 Server 端。如果您更换了域名或 IP,而且在生成 SSL 证书时没有绑定新的域名或 IP,出现上述问题就是一个正常的现象。解决该问题的方法也非常直接明了:生成一个新的 SSL 证书,绑定新的域名或 IP,替换已有的证书。如果您已经有后续域名或 IP 变更的具体规划,也可以在生成 SSL 证书 时绑定这次和以后需要替换的域名或 IP,这样可以减轻下次变更的工作量。总而言之,如果更换了 Server 端的域名或IP,一般会涉及到 SSL 证书更换。请参考下文,替换自签名 SSL 证书或权威认证证书。

  • 自签名 ssl 证书

    复制以下代码另存为create_self-signed-cert.sh或者其他您喜欢的文件名。修改代码开头的CN(域名),如果需要使用 ip 去访问 Rancher Server,那么需要给 ssl 证书添加扩展 IP,多个 IP 用逗号隔开。如果想实现多个域名访问 Rancher Server,则添加扩展域名(SSL_DNS),多个SSL_DNS用逗号隔开。

  • 权威认证证书

    把权威证书文件重命名为需要的文件名:

    1. cp xxx.key tls.key
    2. cp xxx.crt tls.crt

:::note 提示 证书与域名或 IP 有绑定关系,一般情况更换域名或 IP 需更换证书。如果之前配置的证书是一个通配证书或者之前配置的证书已经包含了需要变更的域名或 IP,那么证书则可以不用更换。 :::

默认情况,通过docker run运行的 Rancher Server 容器,会自动为 Rancher 生成 SSL 证书,这个证书会自动绑定 Rancher 系统设置中server-url配置的域名或IP。如果更换了域名或IP,证书会自动更新,无需单独操作。

如果是以的方式运行的单容器 Rancher Server,只需要停止原有 Rancher Server 容器,用新证书替换旧证书,保持文件名不变,然后重新运行容器即可。

  1. 备份原有证书 YAML 文件

步骤 4:修改 Rancher Server IP 或域名

  1. 依次访问全局 > 系统设置,页面往下翻找到server-url文件;

    image-20200220190647637

  2. 单击右侧的省略号菜单,选择升级;

  3. 修改server-url地址;

    image-20200220190821898

  4. 最后单击保存

步骤 6:更新 agent 配置文件

  1. 通过新域名或IP登录 Rancher Server;

    :::note 警告 这一步非常重要! :::

  2. 通过浏览器地址栏查询集群IDc/后面以c开头的字段即为集群 ID;

  3. 访问https://<新的server_url>/v3/clusters/<集群ID>/clusterregistrationtokens页面;

  4. 打开clusterRegistrationTokens页面后,定位到data字段;

    image-20191214193741315

  5. 找到insecureCommand字段,复制 YAML 连接备用;

  1. 使用kubectl工具,通过第一步准备的直连kubeconfig配置文件和上面步骤中获取的 YAML 文件,执行以下命令更新agent相关配置。

上述步骤 1~6 演示了如何为单个集群更新 agent 配置,您需要按照这些步骤,为所有集群更新 agent 配置,才能够完成域名或 IP 变更。