Kubernetes-我可以避免使用GCE负载均衡器来降低成本吗?


10

我正在使用Gitlab-CI在GCE上部署Kubernetes集群。我想将成本降到最低-这是我当前的设置:

  • 节点在3个f1-micro实例上运行
  • 运行Traefik带有ServiceType的系统PodLoadBalancer
  • 已配置通配符DNS
  • 1个postgres 豆荚
  • 1个ingress为Traefik配置的Web服务器Pod

我想减少部署成本。大部分成本都由GCE负载平衡器承担。有没有一种方法可以使用公共IP地址代替GCE上的负载均衡器?如果是这样,我可以利用分配给群集的IP地址(而不是保留静态IP)吗?

换句话说,是否有一种方法可以在不使用负载均衡器的情况下使用GCE将临时ip绑定到Kubernetes服务?

我还有其他可以改变的配置可以降低GCE的总体成本吗?


1
您只能通过使用NodePort服务类型来公开服务,但这会给部署带来一些限制。欲了解更多信息,请访问此链接
卡姆兰

Answers:


10

是的,通过ExternalIP。请注意,如果说外部IP分配的节点发生故障,这将意味着您的服务将中断,但是如果您仅运行1个主服务器,则您可能对此不太在意。

服务示例:

apiVersion: v1
kind: Service
metadata:
  name: myapp
spec:
  ports:
    - port: 80
      protocol: TCP
  selector:
    app: myapp
  externalIPs:
    - a.b.c.d

该IP必须是GCE实例的内部 IP(这是因为GCE DNAT将流量发送到内部IP)。然后应该可以通过节点的分配的外部IP访问该服务。

您可能需要更改入口控制器的服务,以便可以通过一个IP路由所有应用程序。


2
了解了DNAT知识后,我意识到我需要配置防火墙规则以允许某些端口上的流量到达GCE实例。此后,我就能够成功实施您的建议。我也已经成功测试了一个NodePort版本
Mitkins

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.