k8s(十二)Rancher详解

文章目录


前言

一、什么是Rancher?

Rancher 是一个开源的容器管理平台 ,由SUSE公司开发维护,核心功能是简化Kubernetes(K8s)集群的部署、管理、监控和运维。它不仅支持对单个K8s集群的可视化操作,更专注于多集群管理,能统一管控分布在不同环境(物理机、云厂商、边缘设备等)的多个K8s集群,同时提供身份认证、权限控制、应用商店、CI/CD集成等全链路功能。

二、为什么要使用Rancher?

Rancher的核心价值在于解决K8s在规模化和复杂化场景下的管理难题,主要体现在:

  1. 多集群统一管控

    对于企业级用户(尤其是跨云、混合云或边缘部署场景),可能需要管理数十甚至上百个K8s集群。Rancher可以将这些集群纳入同一控制台,统一进行配置分发、版本升级、监控告警,避免逐个集群操作的繁琐。

  2. 简化K8s使用门槛

    即使是对K8s命令不熟悉的运维或开发人员,也能通过Rancher的图形界面完成集群部署、Pod调度、资源配置等操作,降低学习成本。

  3. 企业级安全与合规

    集成了RBAC(基于角色的访问控制)、多租户隔离、审计日志、镜像安全扫描等功能,满足企业对权限管理和合规性的要求。

  4. 生态兼容性强

    支持对接各类存储、网络插件,以及Prometheus、Grafana等监控工具,同时提供应用商店(Helm Chart),方便快速部署中间件或业务应用。

  5. 支持边缘与混合云场景

    针对边缘计算场景优化,可轻松管理分布在偏远地区的小型K8s集群(如k3s),适合物联网、制造业等场景。

三、为什么不选kube-board、k9s、kubesphere、k3s,而选Rancher?

首先需要明确:这些工具并非完全对立,部分工具与Rancher定位不同,甚至可以配合使用。差异主要体现在功能范围适用场景

  1. kube-board / k9s:轻量可视化工具,而非完整管理平台

    • kube-board 是单个K8s集群的轻量级Web可视化工具,功能简单(仅展示资源状态、日志等),不支持多集群管理或企业级安全功能。
    • k9s 是命令行界面(CLI)的K8s管理工具,适合熟悉命令行的用户快速操作单个集群,但缺乏图形界面和全局管控能力。
      相比之下,Rancher是全功能平台,覆盖从集群部署到运维的全流程,而非单一的可视化工具。
  2. KubeSphere:功能类似但生态整合度不同

    KubeSphere 也是面向K8s的开源管理平台,与Rancher定位接近,但差异在于:

    • Rancher 对多集群管理的支持更成熟,尤其在跨云、混合云场景下的兼容性更强(支持AWS EKS、Azure AKS等公有云K8s服务)。
    • Rancher 与SUSE的企业级服务(如Rancher Prime)结合更紧密,适合需要商业支持的企业。
      两者选择更多是生态偏好,而非绝对优劣。
  3. k3s:轻量级K8s发行版,与Rancher是"互补关系"

    k3s 是 Rancher 公司开发的轻量级K8s(针对边缘和资源受限环境),本质是K8s的简化版本 ,而Rancher是管理平台。实际上,Rancher 对k3s的支持非常好,很多场景下会用Rancher管理多个k3s集群,两者是配合使用的关系,而非替代。

四、何时优先选Rancher?

如果你的需求是:

  • 管理多个K8s集群(跨环境、跨云);
  • 需要企业级安全、权限和合规功能;
  • 希望简化K8s全生命周期管理(从部署到运维);
  • 涉及边缘计算或混合云场景;

那么Rancher比单一的可视化工具(kube-board、k9s)或专注单集群的平台更合适。而如果只是管理单个集群、追求轻量或命令行效率,其他工具可能更简洁。

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一、Rancher 详解

1.1 Rancher 平台简介

Rancher 是一款开源的企业级多集群 Kubernetes 管理平台,核心价值在于实现 Kubernetes 集群在混合云与本地数据中心的集中化部署与管理。它能保障集群安全性,加速企业数字化转型进程,目前已有超过 40000 家企业每日通过 Rancher 提升创新效率。

其官方文档地址为:https://docs.rancher.cn/,可获取最新功能说明与技术支持。

1.2 Rancher 与 Kubernetes 的区别

