跳转至

594_Rancher集群管理

一句话概述:Rancher 是 SUSE 开源的 Kubernetes 多集群管理平台,提供统一的 Web UI 管理多个 K8s 集群(本地、云上、边缘),一键创建集群、权限管理、应用商店、监控告警,是企业级 K8s 管理的标准方案。

核心知识点表

概念白话解释
Rancher Server管理平面,提供 Web UI 和 API 来管理所有集群
RKE2Rancher Kubernetes Engine 2,SUSE 官方 K8s 发行版(安全加固)
K3s轻量级 K8s,用于边缘和资源受限环境
FleetRancher 内置的 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 expiredTLS 证书过期更新证书或使用 cert-manager 自动续期
unable to connectRancher Server 无法访问检查防火墙和端口(80/443)
RBAC: access denied用户权限不足检查用户角色和项目分配
etcd: too many learnersetcd 集群问题检查 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

同类对比

特性RancherLensKubeSphereOpenShift
类型多集群管理桌面 IDEPaaS 平台企业 PaaS
多集群原生支持基本支持支持支持
GitOpsFleet 内置
应用商店Helm Chart内置OperatorHub
开源Apache 2.0MITApache 2.0部分开源
学习曲线中等
适合场景多集群管理开发调试完整PaaS企业级

选型建议:多 K8s 集群管理首选 Rancher(功能最全、社区最大);个人开发调试用 Lens(桌面客户端好用);想要完整 PaaS 平台考虑 KubeSphere 或 OpenShift。