rancher2.5.9在centos7.9环境一键离线部署

本文提供了一种在无网络环境中部署Rancher的方法,并详细介绍了所需的配置、镜像加载及备份脚本等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

经常会无网环境部署项目,导致每次镜像下载等很烦恼,所以特此整理当前资料进行方便rancher的部署

配置至少需要以下配置至少需要以下(当前主安装服务器竟可能配置高一些,硬盘大点,因镜像私服也在此服务器上)

cpu:4
内存:8G
硬盘:100G

以下步骤安装环境为离线无网络centos7.9 最小化安装 全新的机器上部署。直接运行脚本无人值守安装

当前安装rancher版本为2.5.9

目录结构如下

在这里插入图片描述

  1. 编辑config,配置文件所在
#当前脚本所在路径
export DIR="$(cd "$(dirname "$0")" && pwd)"
echo $DIR

#docker存储位置  docker当前镜像与运行容器存储位置,建议空间需要大一点
export DOCKER_LOCAL=/var/lib/docker

#docker私服部署方式,只有nexus部署方式与harbor方式 建议采用nexus方式部署docker私服,harbor存在网卡冲突问题,除非单独部署一台harbor
export DOCKER_REGISTRY_TYPE=nexus
#doker镜像仓库地址 如果存在端口需要在后面添加如 127.0.0.1  下面的证书的hostname需要与此ip一致  配置 如是本地域名需在各个服务器的/etc/host添加映射到harbor所在服务器ip  最好不要80端口,除非是单独部署一台服务器
export DOCKER_REGISTRY=$DOCKER_REGISTRY_TYPE.local.com:802

###################################harbor相关参数#################
#harbor拷贝的位置,位置设置大一点
export HARBOR_LOCAL=/home/harbor
#harbor日志位置
export HARBOR_LOG=$HARBOR_LOCAL'/log'
#harbor数据存储位置
export HARBOR_DATA=$HARBOR_LOCAL'/data'
#证书存储位置
export HARBOR_CERTS_CRT=$HARBOR_LOCAL'/certs/domain.crt'
export HARBOR_CERTS_KEY=$HARBOR_LOCAL'/certs/domain.key'
#harbor  admin账户登录的密码
export HARBOR_ADMIN_PWD=admin@123
#harbor.yml的位置 一般不变
export harbor_local=$HARBOR_LOCAL/harbor.yml
export harbor_local_tmp=$HARBOR_LOCAL/harbor.yml.tmp
###################################harbor相关参数#################

###################################nexus相关参数#################
#/**nexus所在服务器ip地址,需进行指定正确**********重点需要更改ip为自己的ip*/
export NEXUS_IP_ADDRESS=10.211.55.30
#nexus拷贝的位置,位置设置大一点
export NEXUS_LOCAL=/home/nexus
#此处密码不会自动设置,nexus启动好后自行修改密码为此
export NEXUS_PASSWORD=admin123
###################################nexus相关参数#################

#rancher运行的端口
export RANCHER_HTTP_PROT=800
export RANCHER_HTTPS_PROT=4443
#rancher数据存储路径
export RANCHER_DATA_DIR=/home/rancher

  1. 假如harbor的域名更换后,需要重新执行create_crt.sh生成证书,或者云证书,执行create_crt.sh会生成到/当前目录/harbor/certs中,如无需,请在当前主机或其他主机的/etc/host中添加如下内容(假如当前安装的主机ip为:192.168.0.1)
192.168.0.1  $DOCKER_REGISTRY_TYPE.local.com
或执行
echo '192.168.0.1  $DOCKER_REGISTRY_TYPE.local.com' >> /etc/host
  1. 先执行sh install.sh(如当前机器只需要安装harbor则只需要执行此项即可,后面步骤可忽略)

  2. 登录https:// D O C K E R R E G I S T R Y T Y P E . l o c a l . c o m (如果是 n e x u s 私服,对应访问链接地址默认为: h t t p s : / / DOCKER_REGISTRY_TYPE.local.com (如果是nexus私服,对应访问链接地址默认为:https:// DOCKERREGISTRYTYPE.local.com(如果是nexus私服,对应访问链接地址默认为:https://DOCKER_REGISTRY_TYPE.local.com:8343) 创建仓库项目rancher与oher(harbor方式搭建的需要创建项目如若不创建镜像将无法上传到仓库,nexus方式搭建的私服需要进入后创建对应的docker访问地址,参考:https://blog.youkuaiyun.com/supertor/article/details/83146596 默认上述配置文件端口为:802)

  3. 步骤三执行无误后即可进行加载镜像,执行sh loadImage.sh 启动rancher的服务命令在此脚本中

  4. rancher-images.tar.gz包含rancher运行基础镜像

  5. oher-images.tar.gz包含镜像列表如下:
    在这里插入图片描述

  6. 执行无误之后,浏览器输入https://192.168.0.1:4443/ 即可访问rancher

  7. rancher界面打开后即可创建k8s集群,目前所包含镜像包只支持创建k8s集群版本为1.18.20-rancher1-2以下

  8. 单节点rancher 的容灾不是很高。请注意,集群不要开太多