Rancher 与 Kubernetes(简称 k8s)虽同属容器调度与编排领域,但定位与功能存在关键差异,具体对比如下:

对比维度 Rancher Kubernetes
核心定位 多集群管理平台 单集群容器调度编排系统
管理范围 可管理应用容器,更核心是管理 k8s 集群 仅负责单集群内容器的调度、编排与资源管理
易用性 Rancher 2.x 底层基于 k8s 调度引擎,通过封装简化操作,用户无需深入理解 k8s 概念即可部署容器 需用户掌握 Pod、Deployment、Service 等核心概念,操作门槛较高

二、Rancher 安装与配置实操

2.1 实验环境准备

本次实验涉及 4 个节点,节点角色、名称及 IP 地址固定,需提前确认网络互通,具体信息如下:

  • 控制节点(master01):192.168.10.120
  • 工作节点(node01):192.168.10.126
  • 工作节点(node02):192.168.10.127
  • Rancher 节点(rancher):192.168.10.128

2.2 Rancher 安装步骤

2.2.1 下载所需镜像

  1. 在 master01 节点下载 rancher-agent 镜像,执行命令:
bash 复制代码
docker pull rancher/rancher-agent:v2.5.7
  1. 在 rancher 节点下载 rancher 主镜像,执行命令:
bash 复制代码
docker pull rancher/rancher:v2.5.7

2.2.2 启动 Rancher 容器

在 rancher 节点执行启动命令,配置容器自重启、端口映射与权限,命令如下:

bash 复制代码
docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged --name rancher rancher/rancher:v2.5.7
  • 参数说明:--restart=unless-stopped 表示容器退出时自动重启(Docker 守护进程启动时已停止的容器除外);-p 80:80 -p 443:443 映射 HTTP(80 端口)与 HTTPS(443 端口);--privileged 赋予容器特权模式,确保正常运行;--name rancher 为容器命名便于管理。

2.2.3 验证 Rancher 容器状态

执行命令查看容器是否正常启动,若状态为"Up"则表示启动成功:

bash 复制代码
docker ps -a|grep rancher

2.3 Rancher 平台登录

  1. 容器启动后需等待 1-2 分钟,待服务初始化完成,在浏览器访问 Rancher 节点 IP:http://192.168.10.128
  2. 由于未使用授信 SSL 证书,浏览器会提示安全报警,直接忽略并继续访问即可。
  3. 若登录页面为英文,点击页面右下角的语言选项,切换为"中文",提升操作便捷性。

2.4 导入已存在的 Kubernetes 集群

2.4.1 生成集群导入命令

  1. 在 Rancher 首页点击【添加集群】,选择【导入】选项。
  2. 【集群名称】设置为"k8s-cluster",点击【创建】按钮。
  3. 在生成的导入命令中,选择第三条"绕过证书检查"的命令,复制该命令备用(适用于测试环境,生产环境需配置合法证书)。

2.4.2 在 k8s 控制节点执行导入命令

  1. 登录 k8s 控制节点(master01),粘贴并执行复制的导入命令:
bash 复制代码
curl --insecure -sfL https://192.168.10.128/v3/import/dgtcmxkwpz6hx8c4mdhmb279vq4qqhpm2d7fdw9qrhhvcsmzmg94jc_c-m-txttqx6n.yaml | kubectl apply -f -
  1. 若第一次执行报错,可再次执行命令,通常为网络延迟导致的资源拉取问题。

2.4.3 验证集群导入结果

  1. 执行命令查看命名空间,确认 Rancher 相关命名空间(cattle-system、cattle-impersonation-system )已创建:
bash 复制代码
kubectl get ns
  1. 查看 cattle-system 命名空间下的 Pod 状态,确保 rancher 集群代理正常运行:
bash 复制代码
kubectl get pods -n cattle-system -o wide
  1. 查看 fleet-system 命名空间下的 Pod 状态,确保 fleet 代理正常运行:
bash 复制代码
kubectl get pods -n fleet-system -o wide

预期输出示例:

复制代码
NAME                           READY   STATUS    RESTARTS   AGE    IP           NODE     NOMINATED NODE   READINESS GATES
fleet-agent-55bfc495bd-m9qjt   1/1     Running   0          6m8s   10.244.1.3   node01   <none>           <none>

