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 更好地支撑业务规模化发展。

相关推荐
AI云原生5 小时前
云原生系列Bug修复:Docker镜像无法启动的终极解决方案与排查思路
运维·服务器·python·docker·云原生·容器·bug
啊啊啊啊8435 小时前
k8s lngress与安全机制
安全·容器·kubernetes
三坛海会大神5555 小时前
k8s(八)Ingress详解
云原生·容器·kubernetes
荣光波比6 小时前
K8S(十三)—— Helm3从入门到实战:简化Kubernetes应用部署与管理
云原生·容器·kubernetes
007php00713 小时前
百度面试题解析:微服务架构、Dubbo、Redis及其一致性问题(一)
redis·百度·docker·微服务·容器·职场和发展·架构
東雪蓮☆13 小时前
K8s 平滑升级
linux·运维·云原生·kubernetes
我狸才不是赔钱货16 小时前
容器:软件世界的标准集装箱
linux·运维·c++·docker·容器
三坛海会大神55518 小时前
k8s(十)Helm详解
云原生·容器·kubernetes
安卓开发者18 小时前
Docker命令大全:从入门到精通
docker·容器·eureka