一、Rancher版本选择和安装¶
1.1 Rancher版本选择¶
Rancher所有版本如下,目前最新版本为v2.10,下面实验选择v2.8.2
https://github.com/rancher/rancher/releases/tag/v2.10.1
1.2 Rancher安装¶
1.2.1 介绍说明¶
| VMware版本信息 | 17.6.2 |
|---|---|
| 演示环境机器配置 | 4C/4G/200G+ |
| 生产环境机器配置 | 8C/16G/200G+ |
| 操作系统 | Rocky9.4 |
| 基础环境 | Docker/k8s |
1.2.2 安装步骤¶
1、禁用并停止防火墙服务
[root@rocky9-10 ~]# systemctl disable --now firewalld
2、临时禁用selinux
[root@rocky9-10 ~]# setenforce 0
3、永久禁用 SELinux,确保 SELinux 在系统重启后仍然处于禁用状态
[root@rocky9-10 ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
[root@rocky9-10 ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
4、安装一些常用的 Linux 系统管理和开发工具包
[root@rocky9-10 ~]# yum install -y wget jq psmisc vim net-tools telnet yum-utils device-mapper-persistent-data lvm2 git
5、将 Docker CE 仓库添加到系统中,加载 Docker 正常运行所需的内核模块
[root@rocky9-10 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@rocky9-10 ~]# yum -y install docker-ce
modprobe overlay
modprobe br_netfilter
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe ipt_state
echo 'ip_tables' >> /etc/modules
说明:如果想加载内核模块永久生效,则需要定义/etc/modules-load.d/overlay.conf文件。具体如下
sudo vim /etc/modules-load.d/overlay.conf
overlay
br_netfilter
ip_tables
ip_conntrack
iptable_filter
ipt_state
6、配置网络相关的内核参数,并应用于系统的内核设置
[root@rocky9-10 ~]# cat <<EOF | tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
[root@rocky9-10 ~]# sysctl --system
7、启动docker
[root@rocky9-10 ~]# systemctl enable --now docker
8、安装rancher
在安装之前需要进行版本选择,而在版本选择之前需要注意下面两点:
- rancher/rancher:latest不是最新版
- rancher/rancher:stable不是最新稳定版
打开https://github.com/rancher/rancher进行版本选择

纯外网环境安装:
[root@rocky9-10 ~]# mkdir -p /data/rancher
[root@rocky9-10 ~]# docker pull registry.cn-hangzhou.aliyuncs.com/abroad_images/rancher:v2.8.2
#2.5.x之后版本启动命令
[root@rocky9-10 ~]# docker run -d --name rancher --restart=unless-stopped -p 80:80 -p 443:443 --privileged \
-e CATTLE_BOOTSTRAP_PASSWORD=rancher \
-v /data/rancher:/var/lib/rancher \
registry.cn-hangzhou.aliyuncs.com/abroad_images/rancher:v2.8.2
[root@rocky9-10 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
42e4fdbec6a3 registry.cn-hangzhou.aliyuncs.com/abroad_images/rancher:v2.8.2 "entrypoint.sh" 8 minutes ago Up 17 seconds 0.0.0.0:80->80/tcp, 80->80/tcp, 0.0.0.0:443->443/tcp, 443->443/tcp rancher
纯内网环境安装:
#1、创建镜像存放目录
mkdir -p /data/rancher/k3s/agent/images/
#2、启动临时容器拿取镜像
docker run --rm --entrypoint "" -v $(pwd):/output registry.cn-hangzhou.aliyuncs.com/abroad_images/rancher:v2.8.2 cp /var/lib/rancher/k3s/agent/images/k3s-airgap-images.tar /output/k3s-airgap-images.tar
cp k3s-airgap-images.tar /data/rancher/k3s/agent/images/
#3、启动容器
docker run -d --name rancher --restart=unless-stopped --privileged \
-p 80:80 -p 443:443 \
-e CATTLE_SYSTEM_DEFAULT_REGISTRY=registry.cn-hangzhou.aliyuncs.com \
-e CATTLE_BOOTSTRAP_PASSWORD=rancher \
-v /data/rancher:/var/lib/rancher \
registry.cn-hangzhou.aliyuncs.com/abroad_images/rancher:v2.8.2
9、通过页面访问rancher,这里直接填写rancher即可
https://10.0.0.10/

勾选【用户协议及条款和条件】

1.2.3 安装遇到问题汇总¶
1、启动rancher容器服务报 WARNING: IPv4 forwarding is disabled. Networking will notwork.错误
#1、修改配置文件并生效
[root@rocky9-10 ~]# cat <<EOF | tee /etc/sysctl.d/99-kubernetes-cri.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOF
[root@rocky9-10 ~]# sysctl --system
#2、重启网络
[root@rocky9-10 ~]# systemctl restart network
#3、删除容器并新建
[root@rocky9-10 ~]# docker rm -f rancher
[root@rocky9-10 ~]# docker run -d --name rancher --restart=unless-stopped -p 80:80 -p 443:443 --privileged -v /data/rancher:/var/lib/rancher registry.cn-hangzhou.aliyuncs.com/abroad_images/rancher:v2.8.2
2、使用rancher创建集群提示下面报错

报错原因:
由于docker run 的时候映射目录导致。因为通过 docker run 启动的 Rancher 镜像中内置了 rancher/mirrored-coredns-coredns和 rancher/mirrored-pause这两个镜像的 tar 包,这样在离线环境上也能自动启动这两个服务。但是这两个镜像的离线 tar 包默认存储在了 /var/lib/rancher/k3s/agent/images/k3s-airgap-images.tar。当通过 docker run 来启动 Rancher 时,通过 -v 将 Rancher 的数据目录(/var/lib/rancher) 映射到本地之后,导致了容器中的 /var/lib/rancher 使用的是主机的空目录。也就是说新启动的 Rancher 中缺少了这个离线的 tar 包,而且,CATTLE_SYSTEM_DEFAULT_REGISTRY 对这两个 pod 不生效。现阶段国内网络使用 docker hub 有问题,所以导致了 rancher/mirrored-coredns-coredns 和 rancher/mirrored-pause 拉取失败。
解决方法:
#1、创建镜像存放目录
mkdir -p /data/rancher/k3s/agent/images/
#2、启动临时容器拿取镜像
docker run --rm --entrypoint "" -v $(pwd):/output registry.cn-hangzhou.aliyuncs.com/abroad_images/rancher:v2.8.2 cp /var/lib/rancher/k3s/agent/images/k3s-airgap-images.tar /output/k3s-airgap-images.tar
cp k3s-airgap-images.tar /data/rancher/k3s/agent/images/
#3、启动容器
docker run -d --name rancher --restart=unless-stopped --privileged \
-p 80:80 -p 443:443 \
-e CATTLE_SYSTEM_DEFAULT_REGISTRY=registry.cn-hangzhou.aliyuncs.com \
-e CATTLE_BOOTSTRAP_PASSWORD=rancher \
-v /data/rancher:/var/lib/rancher \
registry.cn-hangzhou.aliyuncs.com/abroad_images/rancher:v2.8.2
3、重启rancher容器后,无法访问界面
报错内容:
[root@rocky9-10 ~]# docker logs -f rancher
...
...
2025/01/12 02:47:56 [INFO] Waiting for server to become available: Get "https://127.0.0.1:6444/version?timeout=15m0s": dial tcp 127.0.0.1:6444: connect: connection refused
...
...
#agnet也没起来
[root@rocky9-20 ~]# kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
...
...
cattle-system cattle-cluster-agent-7995656dd4-vv7gk 0/1 CrashLoopBackOff 6 (16s ago) 15h
cattle-system cattle-cluster-agent-7995656dd4-xddzf 0/1 CrashLoopBackOff 6 (2m39s ago) 15h
...
...
报错原因:
系统bug:https://github.com/rancher/rancher/issues/44279
解决方法:
[root@rocky9-10 ~]#
modprobe overlay
modprobe br_netfilter
modprobe ip_tables
modprobe ip_conntrack
modprobe iptable_filter
modprobe ipt_state
二、Rancher基本操作¶
2.1 设置中文¶
1、点击头像,选择【Perferences】

2、语言设置成【简体中文】

2.2 查看简介¶
1、点击【简介】即可查看版本、镜像列表、CLI下载相关信息
