Jak używać HAProxy jako kontrolera ruchu przychodzącego w środowisku Kubernetes

Jak Uzywac Haproxy Jako Kontrolera Ruchu Przychodzacego W Srodowisku Kubernetes



Kubernetes to idealna opcja dla każdego, kto chce zautomatyzować wdrażanie aplikacji kontenerowych, skalowanie i zarządzanie nimi. W środowisku Kubernetes kontroler ruchu przychodzącego jest niezbędny do zarządzania dostępem zewnętrznym do dowolnej usługi klastrowej Kubernetes. Kontroler ruchu przychodzącego działa jako przestrzeń wejściowa dla ruchu zewnętrznego, która umożliwia zdefiniowanie routingu i sposobu kontrolowania ruchu do usługi. Możesz używać różnych kontroli ruchu przychodzącego, ale w tym przypadku skupimy się na HAProxy i użyjemy go do zaimplementowania reguł, które zdefiniujemy w naszym zasobie wejściowym.

Co to jest kontroler wejścia?

Kontroler ruchu przychodzącego to komponent, który pozwala użytkownikom zarządzać i kontrolować dostęp do usług w ramach klastra Kubernetes. Kontroler wejścia składa się z dwóch kluczowych elementów:

  1. Zasób wejściowy – Jest to obiekt Kubernetes API, który definiuje reguły routingu ruchu usług w klastrze na podstawie określonej nazwy hosta i ścieżek.
  2. Kontroler wejścia – Jest to komponent oprogramowania, taki jak HAProxy, Traefik lub NGINX, który implementuje reguły określone w zasobie wejściowym. Konfiguruje moduł równoważenia obciążenia do obsługi ruchu w oparciu o zmiany wprowadzone w obiektach przychodzących.

Jak używać HAProxy jako kontrolera ruchu przychodzącego w środowisku Kubernetes

Po zrozumieniu, czym jest kontroler ruchu przychodzącego i dlaczego go potrzebujesz, następnym zadaniem będzie omówienie kroków, jak z niego korzystać. W naszym przypadku skonfigurowaliśmy HAProxy jako kontroler ruchu przychodzącego, postępując zgodnie z podanymi krokami.







Uwaga: Upewnij się, że klaster Kubernetes jest uruchomiony. Następnie postępuj w następujący sposób.



Krok 1: Uruchom klaster Kubernetes
Istnieją różne sposoby konfigurowania i uruchamiania klastra Kubernetes. W tym przewodniku używamy Minikube. Jest to narzędzie, które oferuje uproszczony sposób wdrażania Kubernetesa na maszynie wirtualnej lub Dockerze, szczególnie jeśli masz Kubernetes lokalnie na swojej maszynie.



Patrz Dokumentacja Minikube'a na temat poleceń instalacyjnych, których chcesz użyć na swojej platformie. W tym przypadku uruchamiamy stabilną architekturę Linuksa „x64” i uruchamiamy następujące polecenia:





$ zwijanie -TO https: // Storage.googleapis.com / minikube / wydania / najnowszy / minikube-linux-amd64
$ sudo zainstalować minikube-linux-amd64 / usr / lokalny / kosz / minikube

Pierwsze polecenie pobiera najnowszy stabilny plik binarny Minikube, podczas gdy drugie polecenie instaluje i przenosi plik binarny do określonej ścieżki.

Po zainstalowaniu Minikube uruchom go, aby wyświetlić klaster.



$ początek minikube'a

Aby uzyskać dostęp do klastra, musisz mieć zainstalowany kubectl. Możesz jednak użyć wersji kubectl dostępnej w Minikube. Na przykład, aby sprawdzić szczegóły działających podów, wykonaj polecenie „kubectl” w następujący sposób:

$ minikube kubectl -- zdobądź strąki -A

Dzięki temu nie będziesz musiał instalować kubectl. Znak (–) sygnalizuje, że polecenia dotyczą kubectl, a nie Minikube.

