Rancher部署k8s集群:开启容器编排新篇章

在云计算与容器化技术迅猛发展的今天,Kubernetes(K8s)已成为企业部署和管理云原生应用的黄金标准。然而,随着企业容器化进程的加速,跨云、跨数据中心的K8s集群管理逐渐成为运维团队的核心挑战。面对多集群环境下的配置差异、安全策略不一致、监控分散等问题,企业亟需一款能够统一管理、简化运维的解决方案。Rancher作为全球领先的开源多集群管理平台,凭借其强大的功能与易用性,正成为企业破解这一难题的关键工具。

Enterprise Kubernetes Management Platform & Software | Rancher

一、Rancher:K8s集群管理的"瑞士军刀"

Rancher是一款专为容器化环境设计的开源管理平台,其核心使命是让Kubernetes无处不在(Run Kubernetes Everywhere)。从私有云到公有云,从物理机到边缘设备,Rancher通过单一控制台实现跨环境、跨集群的统一管理,彻底解决了多云架构下的运维复杂性。

1. 多集群管理的"中枢神经"

Rancher支持同时管理数百个K8s集群,无论集群是托管在AWS EKS、阿里云ACK等公有云服务上,还是部署在本地数据中心或边缘节点。通过直观的Web界面,运维人员可一键查看所有集群的健康状态、资源使用率及告警信息,实现"一屏统管"。例如,某跨国企业通过Rancher管理全球20个数据中心的K8s集群,将运维效率提升了60%,故障响应时间缩短至5分钟以内。

2. 简化K8s部署的"加速器"

对于初学者或中小企业而言,K8s的部署与配置门槛较高。Rancher通过封装底层复杂性,提供了"一键部署"功能:用户仅需选择集群规模、网络插件等参数,即可自动完成节点初始化、证书生成、网络配置等流程。以Rancher 2.7版本为例,其支持的RKE2(Rancher Kubernetes Engine)发行版专为生产环境优化,可在10分钟内完成高可用集群的搭建,且支持离线镜像包导入,满足金融、政务等对数据安全要求严格的场景。

3. 安全与合规的"守护者"

在多云环境中,安全策略的统一实施是最大挑战之一。Rancher内置基于角色的访问控制(RBAC),支持与LDAP、Active Directory等企业身份系统集成,实现单点登录(SSO)。同时,通过Open Policy Agent(OPA)策略引擎,管理员可定义全局安全规则(如禁止特权容器、限制网络访问),并自动应用到所有集群。例如,某金融机构利用Rancher的"安全扫描"功能,在应用部署前自动检测镜像漏洞,将安全风险拦截在上线前。

4. DevOps的"协作桥梁"

Rancher为开发团队提供了自助式应用部署能力。通过集成Helm Chart应用商店,开发者可直接部署MySQL、Redis等中间件,或上传自定义Chart实现复杂应用编排。此外,Rancher与GitOps工具(如Argo CD)深度集成,支持将应用配置存储在Git仓库中,实现配置变更的自动化同步。某电商团队通过Rancher的CI/CD流水线,将应用发布周期从"周级"缩短至"分钟级",且支持蓝绿部署、金丝雀发布等高级策略。

二、Rancher的核心优势:为何选择它?

1. 跨云环境的"无缝适配"

Rancher支持导入任意K8s集群,无论其基于何种发行版(如OpenShift、TKE)或安装工具(如kubeadm、kops)。对于混合云场景,Rancher可统一管理公有云集群与本地集群,甚至通过K3s(轻量级K8s)将集群扩展至边缘设备。例如,某物联网企业利用K3s在500个边缘节点部署AI模型,通过Rancher实现模型更新、日志收集与远程调试。

2. 监控与日志的"一体化方案"

Rancher内置Prometheus+Grafana监控栈,可自动采集集群节点、Pod、CPU/内存等100+指标,并生成可视化仪表盘。同时,支持与ELK、Fluentd等日志系统集成,实现日志的集中存储与搜索。某游戏公司通过Rancher的监控告警功能,在服务器负载突增时自动触发扩容,保障了百万玩家在线的稳定性。

