国内使用 Rancher v2.14.3 版本,支持K8s v1.35.6
Rancher是一款开源的Kubernetes集群管理平台,可以帮助用户快速部署和管理Kubernetes集群。Rancher 在 v2.14.3 版本,支持 Kuberentes v1.35.6
但是在国内使用 Rancher 时,镜像拉取速度慢一直是个痛点问题。除了 Rancher 自身的镜像,还有是 Kubernetes 等相关的镜像。Github Release 中提供了版本相关的所有的镜像列表和镜像缓存迁移工具。
- rancher-images.txt 提供了rancher和集群运行管理的所有 856 个相关镜像。
- rancher-save-images.sh 将 rancher-images.txt 中的镜像保存到本地
- rancher-load-images.sh 将导出的镜像包导入到私有的镜像仓库
藏云阁镜像仓库 已经全部同步rancher-images.txt 中的全部镜像的 ARM64/AMD64 版本,在国内可以高速拉取镜像。
安装启动Rancher
Rancher 有多种安装方式,官方推荐基于 HelmChart 的方式安装到 Kubernetes 集群中。
体验和测试等可以使用 Docker 的方式启动 Rancher 容器,方便快速体验。 由于添加了一些参数,使用docker命令管理不方便,我习惯上使用 Docker Compose 的方式进行管理。
docker-compose.yml 文件如下:
services:
rancher:
image: registry.cncfstack.com/docker.io/rancher/rancher:v2.14.3
container_name: rancher
privileged: true
environment:
- CATTLE_SYSTEM_DEFAULT_REGISTRY=registry.cncfstack.com/docker.io
- CATTLE_SYSTEM_CATALOG=bundled
# 设置rancher管理平台页面中注册中心配置
- CATTLE_BASE_REGISTRY=registry.cncfstack.com/docker.io
- CATTLE_CLUSTER_REGISTRY=registry.cncfstack.com/docker.io
- CATTLE_BOOTSTRAP_PASSWORD=PWD_changeme666
# 第一次安装成功时让确认的的访问地址
- CATTLE_SERVER_URL=https://rancher.cncfstack.com
# 禁用虚拟化
- CATTLE_FEATURES=harvester=false
- CATTLE_DEV_MODE="yes"
# Rancher证书验证,为strict时只认可挂载制定的cacerts证书,设置为system-store则认可操作系统的ca
- CATTLE_AGENT_TLS_MODE="system-store"
ports:
- "80:80"
- "443:443"
restart: always
# command: '--no-cacerts' 在自签名时不需要
#command: '--no-cacerts'
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- ./config/k8s-registries.yaml:/etc/rancher/k3s/registries.yaml
- /data/rancher/rancher:/var/lib/rancher
- /data/rancher/pods-logs:/var/log/pods
# - /data/cloud-services/nginx/ssl/cncfstack.com_ecc/fullchain.cer:/etc/rancher/ssl/cert.pem
# - /data/cloud-services/nginx/ssl/cncfstack.com_ecc/cncfstack.com.key:/etc/rancher/ssl/key.pem
Rancher 运行需要通过 https:// , 默认会自动签发一个自签名证书。也可以配置合法的证书,但需要注意添加 command: '--no-cacerts' ,并且目标的证书和私钥路径和名称是固定的。
CATTLE_SYSTEM_DEFAULT_REGISTRY、CATTLE_BASE_REGISTRY 和 CATTLE_CLUSTER_REGISTRY 都是为了指定 Rancher 运行时容器镜像的仓库地址,在国内网络和企业私有网络需要进行配置。
并且 rancher 容器在启动时挂载了一个 config/k8s-registries.yaml 文件,这是 K3s 运行的配置文件,也是用于配置 k8s 的镜像仓库,
mirrors:
docker.io:
endpoint:
- "https://registry.cncfstack.com"
rewrite:
"^rancher/(.*)": "docker.io/rancher/$1"
命令行访问 K8s(k3s )集群
rancher 启动后默认有一套 k3s 集群,他具有 Kuberentes 大部分的功能,可以满足日常学习使用。
访问 Rancher 默认提供的 Kuberentes 集群可以进入到容器内部,容器内相关的 kubectl 命令和配置文件都已经就绪,可以直接使用:
docker exec -it rancher bash
kubectl get pod -A
访问 Web 页面
安装完成后打开 Web UI 页面。在 docker compose 中配置了默认访问域名 CATTLE_SERVER_URL 和密码 CATTLE_BOOTSTRAP_PASSWORD ,如果配置的是域名需要注意域名的 DNS 解析。

异常问题分析
正常情况下有了配置文件和 docker-compose.yml 文件,只需要执行 docker-compose up -d 就可以启动 Rancher 容器了。可能由于网络带宽导致服务启动慢多等一会,或者超时 docker compose restart 重启一下就行。
如果启动后,页面无法访问,可以通过 docker compose logs -f rancher 或者 docker logs -f rancher 查看日志,这里会显示容器的标准输出日志。
有时直接通过 rancher 标准输出的日志不足以解决问题时,还可以通过 k3s 的日志来查看。
Tip
Rancher 容器运行方案是在 Docker-In-Docker 的容器运行 k3s 集群。
k3s 集群分为 server 端和 agent 端, server 类似 k8s 集群的 master 节点, agent 类似 k8s 集群的 worker/node 节点。
- server: /data/rancher/rancher/k3s/server
- agent: /data/rancher/rancher/k3s/agent
在 Docker Compose 中已经将容器中的目录挂载到宿主机 /data/rancher 目录。
k3s 服务端运行主要通过 k3s.log 日志文件,agent 端运行主要通过 containerd.log 日志文件。
tail -f /data/rancher/rancher/k3s.log
tail -f /data/rancher/rancher/k3s/agent/containerd/containerd.log
页面功能
Rancher 提供了丰富的多Kubernetes集群管理功能。并对每个集群提供了相关的管理功能。

管理员可以接入已有的 Kubernetes 集群,如公有云的集群或自建的集群,也可以创建新的 Kubernetes 集群。