rancher备份脚本

自行创建sh脚本,放入crontab中定时使用

#! /bin/sh
#前提需存在zip压缩命令,如没有到rmp中安装,记得给此脚本执行权限chmod +x back.sh,写好脚本后,执行 crontab -e  添加 00 3 * * * /root/back.sh  #3点执行,以下脚本依据实际情况进行调整

#备份rancher
RANCHER_NAME=gracious_kalam

backpath=/home/bak
neet_rancher_path=/home/rancher
neet_etcd_path=/var/lib/etcd

docker stop $RANCHER_NAME
DATE=$(date +"%Y%m%d%H%M%S")
#备份rancher
mkdir -p ${backpath}/rancher_bak
tar -czf ${backpath}/rancher_bak/rancher_${DATE}.tar.gz ${neet_rancher_path}

# 保留的文件数量
KEEP_COUNT=20
# 待清理的目录
TARGET_PATH=${backpath}/rancher_bak
FILE_COUNT=$(find ${TARGET_PATH} -type f | wc -l)
# 当待清理的目录文件数量大于要保留的数量时才进行清理
if [ ${FILE_COUNT} -gt ${KEEP_COUNT} ]; then
 ls -lt ${TARGET_PATH} | tail -n $((`find ${TARGET_PATH} -type f | wc -l` - ${KEEP_COUNT})) | awk '{print $NF}' | xargs -i rm -f ${TARGET_PATH}/{}
fi

#备份本地etcd
mkdir -p ${backpath}/etcd_bak
tar -czf ${backpath}/etcd_bak/etcd_member_${DATE}.zip ${neet_etcd_path}

# 待清理的目录
TARGET_PATH=${backpath}/etcd_bak
FILE_COUNT=$(find ${TARGET_PATH} -type f | wc -l)
# 当待清理的目录文件数量大于要保留的数量时才进行清理
if [ ${FILE_COUNT} -gt ${KEEP_COUNT} ]; then
 ls -lt ${TARGET_PATH} | tail -n $((`find ${TARGET_PATH} -type f | wc -l` - ${KEEP_COUNT})) | awk '{print $NF}' | xargs -i rm -f ${TARGET_PATH}/{}
fi
docker start $RANCHER_NAME

rancher-2.5.9下载地址(建议使用2.5.16版本)

链接: https://pan.baidu.com/s/1mIYBcwtgOyMXMZwGOKUsTA?pwd=iuwh 提取码: iuwh
–来自百度网盘超级会员v6的分享

rancher-2.5.16下载地址

链接: https://pan.baidu.com/s/1Mo-gWbtSNJAie2dSFJ_UEw?pwd=28e2 提取码: 28e2
–来自百度网盘超级会员v6的分享

