跨网络部署Istio多主集群如何配置实现API Server跨集群访问
AWS EC2环境Istio多集群API Server跨集群访问配置方案
按以下步骤配置即可满足Istio多主集群的API Server互访要求:
一、AWS侧网络层打通
- 同VPC部署场景:找到两个集群控制平面节点绑定的EC2安全组,添加入站规则,放通TCP 6443端口(K8s API Server默认端口),源地址段填写对端集群所有节点的私网IP段,禁止开放0.0.0.0/0避免安全风险。同时检查EC2网络ACL、节点本地防火墙(iptables/firewalld)没有拦截6443端口流量。
- 跨VPC部署场景:先完成VPC对等连接配置,在两个VPC的路由表中添加对端VPC的网段路由指向对等连接,再按上述同VPC规则配置安全组放通6443端口。优先使用私网打通方案,不建议直接把API Server暴露到公网,如果必须走公网,要在安全组中严格限制源IP为对端集群节点的公网IP。
- 如果是EKS托管集群,直接在EKS控制平面绑定的安全组中添加上述放通规则,同时在EKS API Server访问配置中,把对端集群的IP段加入允许访问的白名单。
二、K8s集群API Server监听配置
- 自建kubeadm集群场景:默认API Server可能只监听本地或单块网卡地址,登录每个集群的控制平面节点,编辑
/etc/kubernetes/manifests/kube-apiserver.yaml文件,将--advertise-address参数修改为该节点能被对端集群访问到的私网/公网IP,保存后kubelet会自动重启API Server组件生效。 - 配置完成后做连通性校验:在集群1的任意节点上执行
curl -k https://<集群2控制平面IP>:6443/version,如果能正常返回K8s版本信息,说明网络层连通性正常,同法反向校验集群2访问集群1的连通性。
三、Istio侧适配配置
- 每个集群单独创建用于多集群访问的ServiceAccount,绑定cluster-admin权限,提取该账号的访问token作为跨集群访问凭据。
- 在部署Istio控制平面、配置集群凭据时,将对端集群的API Server地址填写为之前校验通过的
https://<对端控制平面IP>:6443,不要使用默认的集群内Service地址或本地回环地址,同时挂载对应对端集群的访问token。 - 跨网络多主架构场景下,还要确保两个集群使用相同的根CA证书,东西向网关的服务地址已正确暴露给对端集群。
常见排障点
- 连通性测试超时:按顺序排查安全组规则、网络ACL、VPC路由、节点本地防火墙是否放通流量,确认API Server的监听地址配置正确。
- 连通性正常但Istio无法同步对端集群资源:检查ServiceAccount权限是否足够,访问token是否正确挂载,Istio配置中填写的clusterID是否和对端集群实际ID一致。
- 配置完成后跨集群服务访问失败:检查跨集群服务的端点是否同步到本地集群,东西向网关的安全组是否放通业务端口流量。
安全提示:API Server是K8s集群的核心管控入口,所有跨集群访问必须配置严格的IP白名单,禁止无限制暴露到公网。
内容的提问来源于stack exchange,提问作者JibinNajeeb
相关产品推荐
相关产品推荐

