9

Jak mogę udostępnić usługę typu NodePort internetowi bez numeru, używając typu LoadBalancer? Każdy znaleziony zasób robił to za pomocą load balancera. Ale nie chcę równoważenia obciążenia jego kosztowne i niepotrzebne dla mojego przypadku użycia, ponieważ uruchamiam jedno wystąpienie obrazu postgres, który jest montowany do trwałego dysku i chciałbym móc połączyć się z moją bazą danych z mojego komputera przy użyciu pgAdmin. Jeśli jest to możliwe, proszę podać bardziej szczegółową odpowiedź, ponieważ jestem nowy w Kubernetes, GCE i w sieci.Jak udostępnić NodePort do Internetu na GCE

Tylko dla rekordu i nieco więcej kontekstu mam wdrożenie z 3 replikami mojego serwera API, z którym łączę się za pomocą load balancera z ustawionym loadBalancerIP i innym wdrożeniem, na którym działa jedna instancja postgres z usługą NodePort, za pośrednictwem której mój API serwery komunikują się z moją bazą danych. A moim problemem jest to, że utrzymywanie bazy danych bez publicznego dostępu jest trudne.

Odpowiedz

11

przy użyciu NodePort jako typ usługi działa od razu, np. tak:

apiVersion: v1 
kind: Service 
metadata: 
    name: nginx 
spec: 
    type: NodePort 
    ports: 
    - port: 80 
     nodePort: 30080 
     name: http 
    - port: 443 
     nodePort: 30443 
     name: https 
    selector: 
    name: nginx 

Więcej informacji można znaleźć w documentation. Wadą korzystania z NodePort jest to, że musisz samodzielnie zająć się integracją z dostawcą zapory sieciowej. Wyjściowy port można znaleźć w sekcji oficjalnej dokumentacji Configuring Your Cloud Provider's Firewalls.

Do otwierania GCE się wyżej na publicznie na wszystkich węzłach może wyglądać tak:

gcloud compute firewall-rules create myservice --allow tcp:30080,tcp:30443 

Po to jest w miejscu twoje usługi powinny być accessable przez którykolwiek z publicznych adresów IP swoich węzłów. Znajdziesz je z:

gcloud compute instances list 
+0

Jak mogę się dowiedzieć, jakiego adresu IP użyć dla ciągu połączenia? Czy mogę użyć jakiegoś predefiniowanego z Networking> Zewnętrzne adresy IP w GCE? A może dostaję to automatycznie? – Hnus

+1

Nie mogę go uruchomić. Robię to dokładnie tak, jak mi powiedziałeś, ale żadna z 3 odpowiedzi uzyskanych podczas uruchamiania 'listy instancji programu gcloud 'nie odpowiada i nie zapominam o używaniu portu' 30080'. Czy jest coś jeszcze, co muszę zrobić? – Hnus

+0

Przetestowałem go, zanim opisałem kroki, upewnij się, czy sprawdzają się pojemniki i kapsuły, a selektor w usłudze pasuje do etykiet strąków. – pagid