首页 > 解决方案 > GKE 1 负载均衡器,在不同分配的端口上有多个应用程序

问题描述

我希望能够部署多个单个 pod、应用程序并在单个 IP 地址上访问它们,这依赖于 Kubernetes,以便在您使用NodePort服务时按原样分配端口。

有没有办法NodePort与负载均衡器一起使用?

老实说,NodePort 可能自己工作,但 GKE 似乎阻止了对节点的直接访问。在他们的非托管虚拟机上似乎没有防火墙控制。

如果我们需要一些东西来作为答案,这里是一项服务。在这种情况下,我想部署 10 个这样的服务,它们是不同的应用程序,在同一个 IP 上,每个都可以在不同的端口上公开访问,每个代理 nginx 容器的端口 80。

---
apiVersion: v1
kind: Service
metadata:
  name: foo-svc
spec:
  selector:
    app: nginx
  ports:
    - name: foo
      protocol: TCP
      port: 80
  type: NodePort

标签: kubernetesgoogle-kubernetes-engine

解决方案


有没有办法将 NodePort 与负载均衡器一起使用?

Kubernetes LoadBalancer 类型的服务构建在 NodePort 之上。因此,LoadBalancer 在内部使用 NodePort,这意味着当创建 loadBalancer 类型的服务时,它会自动映射到 NodePort。尽管创建 NodePort 类型的服务并手动配置 Google 提供的负载均衡器以指向 NodePorts 很棘手,但可以。


推荐阅读