3. 成本优化的"智能助手"

Rancher的"集群模版"功能允许管理员预定义集群配置(如节点规格、存储类),并通过自动化工具批量创建集群,避免重复配置。此外,Rancher可分析集群资源使用情况,识别闲置资源并建议优化方案。某制造企业通过Rancher的资源调度策略,将K8s集群的CPU利用率从40%提升至75%,年节省云成本超百万元。

三、环境准备:服务器部署前的必要步骤

在正式开始Rancher部署K8s集群的实战操作前,我们需要做好充分的环境准备工作。以下将详细介绍所需的服务器配置、网络规划以及基础环境搭建步骤,为后续的集群部署奠定坚实基础。

1. 服务器规划与配置

本次部署采用四台虚拟机(以CentOS 7系统为例)模拟生产环境,具体分工如下:

  • Rancher Server:单独一台服务器,负责运行Rancher管理平台,建议配置至少4核CPU、8GB内存。
  • K8s Master节点:一台服务器,作为K8s集群的控制平面,负责集群管理、调度等核心功能,建议配置至少2核CPU、4GB内存。
  • K8s Node节点:两台服务器,作为K8s集群的工作节点,负责运行容器化应用,建议配置至少2核CPU、4GB内存。

2. 网络规划与配置

  • IP地址分配 :为每台服务器分配静态IP地址,避免因IP变动导致服务异常。例如:
    • Rancher Server:192.168.149.131
    • K8s Master节点:192.168.149.128
    • K8s Node节点1:192.168.149.129
    • K8s Node节点2:192.168.149.130
  • 防火墙设置 :开放必要的端口,确保服务器之间能够正常通信。主要端口包括:
    • Rancher Server:80(HTTP)、443(HTTPS)
    • K8s Master节点:6443(K8s API Server)、2379-2380(etcd)、10250(kubelet API)
    • K8s Node节点:10250(kubelet API)、30000-32767(NodePort服务)

注:防火墙我本人是直接关了的(systemctl stop firewalld),下面部署节点时我会详细给出的。

3. 基础环境搭建

虚拟机连接建议

建议虚拟机开机后,使用Xshell等终端工具连接四台服务器。可以通过Xshell的"撰写栏"功能实现批量操作:

  • 打开Xshell,连接所有四台服务器会话
  • 点击左下角"全部会话"按钮
  • 在撰写栏中输入命令,所有会话窗口将同步执行

然后再左下角可以选择全部会话就可以,在撰写栏里面输入然后所以四个窗口都可以执行输入的操作。

四、四台服务器相同的操作

1. 配置YUM源(使用阿里云镜像)

bash 复制代码
# 进入YUM源配置目录
cd /etc/yum.repos.d/

# 创建备份目录并移动原有repo文件
mkdir repo_bak
mv *.repo repo_bak/

# 下载阿里云CentOS 7基础源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 清理并重建缓存
yum clean all
yum makecache

2. 安装常用工具

bash 复制代码
# 安装基础工具包
yum install -y wget vim net-tools yum-utils

# 验证网络连接
ifconfig

3. 配置Docker CE源

bash 复制代码
# 添加Docker CE官方源(阿里云镜像)
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 修改源地址为阿里云镜像
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

# 重建缓存
yum makecache

4. 安装Docker CE

bash 复制代码
# 安装Docker CE
yum install -y docker-ce

# 验证安装版本
docker --version

5. 配置Docker

bash 复制代码
# 进入Docker配置目录(如需配置镜像加速等)
cd /etc/docker/

# 编辑daemon.json文件(示例配置,实际内容根据需求填写)
vim daemon.json
# 典型配置内容(示例):
# {
#   "registry-mirrors": ["https://<your-mirror>.mirror.aliyuncs.com"]
# }

# 启动并设置开机自启
systemctl start docker
systemctl enable docker

# 重新加载配置并重启
systemctl daemon-reload
systemctl restart docker

6. 配置时间同步(Chrony)

bash 复制代码
# 编辑时间同步配置文件(实际内容根据需求填写)
vim /etc/chrony.conf
# 典型配置内容(示例):
# server ntp.aliyun.com iburst


