You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在浏览器访问Kubernetes私有服务?GKE场景技术问询

可以的!用VPN接入GKE私有集群是访问内部服务的标准方案

你的思路完全没问题——ClusterIP类型的服务本来就只在集群VPC内网可见,要从外部浏览器访问,必须先把你的本地机器接入到GKE所在的VPC网络中,VPN就是最常用的实现方式。下面给你两种实用的方案,分别适合个人开发和团队/企业场景:

方案1:用Cloud IAP隧道(个人开发首选,无需硬件VPN)

这是Google提供的轻量方案,不需要搭建硬件VPN设备,就能通过IAP(身份感知代理)安全地接入私有集群:

  1. 确认权限:确保你的Google账号拥有roles/iap.tunnelResourceAccessor(IAP隧道访问权限)和roles/container.clusterViewer(GKE集群查看权限)。
  2. 配置gcloud SDK:本地安装并初始化gcloud,关联到你的GCP项目,设置好集群所在的区域/可用区:
    gcloud config set project <你的项目ID>
    gcloud config set compute/zone <集群所在区域>
    
  3. 创建IAP隧道转发本地端口:因为ClusterIP只能被集群内的节点访问,我们可以通过集群节点做中转,把本地端口转发到ClusterIP服务的端口。比如你的ClusterIP服务端口是80,本地想映射到8080:
    # 先获取集群任意节点的私有IP
    kubectl get nodes -o wide
    # 启动IAP隧道
    gcloud compute start-iap-tunnel <节点私有IP> 80 --local-host-port=localhost:8080
    
  4. 访问服务:现在打开本地浏览器,访问http://localhost:8080,就能直接访问到集群内的私有ClusterIP服务了。

另外,如果你能通过IAP访问到私有集群的API Server,也可以直接用kubectl port-forward来转发端口,步骤更简单:

kubectl port-forward deployment/<你的Deployment名称> 8080:80

然后同样访问localhost:8080即可。

方案2:Cloud VPN站点到站点(适合团队/企业)

如果是团队需要多人访问私有集群,可以搭建Cloud VPN把你的本地办公网络和GCP的VPC连接起来,这样整个本地网络的设备都能直接访问集群内网的ClusterIP服务:

  1. 在GCP控制台创建Cloud VPN网关和隧道,配置本地VPN设备的参数(比如IPsec密钥、本地网段)。
  2. 确保GCP VPC的防火墙规则允许本地网段访问集群的节点和ClusterIP服务端口。
  3. 配置完成后,本地机器就能直接用ClusterIP地址在浏览器访问服务了,不需要额外的端口转发。

小提醒

  • 私有集群的API Server默认是私有IP,所以不管用哪种方案,先确保你能正常连接到API Server(比如用kubectl get nodes测试)。
  • 如果你之前的集群禁用了HTTP负载均衡插件,完全不影响VPN接入的方案,因为我们走的是VPC内网流量,和负载均衡无关。

内容的提问来源于stack exchange,提问作者DenCowboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:33:46