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

如何将K8s default命名空间的LoadBalancer指向kube-system的ingress pod

结论

你的需求完全可以实现,不需要在selector字段添加额外配置,反而需要删除现有Service的selector字段:Kubernetes Service的selector仅支持匹配同命名空间下的Pod,无法跨命名空间筛选kube-system中的ingress Pod。


之前配置失效的核心原因

  1. 单个Kubernetes Service不能同时指定ExternalName和LoadBalancer两种类型,二者逻辑互斥,配置中重复的type字段会被kube-apiserver按最后一个取值生效,完全不符合预期。
  2. 你尝试的ExternalName类型Service仅用于返回CNAME记录做域名映射,无法绑定云厂商负载均衡的后端端点。

可行实现方案

你已经在kube-system下创建了对接ingress Pod的ClusterIP Service,可以直接用无selector的LoadBalancer Service关联该ClusterIP,步骤如下:

  1. 调整default命名空间下的LoadBalancer Service配置,删除spec.selector字段,最终配置如下:
apiVersion: v1
kind: Service
metadata:
  name: ecom-loadbalancer
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
spec:
  ports:
    - port: 443
      targetPort: 443
  type: LoadBalancer
  1. 手动创建同名Endpoints资源,指向kube-system下ClusterIP Service的虚拟IP:
apiVersion: v1
kind: Endpoints
metadata:
  name: ecom-loadbalancer # 必须和LoadBalancer Service的名称完全一致
subsets:
  - addresses:
      # 替换为kube-system下ecom-loadbalancer Service的实际ClusterIP,可通过kubectl get svc -n kube-system查询
      - ip: 10.96.xx.xx
    ports:
      - port: 443

配置应用后等待1~2分钟,Scaleway的负载均衡会自动同步后端端点,即可正常转发流量到kube-system下的ingress Pod。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:45:06