Назад | Перейти на главную страницу

Kubernetes - можно ли избежать использования балансировщика нагрузки GCE для снижения затрат?

Я развертываю кластер Kubernetes на GCE с помощью Gitlab-CI. Я бы хотел свести затраты к минимуму - вот моя текущая установка:

Я хотел бы снизить стоимость развертывания. Большая часть затрат приходится на балансировщик нагрузки GCE. Есть ли способ использовать общедоступный IP-адрес вместо балансировщика нагрузки на GCE? Если да, могу ли я использовать выделенный кластеру IP-адрес (вместо резервирования статического IP-адреса)?

Другими словами, есть ли способ привязать эфемерный ip к сервису Kubernetes с помощью GCE без балансировщика нагрузки?

Могу ли я сделать какую-либо другую конфигурацию, которая снизит стоимость GCE в целом?

Да, через 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 должен быть внутренний IP-адрес экземпляра GCE (это потому, что GCE DNAT направляет трафик на внутренние IP-адреса). Затем служба должна быть доступна через назначенный узлу внешний IP-адрес.

Вероятно, вы захотите изменить службу для вашего контроллера входящего трафика, чтобы вы могли маршрутизировать все свои приложения через один IP-адрес.

Я предпочитаю не использовать облачные балансировщики нагрузки до тех пор, пока это необходимо, из-за стоимости и привязки к поставщику.

Вместо этого я использую это: https://kubernetes.github.io/ingress-nginx/deploy/

Это модуль, который запускает для вас балансировщик нагрузки. На этой странице есть примечания по установке GKE.