将集群添加到 Rancher 管理台的时候,无论是 导入外部集群,还是 自动启动 RKE 集群,默认都会使用公网地址连接到 Rancher 管理台。哪怕你是用 IP,而非域名访问的 Rancher 管理台。
这样做的原因可能是为了便于跨数据中心管理多个集群,也便于配置证书。
然而现实是,典型的 Rancher 使用场景都是用于管理内网集群,默认使用公网 IP 体验并不友好,甚至在高负载的情况下造成问题。
如果你使用 Rancher 管理台自动创建的自签名证书,那么你可以通过以下方式切换到内网访问
-
修改 Docker 启动参数,移除
-p 80:80 -p 443:443
,添加--network host
这一步很重要,一般来讲,我们都会用单独的一台机器部署 Rancher 管理台,让 Rancher 管理台容器使用
主机网络
的目的,是为了让管理台创建自签名证书的时候,知道当前服务器真正的内网 IP,并把内网 IP 添加到证书里面。否则即便是一个自签名证书,没有包含正确的 IP,节点机连接的时候,依然会报错。 -
在
全局
->系统设置
中,修改server-url
为内网 IP,比如https://10.10.10.10
通过以上修改之后后,再创建 RKE 集群,或者导入外部集群的时候,就不会出现问题了
如果已经为管理台配置了公网地址和域名,并申请了证书,可以使用下列方式切换内网访问
找到集群的 cattle-system
命名空间,一般都在 System
项目下,为该命名空间下的所有工作负载,配置 hostAliases
也就是高级选项 网络
中的 /etc/hosts
注入配置。将公网域名指定到内网 IP 地址即可。