如何在国内使用 Rancher

在我们的技术社区中,我们常常收到这样的抱怨:从 Github 上下载资源慢、拉镜像十分耗时、无法使用 library 和 system-library 等。这些大大降低了国内用户的 Rancher 使用体验。

为了改善大家的使用体验,我们针对以上问题分别提出了解决方法。

使用国内资源下载 Rancher 组件

我们已经将 Rancher 的常用组件放在国内服务器上,访问http://mirror.cnrancher.com 即可下载所需的组件,从此告别failed: Operation timed out

rancher-mirror

使用阿里云镜像仓库搭建 Rancher

我们已经在阿里云镜像仓库中同步了一份原版的镜像,仓库地址: registry.cn-hangzhou.aliyuncs.com

注意:阿里云镜像仓库中的 rancher 镜像不支持使用 latest stable等 tags,必须指定版本号,例如v2.4.2

接下来,我们来 demo 如何操作:

  1. 使用阿里云镜像仓库的 rancher 镜像启动 rancher
  1. # docker run -itd -p 80:80 -p 443:443 \
  2. --restart=unless-stopped \
  3. -e CATTLE_AGENT_IMAGE="registry.cn-hangzhou.aliyuncs.com/rancher/rancher-agent:v2.4.2" \
  4. registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.4.2
  • CATTLE_AGENT_IMAGE: 指定 rancher-agent 的镜像名称
  1. 设置默认镜像仓库

从 UI 导航到Settings,然后编辑system-default-registry,Value 设置为registry.cn-hangzhou.aliyuncs.com

system-registry

  1. 接下来我们就可以按照官方文档去添加自定义集群,我们只需要等待集群启动成功即可。下图中列出了 system-project 中所有的 workload,这些 workload 均使用了阿里云的镜像仓库registry.cn-hangzhou.aliyuncs.com内的镜像

system-workload

仅需 3-5 分钟就能完成整个集群的搭建,将大幅节省时间,提高工作效率。

应用商店默认地址timeout

Rancher 默认使用 github 上的 repo 作为应用商店的 URL,如果出现timeout情况,可以将Catalog URL替换成我们国内的码云地址。

每个 repo 的对应关系如下:

应用商店地址Rancher repo 地址Gitee 地址
https://git.rancher.io/helm3-chartshttps://github.com/rancher/helm3-chartshttps://gitee.com/rancher/helm3-charts
https://git.rancher.io/chartshttps://github.com/rancher/chartshttps://gitee.com/rancher/charts
https://git.rancher.io/system-chartshttps://github.com/rancher/system-chartshttps://gitee.com/rancher/system-charts

如何修改Catalog URL

  1. 导航到全局或项目级别的Apps -> Manage Catalogs
  2. 单击列表右侧的省略号 -> Edit
  3. Catalog URL替换成码云中的地址即可,Save
  4. 此时,对应的 Catalog 的状态变为了Refreshed,等待变为Active之后即可正常使用

创建自定义集群,Kubernetes Version显示为空

每次启动 Rancher 都会到 github 上拉取kontainer-driver-metadata,如果拉取的慢,会导致创建在创建自定义集群时Kubernetes Version显示为空:

kontainer-driver-metadata

要解决这个问题只需要参考获取新的 Kubernetes 版本将 rke-metadata-config 地址修改成gitee上的地址即可,例如:

  1. {
  2. "refresh-interval-minutes": "1440",
  3. "url": "https://gitee.com/rancher/kontainer-driver-metadata/raw/dev-v2.4/data/data.json"
  4. }
注意

修改rke-metadata-config地址时,需要对应版本号,一定要和默认地址中的版本号对应上,本例的版本号是v2.4

使用国内 Rancher Chart 地址添加 Helm Chart 仓库

在国内使用 helm 安装 rancher,添加 Helm Chart 仓库时有时候会因为访问国外网络导致 Rancher Chart 添加失败,如下:

  1. helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
  2. 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 地址即可:

  1. helm repo add rancher-<CHART_REPO> http://rancher-mirror.oss-cn-beijing.aliyuncs.com/server-charts/<CHART_REPO>

同步说明

以上提到的资源,我们会通过定时任务每天从 Github 上拉取,同步到国内。也许存在延迟或同步失败的情况,如果发现任何问题,欢迎在微信技术交流群或官方论坛中向我们反馈。