Cilium Cluster Mesh集群连接失败,寻求调试建议
调试Cilium Cluster Mesh "Unable to derive service IPs automatically" 错误的思路
1. 检查集群基础网络配置
- 确认两个集群的Pod CIDR和Service CIDR无重叠:
- 查看Pod CIDR:
kubectl get nodes -o jsonpath='{.items[*].spec.podCIDR}' - 推导Service CIDR:通过集群默认kubernetes服务的IP反推范围,执行
kubectl get svc kubernetes -o jsonpath='{.spec.clusterIP}',GCP默认Service CIDR通常为10.0.0.0/20类网段,需确保两个集群的该范围完全不重叠
- 查看Pod CIDR:
- 验证GCP网络连通性:
- 若集群分属不同VPC,确认VPC peering已正确配置且处于
ACTIVE状态 - 检查防火墙规则,允许集群间Cilium通信端口(默认TCP/UDP 4244、4245、50051)的双向流量
- 若集群分属不同VPC,确认VPC peering已正确配置且处于
2. 核对Cilium安装配置
- 检查集群标识参数是否正确:
- 执行
cilium config get cluster-name cluster-id,确认两个集群的cluster-id唯一、cluster-name与安装时指定的clust1/clust2完全匹配
- 执行
- 确认Cluster Mesh组件正常运行:
- 查看cilium-operator pod状态:
kubectl get pods -n kube-system -l app=cilium-operator,确保所有pod处于Running状态 - 查看operator日志中是否有初始化Cluster Mesh的相关记录:
kubectl logs -n kube-system -l app=cilium-operator --tail=100
- 查看cilium-operator pod状态:
3. 排查Cluster Mesh同步状态
- 查看集群同步状态:
- 在每个集群执行
cilium clustermesh status,检查输出中Connected clusters是否能识别对方集群,以及Services synced的状态
- 在每个集群执行
- 定位具体错误日志:
- 在cilium-operator日志中搜索
Unable to derive service IPs相关关键词,查看是否有附加的上下文信息(如无法访问远程K8s API、权限不足等)
- 在cilium-operator日志中搜索
4. 验证跨集群K8s API访问权限
- Cluster Mesh要求cilium-operator能访问对方集群的K8s API,可通过以下方式验证:
- 进入其中一个集群的cilium-operator pod:
kubectl exec -n kube-system <cilium-operator-pod-name> -- /bin/sh - 尝试curl远程集群的API服务:
curl -k https://<remote-cluster-api-server-ip>/api/v1/services,若返回服务列表则权限与网络正常,否则需检查跨集群ServiceAccount权限或API server的访问控制
- 进入其中一个集群的cilium-operator pod:
5. 确认版本兼容性
- 检查两个集群的Cilium版本完全一致:
cilium version,确保v1.12的小版本(如v1.12.10)也相同,版本差异可能导致服务同步逻辑异常 - 确认GCP集群的K8s版本在Cilium v1.12的支持范围内(官方支持K8s v1.21~v1.24)
6. 手动指定Service CIDR(临时修复)
若自动推导始终失败,可手动配置远程集群的Service CIDR:
- 在clust1中执行:
cilium clustermesh config set --remote-cluster-id 2 --service-cidr <clust2-service-cidr> - 在clust2中执行:
cilium clustermesh config set --remote-cluster-id 1 --service-cidr <clust1-service-cidr> - 重启cilium-operator pod生效:
kubectl rollout restart deployment cilium-operator -n kube-system
内容的提问来源于stack exchange,提问作者plakic
相关产品推荐
相关产品推荐