pool 192.168.149.131 iburst

driftfile /var/lib/chrony/drift

makestep 1.0 3

rtcsync

allow 192.168.149.0/24

local stratum 10


keyfile /etc/chrony.keys

leapsectz right/UTC

logdir /var/log/chrony


#意思是都跟131这台服务器的时间同步





# 重启服务并强制同步
systemctl restart chronyd.service --now
chronyc -a makestep

# 验证同步状态
chronyc sourcestats -v

7. 配置主机名与hosts文件

bash 复制代码
# 编辑hosts文件(根据实际IP规划填写)
vim /etc/hosts
# 示例内容:
 192.168.149.131 rancher
 192.168.149.128 k8s-master-01
 192.168.149.129 k8s-node-02
 192.168.149.130 k8s-node-03


# 设置主机名(根据实际规划修改)
nmtui-hostname  # 或使用 hostnamectl set-hostname <your-hostname>

#会跳出显示款删除原来的名字改成和hosts上一样的

8. 禁用Swap分区

bash 复制代码
# 方法一:临时禁用Swap
swapoff -a

# 方法二:永久禁用(注释掉fstab中的swap行)
sed -i '/swap/s/^/#/' /etc/fstab


上面指令就是去/etc/fstab

# 注销掉最后一行的
/dev/mapper/centos-swap swap                    swap    defaults        0 0


# 我用的是第二个方法永久禁用

9. 配置网络(静态IP)

bash 复制代码
# 配置静态IP(根据实际网卡名称修改,示例为ens33)
nmcli con mod ens33 ipv4.addresses 192.168.149.131/24  # 修改为实际IP(换成每个服务器的ip)
nmcli con mod ens33 ipv4.gateway 192.168.149.2         # 修改为实际网关
nmcli con mod ens33 ipv4.dns 8.8.8.8                   # 修改为实际DNS
nmcli con mod ens33 ipv4.method manual
nmcli con up ens33

# 验证网络配置
ip a

10. 配置Bash自动补全

bash 复制代码
# 安装bash-completion
yum install -y bash-completion

# 下载Docker命令补全脚本
curl -L https://raw.githubusercontent.com/docker/cli/master/contrib/completion/bash/docker -o /etc/bash_completion.d/docker
chmod +x /etc/bash_completion.d/docker

# 配置自动加载
echo -e '\n# Docker command completion\nif [ -f /etc/bash_completion.d/docker ]; then\n    source /etc/bash_completion.d/docker\nfi' >> ~/.bashrc

# 使配置生效
source /etc/bash_completion.d/docker
source ~/.bashrc

11. 重启服务器

bash 复制代码
# 重启使所有配置生效
reboot

五、Rancher服务器额外操作

在完成上述基础操作后,在Rancher服务器上执行以下额外操作:

1. 拉取Rancher镜像

本人之前用过2.5版本的,所以就习惯用2.5版本的,也可拉取最新稳定版的

bash 复制代码
# 拉取指定版本的Rancher镜像(示例为v2.5.2)
docker pull rancher/rancher:v2.5.2

# 查看已拉取的镜像
docker images

2. 安装Docker命令补全(增强版)

如果docker指令补全没有生效

bash 复制代码
# 安装Docker CE的bash补全包
yum install -y docker-ce-bash-completion

# 验证安装
rpm -qa | grep bash-completion
ls -la /etc/profile.d/bash_completion.sh

3. 启动Rancher Server

bash 复制代码
# 创建数据目录
mkdir -p /data/rancher_data

# 启动Rancher Server容器
docker run -d \
  --name=rancher-server \
  --restart=unless-stopped \
  -p 80:80 -p 443:443 \
  --privileged \
  -v /data/rancher_data:/var/lib/rancher \
  rancher/rancher:v2.5.2

# 验证容器状态
docker ps

4.浏览器访问rancher

浏览器输入:http://192.168.149.131

可能会提示网站不安全,点击高级,继续访问就可以了

设置访问URL

进去后效果

