一、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进行版本选择

image-20250109205814979

纯外网环境安装:

[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/

image-20250111171339254

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

image-20250111171534927

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创建集群提示下面报错

image-20250111164939382

报错原因:

由于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】

Day001-Rancher基础-图6

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

Day001-Rancher基础-图7

2.2 查看简介

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

Day001-Rancher基础-图8