2.5 部署 Rancher 监控系统

  1. 在 Rancher 集群管理页面,点击【启用监控以查看实时监控】选项。
  2. 【监控组件版本】选择"0.2.1",其他参数保持默认配置即可。
  3. 点击【启用监控】,监控系统启动过程较长,需等待约 10 分钟,期间可刷新页面查看进度。

三、使用 Rancher 仪表盘管理 Kubernetes 集群(以 Nginx 服务为例)

3.1 创建命名空间(Namespace)

命名空间用于隔离集群内的资源,本次创建"dev"命名空间用于部署测试环境的 Nginx 服务:

  1. 在 Rancher 仪表盘左侧菜单点击【Namespaces】,右侧点击【Create】。
  2. 【Name】输入"dev",【Description】可根据需求自定义(如"开发环境资源隔离"),非必填项。
  3. 点击右下角【Create】,完成命名空间创建。

3.2 创建 Deployment 资源

Deployment 用于管理 Pod 的创建与副本数量,确保服务稳定运行:

  1. 左侧菜单点击【Deployments】,右侧点击【Create】。
  2. 基础配置:【Namespace】下拉选择"dev",【Name】输入"nginx-dev",【Replicas】输入"3"(表示创建 3 个 Pod 副本)。
  3. 容器配置:点击中间选项【Container】,【Container Image】输入"nginx:1.14"(指定 Nginx 镜像版本),【Pull Policy】选择"IfNotPresent"(本地有镜像时不重复拉取,节省资源)。
  4. Pod 标签配置:在【Pod Labels】下点击【Add Label】,【Key】输入"app",【Value】输入"nginx"(用于关联后续的 Service 资源)。
  5. 资源标签配置:点击中间选项【Labels and Annotations】,点击【Add Label】,【Key】输入"app",【Value】输入"nginx"(便于资源分类与筛选)。
  6. 点击右下角【Create】,完成 Deployment 创建。

3.3 创建 Service 资源

Service 用于暴露 Deployment 管理的 Pod,提供固定访问入口,本次选择"Node Port"类型(通过节点 IP+端口访问服务):

  1. 左侧菜单点击【Services】,右侧点击【Create】,选择【Node Port】类型。
  2. 基础配置:【Namespace】下拉选择"dev",【Name】输入"nginx-dev"。
  3. 端口配置:【Port Name】输入"nginx",【Listening Port】输入"80"(Service 监听端口),【Target Port】输入"80"(Pod 内 Nginx 服务的端口),【Node Port】输入"30180"(节点暴露的端口,需在 30000-32767 范围内)。
  4. 关联 Pod:点击中间选项【Selectors】,【Key】输入"app",【Value】输入"nginx"(与 Deployment 中 Pod 的标签一致,实现自动关联)。
  5. 点击右下角【Create】,完成 Service 创建。

3.4 验证 Nginx 服务可用性

  1. 在 Rancher 仪表盘的【Services】页面,点击"nginx-dev"服务,查看是否已成功关联 3 个 Pod(与 Deployment 副本数一致)。
  2. 在浏览器输入"节点 IP:30180"(如 192.168.10.120:30180),若能正常显示 Nginx 欢迎页面,说明服务部署成功并可正常访问。

总结

通过本文的介绍与实操,我们系统梳理了 Rancher 的核心价值、适用场景,完成了从环境准备、平台安装到集群导入、服务部署的全流程操作,最终通过 Nginx 服务案例验证了 Rancher 管理 Kubernetes 集群的便捷性。

Rancher 的优势不仅在于降低 K8s 使用门槛,更在于其对多集群、混合云及边缘场景的深度适配,能为企业提供从集群部署到运维监控的一站式解决方案。对于后续使用,可进一步探索其高级功能,例如通过应用商店快速部署中间件、配置 CI/CD 流水线实现自动化交付,或利用审计日志与镜像扫描强化集群安全,让 Rancher 更好地支撑业务规模化发展。

相关推荐
lichenyang4532 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4532 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4532 天前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
运维开发故事5 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes
Patrick_Wilson7 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
探索云原生7 天前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes
云恒要逆袭7 天前
运行你的第一个Docker容器
后端·docker·容器
Java之美8 天前
一次k8s升级引发的DevicePlugin注册失败
云原生·kubernetes
程序员老赵9 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程