六、Rancher上添加集群操作

1.添加集群

2.选择想要的(如下选择自定义)

3.输入集群子以及需要的设置,不要的其他设置就默认就好,然后点击下一步

4.创建master节点

复制那段到master节点服务器上运行

注意:

注意:

运行前先关闭防火墙

bash 复制代码
# 临时关闭防火墙(开机会自启)
systemctl stop firewalld

# 查看防火墙状态
systemctl status firewalld


#永久关闭(开机也不会自启)
systemctl disable firewalld

5.创建node节点

等待刚刚创建的master节点状态变成Active后,点击编辑集群

6.在node节点上运行

复制下面那段分别在想要成为node节点的服务器上运行(只选择worker就行)

7.完成添加

七、master节点上操作

1.配置Kubernetes软件源(Master节点专属操作)

bash 复制代码
# 创建Kubernetes官方软件源配置文件
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg \
       https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

操作说明

  • 该配置将系统软件源指向阿里云Kubernetes镜像仓库,加速kubectl、kubelet等核心组件的安装
  • 双GPG密钥验证确保软件包来源安全可靠
  • 配置完成后可通过yum repolist验证软件源是否生效

2.安装与配置kubectl命令行工具

bash 复制代码
# 下载最新稳定版kubectl(自动识别版本)
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

# 赋予执行权限并移动到系统路径
chmod +x kubectl
mv kubectl /usr/local/bin/

# 验证安装版本(需显示客户端版本和服务端版本)
kubectl version --client

