一、rancher是什么

Rancher 是一个开源的容器管理平台,旨在简化 Kubernetes(K8s)集群的部署、管理和运维。它由 Rancher Labs 开发,现为 SUSE 的一部分。Rancher 提供了一个统一的用户界面和 API,使 DevOps 团队和平台工程师能够跨多个环境(本地、云、混合)轻松管理多个 Kubernetes 集群。
官网地址:https://www.rancher.cn/

注意:本文基于rancher:v2.11.2版本介绍的,理论上通用其他版本

二、环境准备(所有节点)

1. 基础系统要求

  • 操作系统:CentOS 7/8、Ubuntu 20.04+(推荐 CentOS 7.9)
  • 内存 ≥ 4GB,CPU ≥ 2核
  • 节点间网络互通,关闭防火墙或开放必要端口(6443、2379-2380、10250 等)

2.安装 Docker(所有节点)

1
2
3
4
5
6
# 使用阿里云 yum 源安装 Docker CE
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io

systemctl enable --now docker

3. 配置 Docker 镜像加速器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://registry.cn-hangzhou.aliyuncs.com",
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com",
"https://docker.1panel.live"
],
"log-driver":"json-file",
"log-opts": {"max-size":"500m", "max-file":"3"}
}
EOF

systemctl daemon-reload
systemctl restart docker

三、部署 Rancher Server(单节点)

建议单独一台机器作为 Rancher 管理节点(不参与 K8s 集群)

1.国内配置需要k3s镜像包处理(能fq的可以忽略)

1.1 创建预留的映射目录

1
mkdir -p /var/rancher/k3s/agent/images/

1.2 复制出镜像包

1
2
  
docker run --rm --entrypoint "" -v $(pwd):/output registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.11.2 cp /var/lib/rancher/k3s/agent/images/k3s-airgap-images.tar /output/k3s-airgap-images.tar

1.3复制到预留rancher server映射的目录

1
cp k3s-airgap-images.tar /var/rancher/k3s/agent/images/  

2. 使用阿里云镜像启动 Rancher

1
2
3
4
5
6
7
8
9
docker run -d \
--restart=unless-stopped \
--name rancher \
-v /etc/localtime:/etc/localtime:ro \
-p 80:80 \
-p 443:443 \
-v /var/rancher/:/var/lib/rancher/ \
--privileged \
registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.11.2

✅ 镜像说明:registry.cn-hangzhou.aliyuncs.com/rancher/rancher 是阿里云同步的官方镜像,版本需与官方一致

3. 首次访问配置

  • 浏览器访问 https://<Rancher服务器IP>
  • 设置 admin 密码
  • 设置 Server URL(建议用 IP 或内网域名,如 https://192.168.1.100

获取密钥

1
docker logs  rancher  2>&1 | grep "Bootstrap Password:"

四、配置 Rancher 使用国内源(关键!)

1. 设置系统默认镜像仓库

进入 全局设置(Global Settings) → 搜索 system-default-registry
将其值设为:

1
registry.cn-hangzhou.aliyuncs.com

此设置会让 Rancher 在创建集群时自动拉取 registry.cn-hangzhou.aliyuncs.com/rancher/xxx 镜像,避免拉取 gcr.io 或 docker.io。

2. 替换应用商店(Catalog)为 Gitee

进入 全局 → Apps → Manage Catalogs

Catalog 名称 原 URL(GitHub) 替换为(Gitee)
helm3-charts https://github.com/rancher/helm3-charts https://gitee.com/rancher/helm3-charts
charts https://github.com/rancher/charts https://gitee.com/rancher/charts
system-charts https://github.com/rancher/system-charts https://gitee.com/rancher/system-charts

点击每个 Catalog 的 ⋮ → Edit,替换 URL 后保存。

等待状态变为 Active 即可正常使用应用商店。

五、创建自定义 Kubernetes 集群

1. 在 Rancher UI 中点击 集群 → 创建

  • 选择 自定义(Custom)
  • 填写集群名称(如 prod-cluster
  • 选择 rke2最新的 版本
  • 节点角色分配:
    • master:勾选 etcd + Control Plane
    • node1 / node2:勾选 Worker(也可加 etcd 做高可用)

2. 在对应节点执行 Rancher 提供的注册命令

master

1
curl --insecure -fL https://xxxxxx/system-agent-install.sh | sudo  sh -s - --server https://xxxx --label 'cattle.io/os=linux' --token xxxx --ca-xxxx --etcd --controlplane

`

worker

1
curl --insecure -fL https://xxx/system-agent-install.sh | sudo sh -s - --server https://xxx --label 'cattle.io/os=linux' --token xxx --ca-checksum xxx --worker

⚠️ 注意:选择 不安全:如果你的服务器具有自签名证书,选择此项以跳过 TLS 验证。

3.rancher k8s集群节点快速部署方案 (国内需要)

重要:在注册命令执行之前,记得之前选择的rke2的版本
去选择手动下载所需的镜像,并将其导入到各个节点中。具体步骤如下:

  1. 从 GitHub 的https://github.com/rancher/rke2 (可换为其他镜像地址)下载对应的镜像包(例如 rke2-images.linux-amd64.tar.zst)。
  2. 将下载好的镜像包传输到所有目标节点上。

在每个节点上执行以下命令解压并导入镜像:

创建节点目录地址

1
mkdir -p /var/lib/rancher/rke2/agent/images/  

复制镜像文件到目录地址

1
tar --zstd -xvf rke2-images.linux-amd64.tar.zst -C /var/lib/rancher/rke2/agent/images/

然后注册命令执行

4. 查看集群节点部署情况方式

4.1查看日志

1
journalctl -u rancher-system-agent.service -f

/var/lib/rancher/rke2/agent/logs/下的完整日志进一步分析

4.2 查看集群状态

master节点查看

1
systemctl status rke2-server.service  

工作节点查看

1
systemctl status rke2-agent.service  

4.3 查看镜像加载情况

1
2
/var/lib/rancher/rke2/bin/kubectl \  
--kubeconfig /etc/rancher/rke2/rke2.yaml get pod -A

5.删除集群部署

删除

1
sudo /usr/local/bin/rke2-uninstall.sh  

核实下面是否被删除 (多次删除)

1
2
3
4
rm -rf /etc/rancher/rke2 \  
/var/lib/rancher/rke2 \
/run/k3s \
/run/rke2