Jak wdrożyć Nginx na klastrze Kubernetes

Jak wdrożyć Nginx na klastrze Kubernetes

W naszym ostatnim artykule omówiliśmy, jak skonfigurować i uruchomić klaster Kubernetes, omówmy, w jaki sposób możemy wdrożyć Nginx Usługa w naszym klastrze.

Uruchomię to wdrożenie na maszynie wirtualnej hostowanym przez dostawcę chmury publicznej. Podobnie jak w przypadku wielu usług w chmurze publicznej, wielu ogólnie utrzymuje publiczny i prywatny program IP dla swoich wirtualnych maszyn.

Środowisko testowe

Węzeł główny - publiczne IP: 104.197.170.99 i prywatny IP: 10.128.15.195 Węzeł pracowniczy 1 - Publiczne IP: 34.67.149.37 i prywatny IP: 10.128.15.196 Węzeł pracowniczy 2 - Publiczne IP: 35.232.161.178 i prywatny IP: 10.128.15.197 

Wdrażanie Nginx w klastrze Kubernetes

Uruchomymy to wdrożenie z węzła głównego.

Zacznijmy od sprawdzenia statusu klastra. Wszystkie twoje węzły powinny być w GOTOWY państwo.

# kubectl zdobądź węzły 
Sprawdź status klastra Kubernetes

Tworzymy wdrożenie Nginx używając Nginx obraz.

# kubectl Utwórz wdrażanie nginx --Mage = nginx 
Wdrażanie Nginx na Kubernetes

Możesz teraz zobaczyć stan swojego wdrożenia.

# kubectl zdobądź wdrożenia 
Sprawdź wdrożenie Nginx na Kubernetes

Jeśli chcesz zobaczyć więcej szczegółów na temat swojego wdrożenia, możesz uruchomić opisać Komenda. Na przykład możliwe jest ustalenie, ile replików wdrażania działa. W naszym przypadku spodziewamy się, że zobaczymy replikę 1 biegu (i.mi 1/1 repliki).

# kubectl Opisz wdrażanie nginx 
Sprawdź szczegóły wdrażania Nginx

Teraz twoje wdrożenie Nginx jest aktywne, możesz wystawić Nginx obsługa publicznego adresu IP osiągalnego w Internecie.

Wystawiając swoją usługę Nginx na sieć publiczną

Kubernetes oferuje kilka opcji podczas ujawniania usługi na podstawie funkcji o nazwie Kubernetes Service-Types i są:

  1. Klasterip - Ten typ usługi ogólnie ujawnia usługę na wewnętrznym IP, osiągalnym tylko w klastrze i być może tylko w nodach klastra.
  2. Nodeport - Jest to najbardziej podstawowa opcja ujawnienia usługi, aby była dostępna poza klastrem, na określonym porcie (nazywany Nodeport) w każdym węźle w klastrze. Wkrótce zilustrujemy tę opcję.
  3. LOADBALANCER - Ta opcja wykorzystuje zewnętrzne usługi równoważenia obciążenia oferowane przez różnych dostawców, aby umożliwić dostęp do Twojej usługi. Jest to bardziej niezawodna opcja, gdy myśląc o wysokiej dostępności usługi i ma więcej funkcji poza domyślnym dostępem.
  4. Nazwa zewnętrzna - Ta usługa przekierowuje ruch na usługi poza klastrem. Jako taka usługa jest zatem mapowana na nazwę DNS, którą można hostować z twojego klastra. Należy zauważyć, że nie używa to serwera proxy.

Domyślny typ usługi to Klasterip.

W naszym scenariuszu chcemy użyć Nodeport Service Type Ponieważ mamy zarówno publiczny, jak i prywatny adres IP i na razie nie potrzebujemy zewnętrznego balansu obciążenia. Dzięki temu typowi usługi Kubernetes przypisuje tę usługę w portach na 30000+ zakres.

# kubectl Utwórz usługę Nodeport nginx - -tcp = 80: 80 
Utwórz usługę Nodeport, aby ujawnić Nginx

Uruchom Zdobądź SVC polecenie, aby zobaczyć podsumowanie Usługi i ujawnionych portów.

# kubectl zdobądź svc 
Sprawdź usługę i port Nginx

Teraz możesz sprawdzić, czy Nginx Strona można osiągnąć we wszystkich węzłach za pomocą polecenia curl.

# Curl Master Node: 30386 # Curl Node-1: 30386 # Curl Node-2: 30386 
Sprawdź stronę Nginx na klastrze Kubernetes

Jak widać, „Witamy w Nginx!„Można dotrzeć do strony.

Dotarcie do efemerycznych publicznych adresów IP

Jak zapewne zauważyłeś, Kubernetes doniesienia, że ​​nie mam aktywnego publicznego IP, a raczej nie zarejestrował zewnętrznego IP.

# kubectl zdobądź svc 
Sprawdź usługę i port Nginx

Sprawdźmy, czy to rzeczywiście prawda, że ​​nie mam zewnętrznego adresu IP dołączonego do moich interfejsów za pomocą polecenia IP.

# ip a 
Sprawdź adresy IP

Brak publicznego adresu IP, jak widać.

Jak wspomniano wcześniej, obecnie prowadzę to wdrożenie na Maszyna wirtualna oferowane przez dostawcę chmury publicznej. Tak więc, chociaż nie ma konkretnego interfejsu przypisanego publicznego adresu IP, dostawca VM wydał efemeryczny zewnętrzny adres IP.

Efemeryczny zewnętrzny adres IP to tymczasowy adres IP, który pozostaje dołączony do maszyny wirtualnej, dopóki instancja wirtualna nie zostanie zatrzymana. Po ponownym uruchomieniu instancji wirtualnej przypisuje się nowy zewnętrzny adres IP. Zasadniczo jest to prosty sposób dla usługodawców do wykorzystania na bezczynnych publicznych adresach IPS.

Wyzwanie tutaj, poza tym, że publiczne IP nie jest statyczne, polega na tym, że Efemeryczne publiczne IP jest po prostu rozszerzeniem (lub proxy) prywatnego adresu IP i dlatego usługa będzie dostępna tylko w porcie 30386. Oznacza to, że usługa będzie dostępna na adresie URL , to jest 104.197.170.99: 30386, które jeśli sprawdzisz przeglądarkę, powinieneś być w stanie zobaczyć stronę powitalną.

Sprawdź stronę Nginx wdrożoną na Kubernetes

Dzięki temu pomyślnie wdrożyliśmy Nginx na naszym 3-węzłowym klastrze Kubernetes.