自动配置Rancher管理平台的脚本

wen 实用脚本 2

自动配置Rancher管理平台的脚本:从零到集群的终极指南

📖 目录导读

  1. 为什么需要自动配置Rancher的脚本?
  2. 核心组件与技术栈概览
  3. 前置环境准备与依赖安装
  4. 脚本实现:一键部署Rancher单节点
  5. 脚本实现:自动化配置Kubernetes集群
  6. 常见问题与解决方案(Q&A)
  7. 脚本优化与安全提示
  8. 拥抱自动化运维

为什么需要自动配置Rancher的脚本?

在企业级容器化运维中,Rancher作为开源的多集群管理平台,能够统一管理Kubernetes集群、监控、日志和权限,手动配置Rancher及其依赖的Kubernetes环境往往需要执行数十条命令,涉及节点初始化、Docker安装、证书生成、网络配置等环节,极易因人为失误导致部署失败。

自动配置Rancher管理平台的脚本

自动配置脚本的价值体现在:

  • 减少重复工作:单次运行即可完成Liunx服务器上的全部配置。
  • 标准化环境:确保测试、预发、生产环境的一致性。
  • 快速故障恢复:当节点损坏时,重新执行脚本即可快速重建管理节点。

核心组件与技术栈概览

一个完整的Rancher+Kubernetes自动配置脚本通常涉及以下组件:

组件 作用与版本建议
Docker 容器运行时(≥20.10.0)
Rancher 管理平台(v2.7+推荐)
k3s/k8s 被管理的Kubernetes集群(k3s轻量)
Helm Kubernetes包管理器(可选)
Cert-Manager 自动管理HTTPS证书(生产环境必选)

注意:若使用K3s作为底层集群,脚本体积更小、启动更快,适合边缘或资源受限场景。


前置环境准备与依赖安装

1 服务器要求

  • 操作系统:Ubuntu 20.04/22.04 或 CentOS 7/8
  • 最低配置:2核CPU + 4GB内存(生产至少4核8GB)
  • 确保swap已关闭(Kubernetes要求)

2 基础依赖安装脚本片段

#!/bin/bash
# 更新系统并安装基础工具
apt-get update -y && apt-get install -y curl wget git htop net-tools
# 关闭防火墙(或开放必要端口)
systemctl stop ufw && systemctl disable ufw
# 设置主机名并写入hosts
hostnamectl set-hostname rancher-node1
echo "192.168.1.10 rancher-node1" >> /etc/hosts

脚本实现:一键部署Rancher单节点

1 完整脚本示例(以下保存为deploy_rancher.sh

#!/bin/bash
set -e
# 1. 安装Docker
if ! command -v docker &> /dev/null; then
    curl -fsSL https://get.docker.com | sh
    systemctl enable docker && systemctl start docker
fi
# 2. 启动Rancher容器
sudo docker run -d --restart=unless-stopped \
    -p 80:80 -p 443:443 \
    --privileged \
    --name rancher-server \
    rancher/rancher:v2.7.5
echo "Rancher管理平台正在启动,访问地址: http://<你的服务器IP>"
sleep 30  # 等待容器完全启动
echo "请打开浏览器完成初始化设置,并记下生成的随机密码。"

2 脚本执行与验证

chmod +x deploy_rancher.sh && ./deploy_rancher.sh
# 观察日志输出,使用 docker logs -f rancher-server 跟踪状态

脚本实现:自动化配置Kubernetes集群

1 在工作节点上自动加入集群

使用Rancher生成的集群注册命令(curl --insecure -sfL https://10.0.0.1/system-agent-install.sh | sudo sh -s - --server https://10.0.0.1 --label 'cattle.io/os=linux' --etcd --controlplane --worker

我们可以将其包裹为脚本,实现批量节点自动加入:

#!/bin/bash
# add_worker.sh - 工作节点自动加入脚本
RANCHER_URL="https://10.0.0.1"
CLUSTER_TOKEN="<从Rancher页面获取的token>"
# 安装依赖
curl -sSL https://get.docker.com | sh
systemctl enable docker && systemctl start docker
# 执行加入命令
curl -sfL ${RANCHER_URL}/system-agent-install.sh | \
    sudo sh -s - --server ${RANCHER_URL} --token ${CLUSTER_TOKEN} --worker
echo "节点已成功加入集群!在Rancher GUI中查看状态。"

常见问题与解决方案(Q&A)

Q1: 脚本执行后无法访问Rancher界面,怎么办?

A: 首先检查防火墙是否开放了80/443端口,运行docker ps确认容器状态,若容器反复重启,使用docker logs rancher-server查看错误日志,常见于端口冲突或证书问题。

Q2: 如何用脚本实现Rancher高可用?

A: 需要准备外部数据库(如RDS PostgreSQL),然后在脚本中指定--db-driver=postgres并配置数据库连接串,三节点以上的ETCD集群可参考官方HA部署文档。

Q3: 自动脚本是否支持多云混部场景?

A: 支持,Rancher本身支持导入AWS、Azure、GCP的Kubernetes服务(如EKS、AKS、GKE),脚本只需替换集群注册命令中的URL和Token即可。

Q4: 生产环境必须使用HTTPS,脚本如何自动配置?

A: 可以在脚本中集成Cert-Manager和Let’s Encrypt,或使用Rancher自带的CA自动生成证书,若自定义域名,请先配置DNS解析。


脚本优化与安全提示

1 优化建议

  • 幂等性:脚本每次执行前检查组件是否已安装,跳过重复步骤。
  • 参数化:通过环境变量读取集群Token、IP地址等敏感信息,避免硬编码。
  • 错误处理:加入set -etrap命令,遇到错误时自动退出并回滚。

2 安全注意事项

  • 避免在脚本中明文存储密码,建议使用Vault或环境变量。
  • Rancher容器默认暴露80/443端口,务必配置TLS证书。
  • 将脚本执行权限限制为root,并禁用未授权的sudo。

拥抱自动化运维

通过上述自动配置脚本,运维团队可以在10分钟内完成从裸机到Rancher管理平台+Kubernetes集群的全流程搭建,这不仅仅是速度的提升,更是运维质量的一次飞跃——标准化部署、可重复执行、快速恢复,这些都是现代DevOps实践的核心。

最后建议:将脚本集成到CI/CD流水线或Ansible中,实现真正的一键交付,当你的Rancher环境稳定运行后,你会发现之前手动敲命令的日子一去不复返。

延伸阅读:Rancher官方文档提供了更多高级功能,如多租户管理、应用商店集成、日志和监控系统配置,强烈建议结合自动化脚本进行二次开发。

抱歉,评论功能暂时关闭!