Kubernetes - чи можу я уникати використання балансоутримувача навантаження GCE для зменшення витрат?


11

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

  • Вузли працюють у 3 f1-microекземплярах
  • Запуск системного стручка, Traefikналаштований з ServiceTypeLoadBalancer
  • Налаштована підстановка dns
  • 1 postgres стручок
  • 1 стручок веб-сервера з ingressналаштованим для Traefik

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

Інакше кажучи, чи є спосіб прив’язати ефемерний ip до послуги Kubernetes за допомогою GCE без балансира навантаження?

Чи є інша конфігурація, яку я можу зробити інакше, що в цілому знизить витрати на GCE?


1
Ви можете відкрити свою послугу, лише використовуючи тип послуги NodePort, але це введе деякі обмеження для вашого розгортання. Для отримання додаткової інформації перейдіть за цим посиланням .
Камран

Відповіді:


11

Так, через 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.


2
Дізнавшись про річ DNAT, я зрозумів, що мені потрібно налаштувати правило брандмауера, щоб дозволити трафік на певних портах до примірника GCE. Після цього я зміг успішно реалізувати вашу пропозицію. Я також успішно протестував NodePortверсію
Міткінс

2

Я вважаю за краще не використовувати хмарні балансири навантаження, поки це не потрібно, через витрати та блокування постачальника.

Натомість я використовую це: https://kubernetes.github.io/ingress-nginx/deploy/

Це стручок, який працює для вас балансиром навантаження. На цій сторінці є специфічні примітки щодо встановлення GKE.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.