Krok 2: Utwórz przestrzeń nazw
Drugi krok polega na utworzeniu dedykowanej przestrzeni nazw dla kontrolera ruchu przychodzącego. Nazwaliśmy tę przestrzeń nazw „haproxy-controller”.

$ minikube kubectl tworzy przestrzeń nazw haproxy-controller

Krok 3: Utwórz i wdróż kontroler ruchu przychodzącego HAProxy
Sposób tworzenia kontrolera wejściowego zależy od tego, co chcesz osiągnąć. Można na przykład utworzyć kontroler ruchu przychodzącego HAProxy, który będzie kierować ruchem HTTP w zależności od żądanej nazwy hosta. W takim przypadku zacznij od uzyskania dostępu do serwera DNS i utworzenia rekordu „A”, aby zmapować docelową nazwę hosta na klaster.

Po uzyskaniu prawidłowego rekordu „A” utwórz plik YAML kontrolera ruchu przychodzącego, jak pokazano na poniższej ilustracji. W pierwszej sekcji utworzyliśmy zasób Deployment, który jako przykład wykorzystuje obraz kontenera Docker „jmalloc/echo-server”.

W drugiej sekcji pliku YAML utworzyliśmy zasób Service, który jest mapowany na podstawie nazwy hosta żądanej w kontrolerze wejściowym utworzonym w kroku 4.

Zapisz plik i wdróż go w klastrze za pomocą kubectl. Odwołujemy się do Minikube kubectl, uruchamiając w naszym przypadku następujące polecenie. Nasz kontroler wejścia HAProxy to „linuxhint-jmaildeployment.yaml”.

$ minikube kubectl -- stosować -F < Nazwa pliku >

Po otrzymaniu danych wyjściowych wskazujących, że usługa została utworzona, możesz dodatkowo sprawdzić, czy została ona wdrożona, za pomocą następującego polecenia:

$ minikube kubectl -- zdobądź strąki --przestrzeń nazw kontroler haproxy

Upewnij się, że używasz prawidłowej przestrzeni nazw utworzonej w kroku 1. Otrzymasz dane wyjściowe potwierdzające, że usługa jest dostępna, co oznacza, że ​​wdrożenie powiodło się.

Krok 4: Utwórz i wdróż zasób wejściowy
Utwórz kolejny plik YAML, który działa jako zasób wejściowy zawierający reguły określające, w jaki sposób HAProxy powinien kierować ruchem. Upewnij się, że używasz prawidłowej nazwy domeny (hosta), na którą kierujesz, i dostosuj nazewnictwo oraz żądany port, aby akceptować ruch przychodzący.

Zapisz plik zasobów wejściowych HAProxy i wdróż go tak, jak zrobiliśmy to w przypadku kontrolera.

$ minikube kubectl -- stosować -F < Nazwa pliku >

Nazywamy nasz zasób wejściowy jako „linuxhint-ingresscontroller.yaml”.

Otóż ​​to! Za pomocą poniższego polecenia możesz sprawdzić, czy kontroler ruchu przychodzącego HAProxy działa, sprawdzając port przypisany do węzła NodePort.

$ minikube kubectl -- pobierz usługę haproxy-kubernetes-ingress --przestrzeń nazw kontroler haproxy

W tym przypadku przypisany jest do niego port 32448. Za pomocą tego portu można uzyskać dostęp do utworzonej usługi i sprawdzić jej status.

Dzięki temu udało Ci się wykorzystać HAProxy jako kontroler ruchu przychodzącego w środowisku Kubernetes.

Wniosek

Kontroler ruchu przychodzącego umożliwia zdefiniowanie sposobu obsługi ruchu do klastra w oparciu o reguły zdefiniowane w pliku zasobów ruchu przychodzącego. HAProxy to niezawodny kontroler ruchu przychodzącego, którego można używać w klastrze Kubernetes. W tym poście omówiono kroki, które należy wykonać, aby z niego skorzystać. Wypróbuj i ciesz się używaniem HAProxy jako kontrolera ruchu przychodzącego.