Kubernetes - czy mogę uniknąć używania modułu równoważenia obciążenia GCE w celu zmniejszenia kosztów?

11

Wdrażam klaster Kubernetes na GCE przy użyciu Gitlab-CI. Chciałbym ograniczyć koszty do minimum - oto moja obecna konfiguracja:

  • Węzły działają w 3 f1-microinstancjach
  • System pod działający Traefikskonfigurowany z ServiceTypeLoadBalancer
  • Konfiguracja symboli wieloznacznych dns
  • 1 postgres kapsułka
  • 1 pod serwer z ingresskonfiguracją dla Traefik

Chciałbym obniżyć koszty mojego wdrożenia. Większość kosztów dotyczy modułu równoważenia obciążenia GCE. Czy istnieje sposób, w jaki mogę użyć publicznego adresu IP zamiast modułu równoważenia obciążenia w GCE? Jeśli tak, to czy mogę wykorzystać adres IP przydzielony do klastra (zamiast rezerwować statyczny adres IP)?

Innymi słowy, czy istnieje sposób na powiązanie efemerycznego adresu IP z usługą Kubernetes za pomocą GCE bez modułu równoważenia obciążenia?

Czy jest jakaś inna konfiguracja, którą mogę zrobić inaczej, która ogólnie obniży koszty w GCE?

Mitkins
źródło
1
Możesz udostępnić swoją usługę tylko przy użyciu typu usługi NodePort, ale wprowadzi to pewne ograniczenia we wdrożeniu. Aby uzyskać więcej informacji, odwiedź ten link .
Kamran

Odpowiedzi:

11

Tak, przez zewnętrzne IPIP. Pamiętaj, że to oznacza, że ​​Twoja usługa przestanie działać, jeśli węzeł, który powiedział, że przypisano zewnętrzny adres IP, zawiedzie, ale jeśli prowadzisz tylko 1 master, prawdopodobnie nie przejmujesz się tym zbytnio.

Przykładowa usługa:

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

Adres IP musi być wewnętrznym adresem IP instancji GCE (Dzieje się tak, ponieważ GCE DNAT przesyła ruch do wewnętrznych adresów IP). Usługa powinna być wówczas dostępna za pośrednictwem zewnętrznego adresu IP węzła.

Prawdopodobnie będziesz chciał zmienić usługę kontrolera wejściowego, aby móc kierować wszystkie aplikacje za pomocą jednego adresu IP.

ConnorJC
źródło
2
Po zapoznaniu się z tematem DNAT zdałem sobie sprawę, że muszę skonfigurować regułę zapory, aby zezwolić na ruch na niektórych portach do instancji GCE. Po tym mogłem z powodzeniem zrealizować twoją sugestię. Z powodzeniem przetestowałem też NodePortwersję
Mitkins,
2

Wolę nie używać funkcji równoważenia obciążenia w chmurze, dopóki nie będzie to konieczne ze względu na koszty i blokadę dostawcy.

Zamiast tego używam tego: https://kubernetes.github.io/ingress-nginx/deploy/

To kapsuła, która obsługuje dla ciebie moduł równoważenia obciążenia. Ta strona zawiera uwagi dotyczące instalacji GKE.

Michael Cole
źródło