在没有负载均衡器的情况下在 Google Container Engine 上公开端口 80 和 443

Rub*_*nst 28 google-compute-engine kubernetes google-cloud-platform

目前我正在做一个小型的爱好项目,一旦它准备好,我就会开源。此服务在 Google Container Engine 上运行。我选择 GCE 是为了避免配置麻烦,成本可以承受并学习新东西。

我的 pod 运行良好,我创建了一个类型LoadBalancer的服务来在端口 80 和 443 上公开服务。这完美地工作。

但是,我发现对于每个LoadBalancer服务,都会创建一个新的 Google Compute Engine 负载均衡器。这个负载均衡器非常昂贵,并且对于单个实例上的业余项目来说真的做得太过分了。

为了降低成本,我正在寻找一种无需负载平衡器即可公开端口的方法。

到目前为止我尝试过的:

有没有办法在没有负载均衡器的情况下为 Google Container Engine 上的单个实例公开端口 80 和 443?

Con*_*rJC 12

是的,通过服务上的 externalIP。我使用的示例服务:

apiVersion: v1
kind: Service
metadata:
  name: bind
  labels:
    app: bind
    version: 3.0.0
spec:
  ports:
    - port: 53
      protocol: UDP
  selector:
    app: bind
    version: 3.0.0
  externalIPs:
    - a.b.c.d
    - a.b.c.e
Run Code Online (Sandbox Code Playgroud)

请注意,配置文件中列出的 IP 必须是 GCE 上的内部 IP。

  • 您(或@RubenErnst)介意稍微扩展一下答案吗?特别是“GCE上列出的IP必须是内部IP”。你说的是哪个IP?您能否使用分配给您的单节点集群的静态 IP 来实现此功能? (2认同)