<think>好的,用户想了解如何使用Rancher部署一个包含3个Master节点和2个Node节点的Kubernetes集群。我需要根据提供的引用资料来整理步骤。 首先,引用[4]提到了硬件的最低要求,Rancher服务器需要25G内存,Master节点各2核3G,Node节点各1核2G。用户需要确保所有节点满足这些配置,并且操作系统是CentOS 7.9。网络方面,各个节点应该有固定的IP地址,并且能够互相通信,可能需要关闭防火墙或配置正确的规则。 接下来,安装Rancher Server。根据引用[1]和[4],用户需要在Rancher服务器安装Docker,然后使用Docker运行Rancher。需要确保Rancher的版本与Kubernetes兼容,用户可能需要访问Rancher的Web界面,比如通过https://rancher-server-ip:8443。 然后,配置Kubernetes集群。引用[3]中的配置文件示例显示,需要指定server的地址和token,以及各个Master节点的TLS SAN。这里可能需要生成token,并正确设置每个Master节点的node-name、node-taint和node-label,确保Master节点不被调度用户工作负载。 添加节点部分,引用[3]和[4]提到,Node节点需要运行Rancher提供的注册命令,可能需要安装Docker并加入集群。同时,要注意节点标签的设置,以便后续管理。 安装后的验证步骤包括在Rancher界面检查节点状态,以及使用kubectl命令确认集群状态。引用[2]提到Rancher管理Kubernetes集群的实战,可能需要指导用户如何通过Rancher界面进行多集群管理。 高可用性方面,引用[3]中的tls-san配置了多个Master节点的主机名,这有助于负载均衡。用户可能需要设置外部负载均衡器来分发流量到各个Master节点,确保集群的高可用性。 最后,注意事项部分需要提醒用户版本兼容性、网络要求和安全加固,如定期备份和RBAC配置。这些内容在引用[1]和[4]中都有涉及。 相关问题部分需要涵盖Rancher的高可用部署、节点管理、备份恢复、与其他工具对比以及网络问题排查,这些都是用户在部署集群后可能遇到的后续问题。</think>### 分步教程:使用 Rancher 部署 3 Master + 2 Node 的 Kubernetes 集群 #### 一、前期准备 1. **硬件配置**(最低要求)[^4] - Rancher Server:2核 CPU / 5GB 内存 / CentOS 7.9 - Master节点×3:2核 CPU / 3GB 内存 / CentOS 7.9 - Node节点×2:1核 CPU / 2GB 内存 / CentOS 7.9 - 所有节点需配置固定 IP(示例:10.10.10.130 为 Rancher Server) 2. **环境要求** - 所有节点关闭 SELinux、防火墙(或开放相关端口) - 节点间时间同步(NTP) - 节点间网络互通,允许 9345、6443 等 Kubernetes 端口通信 #### 二、安装 Rancher Server 1.Rancher Server 节点执行: ```bash # 安装 Docker sudo yum install -y docker sudo systemctl start docker && sudo systemctl enable docker # 启动 Rancher 容器 docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 -p 6443:6443 \ --privileged \ rancher/rancher:latest ``` 2. 访问 Web 控制台:`https://<rancher-server-ip>`,设置管理员密码 #### 三、配置 Kubernetes 集群 1. **创建自定义集群** - 登录 Rancher 控制台 > 集群管理 > 创建 - 选择 "Custom" 类型 - 配置集群名称(如 k8s-prod) 2. **Master 节点配置**(三台均需执行)[^3] ```yaml server: https://master01:9345 token: K10433...(自动生成) tls-san: - master01 - master02 - master03 node-name: master01 node-taint: - "CriticalAddonsOnly=true:NoExecute" node-label: - "node=Master" ``` - 需修改每台 master 的 `node-name` 和 IP - 通过 Web 界面获取注册命令,在 master 节点执行 3. **Node 节点配置**(两台均需执行) ```bash # 安装 Docker(同 Rancher Server) # 执行 Rancher 提供的注册命令(带 --worker 参数) sudo docker run -d --privileged --restart=unless-stopped \ --net=host -v /etc/kubernetes:/etc/kubernetes \ rancher/rancher-agent:v2.5.9 \ --server https://<rancher-server-ip> \ --token <cluster-token> \ --ca-checksum <ca-checksum> \ --worker ``` #### 四、安装后验证 1.Rancher 控制台查看集群状态,应显示 3 个 `Control Plane` + 2 个 `Worker` 2. 通过 kubectl 检查节点状态: ```bash kubectl get nodes -o wide ``` 3. 验证高可用: ```bash # 停止任意一个 master 节点后检查 API Server 可用性 curl -k https://<任意master节点IP>:6443 ``` #### 五、高可用配置建议 1. 使用外部负载均衡器(如 HAProxy)指向 3 个 master 节点的 6443 端口[^3] 2. 配置 etcd 定期备份 3. 启用集群监控(Rancher 内置 Prometheus) #### 六、注意事项 1. 版本兼容性:Rancher 2.5.x 对应 Kubernetes 1.18-1.20 2. 网络要求:Calico/Flannel 网络插件需开放相应端口 3. 安全加固:建议配置 RBAC 和 Pod 安全策略
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值