一、Rancher 是什么?有什么作用?
1、定义:
Rancher 是一个开源的企业级 多集群 Kubernetes(k8s)管理平台。
2、核心功能与作用:
(1)集中化管理多个 Kubernetes 集群
支持混合云(公有云 + 私有云)和本地数据中心。
无论集群部署在哪里,都可以通过 Rancher 统一纳管。
(2)简化 Kubernetes 使用门槛
用户即使不熟悉 k8s 命令或 YAML 配置,也能通过图形界面(GUI)完成应用部署、监控、扩缩容等操作。
(3)增强安全性和运维能力
提供 RBAC 权限控制、审计日志、集群备份恢复、安全策略等企业级功能。
(4) 集成生态工具
内置支持 监控(如 Prometheus/Grafana)、日志、CI/CD(通过 Fleet) 等。
📌 注意:Rancher 本身 不是容器调度器,而是 Kubernetes 的管理平台。它底层依赖于 Kubernetes,不能替代
k8s。
二、文档中各步骤详解
1、 步骤 1:安装 Rancher(在 rancher 节点 192.168.10.166 上)
bash
docker pull rancher/rancher:v2.5.7
docker run -d --restart unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7
含义:
拉取官方 Rancher 镜像(v2.5.7 版本)。
启动一个 Docker 容器运行 Rancher Server。
-p 80:80 -p 443:443:将 HTTP/HTTPS 端口暴露出来,用于 Web 访问。
--privileged:赋予容器较高权限(Rancher 需要访问主机资源)。
--restart unless-stopped:容器随 Docker 服务自启,除非手动停止。
💡 这一步是 部署 Rancher 控制台本身,相当于搭建了一个"K8s 集群的管理后台"。
2、步骤 2:登录 Rancher Web 界面
(1)浏览器访问 https://192.168.10.166
(2)忽略浏览器证书警告(因为使用的是自签名证书)
(3)可切换为中文界面
✅ 目的:进入图形化管理界面,开始纳管集群。
3、步骤 3:导入已有的 Kubernetes 集群(k8s-cluster)
操作流程:
(1)在 Rancher UI 中选择【添加集群】→【导入】
(2)填写集群名称(如 k8s-cluster),点击创建
(3)复制生成的 curl | kubectl apply 命令
(4)在 K8s 控制节点(master01) 上执行该命令:
bash
curl --insecure -sfL https://192.168.10.166/v3/import/...yaml | kubectl apply -f -
含义:
该命令会在目标 k8s 集群中部署两个关键组件:
cattle-cluster-agent(位于 cattle-system 命名空间):负责与 Rancher Server 通信。
fleet-agent(位于 fleet-system 命名空间):用于后续的 GitOps 和批量集群管理。
--insecure:跳过 SSL 证书验证(因 Rancher 使用自签名证书)。
✅ 结果:原有 k8s 集群被成功注册到 Rancher,可在 UI 中查看和管理。
4、步骤 4:启用集群监控
(1)在 Rancher UI 中点击【启用监控】
(2)选择监控版本(如 0.2.1)
(3)等待约 10 分钟(自动部署 Prometheus、Grafana 等组件)
含义:
Rancher 会自动在集群中部署 监控栈(Monitoring Stack)
启用后可查看 CPU、内存、Pod 状态等实时指标
✅ 目的:实现对集群和应用的可观测性(Observability)。
5、步骤 5:通过 Rancher 仪表盘部署 Nginx 应用(示例)
子步骤分解:
️①创建命名空间(Namespace)
名称:dev
作用:隔离开发环境资源
️

②创建 Deployment
命名空间:dev
名称:nginx-dev
副本数:3
镜像:nginx:1.14
标签(Label):app=nginx(用于 Service 关联 Pod)
📌 Deployment 负责确保 3 个 Nginx Pod 始终运行。
️





③ 创建 Service(NodePort 类型)
类型:NodePort(对外暴露服务)
端口映射:
Service 端口:80
TargetPort(Pod 端口):80
NodePort:30180(集群任意节点 IP + 30180 即可访问)
Selector:app=nginx(匹配带此标签的 Pod)



✅ 最终效果:访问 http://<任意节点IP>:30180 即可看到 Nginx 欢迎页。
