用 Rancher 管理 K8s 集群:从导入到验证的完整操作
Rancher 管理 K8s 集群的核心思路是:让 Rancher 通过部署一个 Agent 与目标集群建立通信,之后在 Rancher 面板里统一查看节点、工作负载和日志。
本文按“导入现有集群”这条最常见路径展开,适合已经装好 Rancher、手上有一个可用 K8s 集群的零基础用户。
开始前需要确认的几件事
先检查 Rancher 和目标集群是否满足基本条件,避免导入到一半卡住。
- Rancher 已部署并能正常登录,浏览器能打开 Rancher 面板地址。
- 目标 K8s 集群的
kubectl可以正常执行,例如kubectl get nodes能返回节点列表。 - 执行导入操作的账号对目标集群有足够权限,通常需要
cluster-admin级别的 kubeconfig。 - 目标集群节点能访问 Rancher 的地址和端口,反向代理、防火墙或安全组不要拦截。
- 建议先确认 Rancher 与目标集群的 Kubernetes 版本差距不要过大,版本兼容性以 Rancher 官方支持矩阵为准。
如果以上条件都满足,就可以进入导入流程。
在 Rancher 面板导入现有集群
登录 Rancher 面板,按下面的路径操作:
- 进入左上角菜单,选择
集群管理。 - 点击
导入已有或Import Existing。 - 输入集群名称,例如
prod-k8s,选择好集群所属的项目或环境。 - 点击
创建,页面会显示一段用于注册集群的命令。
这段命令通常包含 kubectl apply 和 Rancher Server 的地址。
复制它,回到目标集群的终端执行:
kubectl apply -f https:///v3/import/xxxxxx.yaml
执行后,Rancher 会创建 cattle-system 命名空间并部署 cattle-cluster-agent。
可以用下面的命令观察状态:
kubectl -n cattle-system get pods -w
当 cattle-cluster-agent 的状态变为 Running,并且 Rancher 面板里集群状态变为 Active,说明导入成功。
导入失败时先看这几个位置
导入卡在 Waiting 或报错,多数出在通信和证书上,按顺序排查:
- Agent Pod 是否启动:
kubectl -n cattle-system get pods看是否有CrashLoopBackOff或一直Pending。 - 节点能否访问 Rancher:在目标集群节点上执行
curl -vk https://,确认网络和证书是否正常。 - 证书是否被信任:如果 Rancher 使用自签名证书,导入命令可能需要带上
--insecure或提前把 CA 证书加入系统信任,具体以实际证书配置为准。 - 反向代理是否放行:Rancher 走 WebSocket 通信,Nginx 等代理需要允许
Upgrade和Connection头,否则面板会一直显示未连接。 - 集群 ID 是否重复:同一套集群不要重复导入到多个 Rancher,容易产生状态冲突。
排查时优先看 Agent Pod 日志:
kubectl -n cattle-system logs -l app=cattle-cluster-agent
导入后怎么验证管理是否正常
集群状态变成 Active 只是第一步,建议再确认几个关键功能:
- 在 Rancher 里进入该集群,打开
节点页面,看节点列表和资源使用情况是否正常显示。 - 进入
工作负载,确认已有 Deployment、Pod 能被读取,状态和kubectl get pods -A一致。 - 打开
日志或Kubectl Shell,能正常执行只读命令,例如kubectl get ns。 - 如果启用了监控或告警,观察几分钟,确认没有持续报错。
验证通过后,就可以用 Rancher 统一管理多个 K8s 集群,减少反复切换 kubeconfig 的麻烦。
常见疑问
导入后能直接删除原集群吗? 不能。
Rancher 只是接管管理入口,底层 K8s 集群仍然独立运行,删除操作要在目标集群或对应云平台执行。
Rancher 面板显示 Active,
但看不到 Pod 列表怎么办? 先检查当前账号在 Rancher 里的项目权限,
再确认目标集群 RBAC 是否允许 Agent 读取对应命名空间。
可以同时用 kubectl 和 Rancher 管理同一个集群吗? 可以。
两种方式操作的是同一套 API,但建议避免在同一资源上同时做冲突性变更。
导入命令执行报证书错误如何处理? 确认 Rancher 地址和证书是否匹配,自签名证书环境需要按实际配置信任 CA,不要直接关闭校验后长期使用。
整体来说,Rancher 管理 K8s 集群的关键在于 Agent 能否正常通信。
先把网络和证书这两步确认好,再按面板提示导入,后续的节点、工作负载和日志管理都会顺很多。