操作说明

  • kubectl是K8s的核心管理工具,通过"三步安装法"快速完成部署
  • 版本验证需同时显示客户端(Client)和服务端(Server)版本,证明已成功连接集群
  • 生产环境建议固定版本安装(如curl -LO https://dl.k8s.io/release/v1.28.0/bin/linux/amd64/kubectl

3.配置kubeconfig访问凭证

bash 复制代码
# 创建存放目录
mkdir ~/.kube

# 手动配置示例(当需要自定义配置时)
vim ~/.kube/config

具体配置文件可在Rancher上复制下来如下图片:

4.集群状态验证与基础操作

bash 复制代码
# 查看集群节点状态(应全部显示Ready)
kubectl get nodes

# 查看所有命名空间Pod运行状态(含详细信息)
kubectl get pod -o wide -A

# 示例:查看default命名空间Pod详情
kubectl get pod -n default

操作说明

  • kubectl get nodes是验证集群健康的核心命令,所有节点需处于Ready状态
  • -o wide参数展示Pod的IP、节点位置等扩展信息
  • -A参数表示查看所有命名空间(Namespace)的资源
  • 典型健康状态应显示:
bash 复制代码
NAME        STATUS   ROLES                  AGE   VERSION
k8s-master-01  Ready    control-plane,etcd     10d   v1.19.15
k8s-node-02    Ready    worker                 10d   v1.19.15
k8s-node-03    Ready    worker                 10d   v1.19.15

5.进阶配置建议(生产环境必备)

这步只是建议,我实际上没有操作

1. 配置kubectl自动补全
bash 复制代码
# 启用Bash自动补全功能
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrc
2. 安装helm包管理器
bash 复制代码
# 添加Helm仓库并安装
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
helm repo add stable https://charts.helm.sh/stable/
3. 配置集群监控组件
  • 通过Rancher UI安装Prometheus+Grafana监控栈
  • 配置Alerting规则实现故障自动告警
  • 启用集群日志收集(如Elasticsearch+Fluentd+Kibana方案)

七、注意事项

防火墙设置

  • 在生产环境中,不建议直接关闭防火墙。应根据实际需求,精确开放必要的端口,以保障服务器安全。例如,仅开放 Rancher Server、K8s Master 节点和 K8s Node 节点所需的端口,避免不必要的端口暴露增加安全风险。
  • 若选择关闭防火墙进行测试,在测试完成后务必重新开启,并合理配置防火墙规则。

镜像源选择

  • 文中使用了阿里云的镜像源,这在国内网络环境下能提供较快的下载速度。但在其他地区或特定网络环境下,可能存在速度不理想的情况。此时,可根据实际情况选择其他可靠的镜像源,如官方镜像源或其他合适的第三方镜像源。

版本兼容性

  • 在安装 Rancher、Docker、Kubernetes 等组件时,要注意各组件之间的版本兼容性。不同版本的组件可能存在功能差异或兼容性问题,可能导致部署失败或运行不稳定。例如,Rancher 不同版本对 Kubernetes 版本的支持范围不同,在部署前需查阅官方文档,确保所选版本相互兼容。

数据备份

  • Rancher Server 的数据存储在指定的数据目录(如本文中的 /data/rancher_data)中。为防止数据丢失,应定期对该目录进行备份。备份方式可以是定期将数据目录复制到其他存储设备或使用专业的备份工具进行备份。
  • 对于 Kubernetes 集群中的重要数据,如应用配置、持久化数据等,也应制定相应的备份策略,确保在出现故障或数据损坏时能够快速恢复。

安全策略

  • 在多云环境中,安全策略的统一实施至关重要。除了文中提到的基于角色的访问控制(RBAC)、与 LDAP 等企业身份系统集成以及使用 Open Policy Agent(OPA)策略引擎定义全局安全规则外,还应关注网络安全、数据安全等方面。例如,配置网络策略限制 Pod 之间的网络访问,对敏感数据进行加密存储等。
  • 定期对系统进行安全漏洞扫描和修复,及时更新系统和组件的安全补丁,以保障系统的安全性。
  1. 资源监控与优化
    • 虽然 Rancher 内置了 Prometheus + Grafana 监控栈,但应根据实际业务需求,合理配置监控指标和告警规则。避免监控指标过多导致系统资源消耗过大,同时确保重要的业务指标能够及时告警。
    • 定期分析集群资源使用情况,根据分析结果对集群进行优化。例如,调整节点资源分配、优化应用部署策略等,以提高集群的资源利用率和性能。

八、总结

本文详细介绍了在云计算与容器化技术背景下,使用 Rancher 进行 Kubernetes(K8s)集群管理的相关内容。首先阐述了企业在容器化进程中面临的跨云、跨数据中心 K8s 集群管理挑战,以及 Rancher 作为解决这些挑战的关键工具的重要性和核心优势,包括多集群管理、简化 K8s 部署、安全与合规保障以及 DevOps 协作等方面的功能。

通过本文的介绍,可以了解到从环境准备到集群部署再到基础配置的完整流程,为企业在实际生产环境中使用 Rancher 管理 K8s 集群提供了详细的参考。同时,文中提到的注意事项也有助于在实际操作过程中避免一些常见问题,确保部署和管理的顺利进行。

相关推荐
拾忆,想起28 分钟前
Dubbo本地存根与本地伪装实战指南:提升微服务容错能力的利器
前端·微服务·云原生·架构·dubbo·safari
_OP_CHEN29 分钟前
【Linux系统编程】(十)从入门到精通!Linux 调试器 gdb/cgdb 超全使用指南,程序员必备调试神器
linux·运维·c/c++·linux开发工具·调试器·gdb/cgdb
莫忘初心丶29 分钟前
ubuntu24使用docker搭建rabbitmq
docker·rabbitmq
mr_orange_klj32 分钟前
K8S的loadbalancer类型service的AI问答(豆包)
云原生·容器·kubernetes
todoitbo32 分钟前
openEuler 云原生实战:使用 Docker Compose 快速部署企业应用
docker·云原生·容器·openeuler
2501_9160088932 分钟前
App 上架服务行业的实际工作流程与工具选择 从人工代办到跨平台自动化的转变
android·运维·ios·小程序·uni-app·自动化·iphone
杰克逊的日记33 分钟前
k8s弹性伸缩
云原生·容器·kubernetes
老条码新物联数字派33 分钟前
【学习Linux】 乌班图(UBuntu)和Linux
linux·运维·ubuntu
Lynnxiaowen34 分钟前
今天继续学习Kubernetes内容namespace资源对象和pod简介
linux·运维·学习·容器·kubernetes