Я развертываю кластер Kubernetes на GCE, используя Gitlab-CI. Я хотел бы свести стоимость к минимуму - вот мои текущие настройки:
- Узлы работают на 3
f1-micro
экземплярах - Работающий системный модуль,
Traefik
настроенный с помощью ServiceTypeLoadBalancer
- Подстановочный знак днс настроен
- 1
postgres
стручок - 1 модуль веб-сервера с
ingress
настроенным для Traefik
Я хотел бы уменьшить стоимость моего развертывания. Большая часть стоимости приходится на балансировщик нагрузки GCE. Есть ли способ использовать общедоступный IP-адрес вместо балансировщика нагрузки на GCE? Если да, могу ли я использовать IP-адрес, выделенный кластеру (вместо того, чтобы резервировать статический IP-адрес)?
Другими словами, есть ли способ привязать эфемерный ip к сервису Kubernetes, используя GCE без балансировщика нагрузки?
Есть ли какая-либо другая конфигурация, которую я могу сделать по-другому, которая снизит стоимость в целом на GCE?
Ответы:
Да, через ExternalIPs. Имейте в виду, что это будет означать, что ваша служба выйдет из строя, если узел, который назначил внешний IP-адрес, выйдет из строя, но если вы используете только 1 мастер, вы, вероятно, не будете особенно об этом беспокоиться.
Пример сервиса:
IP-адрес должен быть внутренним IP-адресом экземпляра GCE (это связано с тем, что GCE DNAT передает трафик на внутренние IP-адреса). Сервис должен быть доступен через назначенный внешний IP-адрес узла.
Возможно, вы захотите изменить службу для вашего входного контроллера, чтобы вы могли направлять все свои приложения через один IP.
источник
NodePort
версиюЯ предпочитаю не использовать облачные балансировщики нагрузки, если это необходимо, из-за стоимости и привязки к поставщику.
Вместо этого я использую это: https://kubernetes.github.io/ingress-nginx/deploy/
Это модуль, который запускает балансировщик нагрузки для вас. На этой странице есть замечания по установке GKE.
источник