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

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

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

  • 节点在 3 个f1-micro实例上运行
  • Traefik运行配置了 ServiceType 的系统 PodLoadBalancer
  • 已配置通配符 DNS
  • 1postgres
  • ingress1 个为 Traefik 配置的Web 服务器 pod

我想降低部署成本。大部分成本都花在了 GCE 负载均衡器上。有没有办法让我使用公共 IP 地址而不是 GCE 上的负载均衡器?如果可以,我可以使用分配给集群的 IP 地址(而不是保留静态 IP)吗?

换句话说,有没有办法使用没有负载均衡器的 GCE 将临时 IP 绑定到 Kubernetes 服务?

我可以采取其他不同的配置来降低 GCE 的总体成本吗?

答案1

是的,通过 ExternalIPs。请注意,如果分配了上述外部 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

由于成本和供应商锁定,除非必要,我都不愿意使用云负载均衡器。

相反,我用的是这个: https://kubernetes.github.io/ingress-nginx/deploy/

它是一个为您运行负载均衡器的 pod。该页面有 GKE 特定的安装说明。

相关内容