我是通过docker拉取了rancher镜像v2.11.3,运行成功后,本身local的k3s也启动正常了,这时候通过页面去新增k8s,再加入管理控制节点(另一台服务器)后,页面一直提示提示:waiting for probes: calico, etcd, kube-apiserver, kube-controller-manager, kube-scheduler, kubelet
5条回答 默认 最新
檀越@新空间 2025-08-20 08:22关注上午好☀️☀️☀️️
本答案参考通义千问你遇到的问题是:在使用 Rancher UI 部署 Kubernetes(K8s)集群时,新增了管理控制节点(即 K8s 的 master 节点)后,Rancher 页面一直提示
waiting for probes: calico, etcd, kube-apiserver, kube-controller-manager, kube-scheduler, kubelet。这表明 Rancher 在等待这些关键组件的健康检查通过,但目前没有成功。
🚨 问题分析
这个错误通常由以下几种原因导致:
- 网络不通:控制节点与工作节点之间的网络连接异常。
- 证书问题:证书配置不正确或过期。
- 资源不足:CPU、内存或磁盘资源不足,导致组件无法启动。
- 镜像拉取失败:某些核心组件的镜像无法从指定仓库拉取。
- 防火墙/安全组限制:防火墙规则阻止了必要的端口通信。
- K3s 或 Rancher 版本兼容性问题。
✅ 解决方案(详细步骤)
1. 确认控制节点和工作节点的网络连通性
-
检查 IP 和端口是否可达:
- 确保控制节点和工作节点之间可以互相访问。
- 使用
ping或telnet检查目标端口(如 6443, 2379, 2380 等)是否开放。
ping <control-node-ip> telnet <control-node-ip> 6443 -
检查 DNS 解析:
- 如果使用主机名,请确保所有节点都能正确解析对方的主机名。
2. 检查 Rancher 和 K3s 的版本兼容性
- Rancher v2.11.3 是一个较旧的版本,建议升级到 v2.11.x 或更高版本,以获得更好的兼容性和稳定性。
- K3s 版本 也需要与 Rancher 兼容。推荐使用 K3s v1.23.x 或以上。
注意: 如果你使用的是 K3s 来部署集群,Rancher 可能会自动拉取并安装 K3s,但如果手动部署,需确保版本匹配。
3. 查看 Rancher 日志定位具体错误
-
登录 Rancher 容器,查看日志:
docker logs <rancher-container-id> -
查看
kube-system命名空间下的 Pod 状态:kubectl get pods -n kube-system kubectl describe pod <pod-name> -n kube-system -
如果有
CrashLoopBackOff或ImagePullBackOff,说明镜像拉取失败。
4. 检查证书和 TLS 配置
-
如果证书有问题,可能会导致
kube-apiserver无法正常启动。 -
检查
/etc/kubernetes/ssl/目录下的证书文件是否完整。 -
如果使用自签名证书,可能需要在 Rancher 中配置信任证书。
5. 检查资源限制
-
确保控制节点有足够的 CPU、内存和磁盘空间。
-
检查系统日志是否有 OOM(内存不足)警告。
dmesg | grep -i oom
6. 调整 Rancher 的探针超时时间(可选)
如果某些组件启动较慢,可以尝试延长探针的超时时间。
-
编辑 Rancher 的配置文件(如
values.yaml),添加如下内容:agent: extraArgs: - --health-check-timeout=300 -
然后重新部署 Rancher:
helm upgrade rancher rancher-latest/rancher --namespace cattle-system -f values.yaml
7. 重新初始化集群(如果上述方法无效)
如果问题持续存在,建议:
- 删除当前的 Rancher 集群。
- 清理所有相关容器和数据:
docker stop rancher docker rm rancher - 重新拉取 Rancher 镜像并运行:
docker run -d -p 80:80 -p 443:443 --name rancher rancher/rancher:v2.11.3 - 重新通过页面创建集群,选择 K3s,并确保所有节点配置正确。
🧪 示例:Rancher 创建 K3s 集群的 YAML 配置(可参考)
如果你使用的是 Rancher 的 API 或 Helm Chart 来部署,可以参考如下配置片段:
cluster: name: my-cluster type: rke2 spec: clusterConfig: etcd: count: 1 # 设置 etcd 数据目录 dir: /var/lib/etcd network: plugin: calico services: kube-api: extraArgs: enable-admission-plugins: "NamespaceLifecycle,LimitRanger"
🔁 总结
| 步骤 | 内容 | |------|------| | 1 | 检查网络连通性 | | 2 | 检查 Rancher 和 K3s 版本兼容性 | | 3 | 查看 Rancher 和 Kubernetes 日志 | | 4 | 检查证书和 TLS 配置 | | 5 | 检查资源限制 | | 6 | 调整探针超时时间(可选) | | 7 | 重新初始化集群 |
📌 最终建议
强烈建议升级 Rancher 到最新稳定版本(如 v2.12.x 或更高),并使用 K3s v1.24.x 或以上版本,以避免已知的兼容性问题。
如果你愿意提供具体的 Rancher 日志或 Kubernetes Pod 状态信息,我可以进一步帮你定位问题根源。
解决 无用评论 打赏 举报