594_Rancher集群管理
一句话概述:Rancher 是 SUSE 开源的 Kubernetes 多集群管理平台,提供统一的 Web UI 管理多个 K8s 集群(本地、云上、边缘),一键创建集群、权限管理、应用商店、监控告警,是企业级 K8s 管理的标准方案。
核心知识点表
| 概念 | 白话解释 |
|---|
| Rancher Server | 管理平面,提供 Web UI 和 API 来管理所有集群 |
| RKE2 | Rancher Kubernetes Engine 2,SUSE 官方 K8s 发行版(安全加固) |
| K3s | 轻量级 K8s,用于边缘和资源受限环境 |
| Fleet | Rancher 内置的 GitOps 引擎,大规模管理集群配置 |
| Downstream Cluster | 下游集群,被 Rancher 管理的业务 K8s 集群 |
| Catalog/Apps | 应用商店,基于 Helm Chart 的应用市场 |
| RBAC | 基于角色的访问控制,管理用户权限 |
安装配置
用 Docker 快速体验
# 最简安装(单节点,适合测试)
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \ # HTTP 和 HTTPS 端口
--privileged \ # 需要特权模式
--name rancher \
rancher/rancher:v2.14-head # Rancher 最新稳定版
# 等待启动(约 2-3 分钟)
# 获取初始密码
docker logs rancher 2>&1 | grep "Bootstrap Password:"
# 访问 https://localhost 输入初始密码设置新密码
用 Helm 生产部署(推荐)
# 前提:已有一个 K8s 集群(推荐 RKE2 或 K3s)
# 1. 安装 cert-manager(处理 TLS 证书)
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.17.0/cert-manager.crds.yaml
helm repo add jetstack https://charts.jetstack.io # 添加仓库
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \ # 安装到 cert-manager 命名空间
--create-namespace # 自动创建命名空间
# 2. 安装 Rancher
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm install rancher rancher-stable/rancher \
--namespace cattle-system \ # Rancher 命名空间
--create-namespace \
--set hostname=rancher.example.com \ # 访问域名
--set bootstrapPassword=admin123 \ # 初始密码
--set replicas=3 # 3 副本高可用
# 3. 等待部署完成
kubectl -n cattle-system rollout status deploy/rancher
# 访问 https://rancher.example.com
创建下游集群
# 方法1:Web UI 创建(推荐)
# Rancher UI → 集群管理 → 创建
# 选择:
# - 自定义(Custom):在已有服务器上部署
# - Amazon EKS / Azure AKS / Google GKE:托管云集群
# - RKE2 / K3s:Rancher 官方发行版
# 方法2:导入现有集群
# Rancher UI → 集群管理 → 导入
# 在目标集群运行生成的 kubectl apply 命令即可
基本使用
Web UI 管理
# Rancher UI 核心功能:
# 1. 集群仪表盘 → 查看所有集群的资源使用和健康状态
# 2. 工作负载 → 管理 Deployment、StatefulSet、DaemonSet
# 3. 服务发现 → 管理 Service、Ingress
# 4. 存储 → 管理 PV、PVC、StorageClass
# 5. 配置 → 管理 ConfigMap、Secret
# 6. 监控 → 内置 Prometheus + Grafana
# === 常用操作 ===
# 部署应用:工作负载 → 创建 → 填写镜像名、端口、环境变量
# 扩缩容:工作负载 → 选择 Deployment → 修改副本数
# 查看日志:工作负载 → Pod → 查看日志
# 进入终端:工作负载 → Pod → 执行 Shell
kubectl 通过 Rancher
# 方法1:从 Rancher UI 下载 kubeconfig
# 集群 → 右上角 → 下载 KubeConfig
# 方法2:使用 Rancher CLI
# 安装 Rancher CLI
wget https://github.com/rancher/cli/releases/latest/download/rancher-linux-amd64-v2.14.0.tar.gz
tar xzf rancher-linux-amd64-*.tar.gz
sudo mv rancher-*/rancher /usr/local/bin/
# 登录
rancher login https://rancher.example.com --token YOUR_API_TOKEN
# API Token 在 Rancher UI → 用户头像 → 账户与API密钥 中创建
# 切换集群
rancher kubectl config get-contexts # 列出上下文
rancher kubectl get nodes # 查看节点
用户和权限管理
# Rancher 支持多种认证方式:
# - 本地用户(Rancher 内置)
# - LDAP / Active Directory
# - GitHub / GitLab OAuth
# - SAML(Okta、PingIdentity 等)
# === RBAC 角色 ===
# 全局角色:
# Admin → 超级管理员,管理所有集群
# Standard User → 普通用户,可创建集群
# User-Base → 基础用户,只能查看分配的资源
# 集群角色:
# Cluster Owner → 集群管理员
# Cluster Member → 集群成员
# Read Only → 只读
# 项目角色:
# Project Owner → 项目管理员(管理命名空间内的资源)
# Project Member → 项目成员
# Read Only → 只读
高级用法
Fleet GitOps(大规模管理)
# fleet.yaml — Fleet GitOps 配置
# 放在 Git 仓库根目录
defaultNamespace: production # 默认命名空间
helm:
releaseName: my-app # Helm Release 名
values:
replicaCount: 3 # 副本数
image:
tag: v2.0 # 镜像版本
targetCustomizations: # 按集群定制
- name: staging # 名称
clusterSelector:
matchLabels:
env: staging # 匹配标签为 staging 的集群
helm:
values:
replicaCount: 1 # staging 只要 1 个副本
# 在 Rancher UI 中配置 Fleet:
# 1. 集群管理 → 持续交付 → Git 仓库
# 2. 添加 Git 仓库 URL 和分支
# 3. 选择目标集群(可按标签选择多个)
# 4. Fleet 自动同步 Git 中的 K8s 资源到所有目标集群
应用商店(Apps & Marketplace)
# Rancher 内置应用商店,基于 Helm Chart:
# 集群 → Apps → Charts
# 常用内置应用:
# - Monitoring(Prometheus + Grafana)→ 一键部署完整监控栈
# - Logging(Fluentd + Elasticsearch)→ 日志收集
# - Istio → 服务网格
# - Longhorn → 分布式存储
# - NeuVector → 容器安全
# 添加自定义 Chart 仓库:
# 集群 → Apps → 仓库 → 创建
# 填入 Helm 仓库 URL 或 OCI 仓库地址
多集群监控
# 启用集群监控:
# 集群 → 集群工具 → Monitoring → 安装
# 自动部署 Prometheus + Grafana + Alertmanager
# 全局监控视图:
# Rancher UI 首页可以看到所有集群的:
# - CPU / 内存使用率
# - Pod 数量和状态
# - 节点健康状态
# - 告警信息
常见报错
| 报错信息 | 原因 | 解决方案 |
|---|
cluster not ready | 下游集群未注册成功 | 检查网络连通性和 agent 日志 |
certificate expired | TLS 证书过期 | 更新证书或使用 cert-manager 自动续期 |
unable to connect | Rancher Server 无法访问 | 检查防火墙和端口(80/443) |
RBAC: access denied | 用户权限不足 | 检查用户角色和项目分配 |
etcd: too many learners | etcd 集群问题 | 检查 etcd 健康状态和节点数 |
速查表
# === Rancher CLI ===
rancher login URL --token TOKEN # 登录
rancher context switch # 切换集群
rancher kubectl get nodes # 查看节点
rancher app install CHART # 安装应用
rancher cluster ls # 列出集群
# === 关键端口 ===
# 80/443 → Web UI
# 6443 → K8s API(下游集群)
# 8472 → VXLAN(Flannel 网络)
# 9345 → RKE2 注册端口
# 10254 → Ingress 健康检查
# === 关键路径 ===
# /var/lib/rancher/ → 数据目录
# /etc/rancher/ → 配置目录
# cattle-system → Rancher 核心命名空间
# fleet-default → Fleet GitOps 命名空间
# === 支持的 K8s 发行版 ===
# RKE2(推荐生产)| K3s(边缘)| EKS | AKS | GKE
同类对比
| 特性 | Rancher | Lens | KubeSphere | OpenShift |
|---|
| 类型 | 多集群管理 | 桌面 IDE | PaaS 平台 | 企业 PaaS |
| 多集群 | 原生支持 | 基本支持 | 支持 | 支持 |
| GitOps | Fleet 内置 | 无 | 无 | 有 |
| 应用商店 | Helm Chart | 无 | 内置 | OperatorHub |
| 开源 | Apache 2.0 | MIT | Apache 2.0 | 部分开源 |
| 学习曲线 | 中等 | 低 | 高 | 高 |
| 适合场景 | 多集群管理 | 开发调试 | 完整PaaS | 企业级 |
选型建议:多 K8s 集群管理首选 Rancher(功能最全、社区最大);个人开发调试用 Lens(桌面客户端好用);想要完整 PaaS 平台考虑 KubeSphere 或 OpenShift。