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

如何通过Traefik Ingress为GKE负载均衡器配置多个公网IP

在GKE的Traefik Ingress控制器前端为GCP负载均衡器添加多IP并通过IngressRouteTCP路由

步骤1:创建额外的静态公网IP

GCP临时IP可能随LB变动,必须使用静态IP。根据Traefik Service的区域属性选择创建:

  • 区域性IP(适配单区域GKE集群):
gcloud compute addresses create traefik-extra-ip-1 --region=YOUR_REGION
  • 全球性IP(适配多区域集群或全球访问场景):
gcloud compute addresses create traefik-extra-ip-1 --global

重复命令创建多个IP,记录每个IP的地址:

# 查看区域性IP
gcloud compute addresses describe traefik-extra-ip-1 --region=YOUR_REGION --format='value(address)'
# 查看全球性IP
gcloud compute addresses describe traefik-extra-ip-1 --global --format='value(address)'

步骤2:定位Traefik对应的GCP Backend Service

Traefik的LoadBalancer类型Service会自动生成GCP Backend Service,通过以下方式查找:

  1. 查看Traefik Service的元数据:
kubectl get svc traefik-ingress-controller -o yaml
  1. 过滤查找关联的Backend Service:
gcloud compute backend-services list --filter="description~'traefik-ingress-controller'"

记录Backend Service的名称及区域/全球属性(需与Traefik Service一致)。

步骤3:创建新的Forwarding Rule绑定额外IP

为每个额外IP创建转发规则,将指定TCP端口的流量导向Traefik的Backend Service:

区域性转发规则(对应区域性IP和Backend Service)

gcloud compute forwarding-rules create traefik-tcp-rule-1 \
  --region=YOUR_REGION \
  --address=traefik-extra-ip-1 \
  --ports=YOUR_TCP_PORT \
  --backend-service=YOUR_BACKEND_SERVICE_NAME \
  --backend-service-region=YOUR_REGION

全球性转发规则(对应全球性IP和Backend Service)

gcloud compute forwarding-rules create traefik-tcp-rule-1 \
  --global \
  --address=traefik-extra-ip-1 \
  --ports=YOUR_TCP_PORT \
  --backend-service=YOUR_BACKEND_SERVICE_NAME \
  --backend-service-region=YOUR_REGION

如需暴露多端口,可使用--ports=PORT1,PORT2,或创建多条转发规则分别对应端口。

步骤4:配置Traefik的IngressRouteTCP实现IP路由

通过IngressRouteTCP的match规则匹配指定IP,将流量转发到对应后端服务:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRouteTCP
metadata:
  name: tcp-service-route
spec:
  entryPoints:
    - tcp  # 需确保Traefik静态配置中已启用该entryPoint,对应监听端口
  routes:
    - match: HostSNI(`*`) && ClientIP(`X.X.X.X/32`)  # X.X.X.X为新增的静态IP
      services:
        - name: your-tcp-service
          port: YOUR_SERVICE_PORT

如需匹配多个IP,可扩展为ClientIP(X.X.X.X/32, Y.Y.Y.Y/32)。

关键注意事项

  • 确保Traefik的静态配置(如ConfigMap或启动参数)中已监听转发规则指定的端口:
    entryPoints:
      tcp:
        address: ":YOUR_TCP_PORT"
    
  • GCP转发规则的端口必须与Traefik entryPoint监听的端口一致,否则流量无法到达Traefik。
  • 仅Traefik v2+支持IngressRouteTCP,需确保CRD已正确安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 07:33:31