如何在国内使用 Rancher
在我们的技术社区中,我们常常收到这样的抱怨:从 Github 上下载资源慢、拉镜像十分耗时、无法使用 library 和 system-library 等。这些大大降低了国内用户的 Rancher 使用体验。
为了改善大家的使用体验,我们针对以上问题分别提出了解决方法。
使用国内资源下载 Rancher 组件
我们已经将 Rancher 的常用组件放在国内服务器上,访问http://mirror.cnrancher.com 即可下载所需的组件,从此告别failed: Operation timed out
使用阿里云镜像仓库搭建 Rancher
我们已经在阿里云镜像仓库中同步了一份原版的镜像,仓库地址: registry.cn-hangzhou.aliyuncs.com
注意:阿里云镜像仓库中的 rancher 镜像不支持使用
latest
stable
等 tags,必须指定版本号,例如v2.4.2
接下来,我们来 demo 如何操作:
- 使用阿里云镜像仓库的 rancher 镜像启动 rancher
# docker run -itd -p 80:80 -p 443:443 \
--restart=unless-stopped \
-e CATTLE_AGENT_IMAGE="registry.cn-hangzhou.aliyuncs.com/rancher/rancher-agent:v2.4.2" \
registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.4.2
CATTLE_AGENT_IMAGE:
指定 rancher-agent 的镜像名称
- 设置默认镜像仓库
从 UI 导航到Settings
,然后编辑system-default-registry
,Value 设置为registry.cn-hangzhou.aliyuncs.com
system-default-registry:
参数请参考官方文档
- 接下来我们就可以按照官方文档去添加自定义集群,我们只需要等待集群启动成功即可。下图中列出了 system-project 中所有的 workload,这些 workload 均使用了阿里云的镜像仓库
registry.cn-hangzhou.aliyuncs.com
内的镜像
仅需 3-5 分钟就能完成整个集群的搭建,将大幅节省时间,提高工作效率。
应用商店默认地址timeout
Rancher 默认使用 github 上的 repo 作为应用商店的 URL,如果出现timeout
情况,可以将Catalog URL
替换成我们国内的码云地址。
每个 repo 的对应关系如下:
如何修改Catalog URL
:
- 导航到全局或项目级别的
Apps
->Manage Catalogs
- 单击列表右侧的省略号 ->
Edit
- 将
Catalog URL
替换成码云中的地址即可,Save
- 此时,对应的 Catalog 的状态变为了
Refreshed
,等待变为Active
之后即可正常使用
创建自定义集群,Kubernetes Version
显示为空
每次启动 Rancher 都会到 github 上拉取kontainer-driver-metadata,如果拉取的慢,会导致创建在创建自定义集群时Kubernetes Version
显示为空:
要解决这个问题只需要参考获取新的 Kubernetes 版本将 rke-metadata-config 地址修改成gitee上的地址即可,例如:
{
"refresh-interval-minutes": "1440",
"url": "https://gitee.com/rancher/kontainer-driver-metadata/raw/dev-v2.4/data/data.json"
}
注意
修改rke-metadata-config
地址时,需要对应版本号,一定要和默认地址中的版本号对应上,本例的版本号是v2.4
。
使用国内 Rancher Chart 地址添加 Helm Chart 仓库
在国内使用 helm 安装 rancher,添加 Helm Chart 仓库时有时候会因为访问国外网络导致 Rancher Chart 添加失败,如下:
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
Error: looks like "https://releases.rancher.com/server-charts/stable" is not a valid chart repository or cannot be reached: Get https://releases.rancher.com/server-charts/stable/index.yaml: dial tcp 104.26.5.146:443: i/o timeout
为了解决这个问题,我们在国内也同步了一份 Rancher Chart,使用时只需要替换成国内的 Rancher Chart 地址即可:
helm repo add rancher-<CHART_REPO> http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/<CHART_REPO>
同步说明
以上提到的资源,我们会通过定时任务每天从 Github 上拉取,同步到国内。也许存在延迟或同步失败的情况,如果发现任何问题,欢迎在微信技术交流群或官方论坛中向我们反馈。