Jak používat HAProxy jako Ingress Controller v prostředí Kubernetes

Jak Pouzivat Haproxy Jako Ingress Controller V Prostredi Kubernetes



Kubernetes je ideální volbou pro každého, kdo hledá automatizaci nasazení, škálování a správy kontejnerizovaných aplikací. V prostředí Kubernetes je řadič příchozích dat nezbytný pro správu externího přístupu k jakékoli clusterové službě Kubernetes. Ingress controller funguje jako vstupní prostor pro externí provoz, který vám umožňuje definovat směrování a jak chcete řídit provoz ke službě. Můžete použít různé ovládací prvky vstupu, ale v tomto případě se zaměříme na HAProxy a použijeme ho k implementaci pravidel, která definujeme v našem zdroji vstupu.

Co je Ingress Controller?

Ingress controller je komponenta, která umožňuje uživatelům spravovat a řídit přístup ke službám v rámci jejich clusteru Kubernetes. Kontrolér vstupu má dva klíčové prvky:

  1. Zdroj Ingress – Jedná se o objekt Kubernetes API, který definuje pravidla pro směrování provozu služeb v clusteru na základě zadaného názvu hostitele a cest.
  2. Ingress Controller – Jedná se o softwarovou komponentu, jako je HAProxy, Traefik nebo NGINX, která implementuje pravidla specifikovaná ve vstupním zdroji. Konfiguruje nástroj pro vyrovnávání zatížení tak, aby zpracovával provoz na základě změn provedených ve vstupních objektech.

Jak používat HAProxy jako Ingress Controller v prostředí Kubernetes

Poté, co pochopíte, co je kontrolér vstupu a proč jej potřebujete, je dalším úkolem pokrýt kroky k jeho použití. V našem případě jsme nastavili HAProxy jako náš ingress controller podle poskytnutých kroků.







N/B: Ujistěte se, že máte svůj cluster Kubernetes spuštěný a spuštěný. Poté postupujte následovně.



Krok 1: Spusťte svůj Kubernetes Cluster
Existují různé způsoby, jak nastavit a spustit cluster Kubernetes. Pro tento návod používáme Minikube. Je to nástroj, který nabízí zjednodušený způsob nasazení Kubernetes uvnitř virtuálního počítače nebo Dockeru, zvláště pokud máte své Kubernetes lokálně na vašem počítači.



Odkazovat na Dokumentace minikube na instalačních příkazech, které se mají použít pro vaši platformu. V tomto případě používáme stabilní architekturu Linuxu „x64“ a spouštíme následující příkazy:





$ curl -TO https: // storage.googleapis.com / minikube / vydání / nejnovější / minikube-linux-amd64
$ sudo Nainstalujte minikube-linux-amd64 / usr / místní / zásobník / minikube

První příkaz uchopí nejnovější stabilní binární soubor Minikube, zatímco druhý příkaz nainstaluje a přesune binární soubor do zadané cesty.

Jakmile nainstalujete Minikube, spusťte jej, aby se otevřel cluster.



$ start minikube

Pro přístup ke clusteru pak musíte mít nainstalovaný kubectl. Můžete však použít verzi kubectl, která je k dispozici s Minikube. Chcete-li například zkontrolovat podrobnosti o běžících modulech, spusťte příkaz „kubectl“ následovně:

$ minikube kubectl -- získat lusky -A

Tímto způsobem nemusíte mít nainstalovaný kubectl. (–) signalizuje, že příkazy jsou pro kubectl, ne pro Minikube.

Krok 2: Vytvořte jmenný prostor
Druhý krok zahrnuje vytvoření vyhrazeného jmenného prostoru pro řadič vstupu. Jmenný prostor jsme pojmenovali jako „haproxy-controller“.

$ minikube kubectl vytvořit jmenný prostor haproxy-controller

Krok 3: Vytvořte a nasaďte HAProxy Ingress Controller
Jak vytvoříte ingress controller, závisí na tom, čeho chcete dosáhnout. Můžete například vytvořit řadič vstupu HAProxy pro směrování provozu HTTP v závislosti na požadovaném názvu hostitele. V takovém případě začněte přístupem k serveru DNS a vytvořením záznamu „A“ pro mapování cílového názvu hostitele na váš cluster.

Jakmile budete mít správný záznam „A“, vytvořte soubor YAML kontroléru vstupu, jak je znázorněno na následujícím obrázku. V první části jsme vytvořili prostředek Deployment, který jako náš příklad používá obrázek kontejneru Docker „jmalloc/echo-server“.

Ve druhé části souboru YAML jsme vytvořili prostředek služby, který se mapuje na základě názvu hostitele, který je požadován v řadiči vstupu, který je vytvořen v kroku 4.

Uložte soubor a nasaďte jej do clusteru pomocí kubectl. Odkazujeme na Minikube kubectl spuštěním následujícího příkazu pro náš případ. Náš HAProxy ingress controller je „linuxhint-jmaildeployment.yaml“.

$ minikube kubectl -- aplikovat -F < název souboru >

Jakmile získáte výstup ukazující, že služba byla vytvořena, můžete dále ověřit, že byla nasazena pomocí následujícího příkazu:

$ minikube kubectl -- získat lusky -- jmenný prostor haproxy-kontrolér

Ujistěte se, že používáte správný jmenný prostor, který jste vytvořili v kroku 1. Získáte výstup, který potvrzuje, že služba je dostupná, což znamená, že nasazení bylo úspěšné.

Krok 4: Vytvořte a nasaďte Ingress Resource
Vytvořte další soubor YAML, který funguje jako vstupní zdroj, který obsahuje pravidla pro to, jak má HAProxy směrovat váš provoz. Ujistěte se, že používáte správný název domény (hostitel), na který cílíte, a upravte název a požadovaný port tak, aby přijímal příchozí provoz.

Uložte vstupní soubor HAProxy a nasaďte jej stejně jako u řadiče.

$ minikube kubectl -- aplikovat -F < název souboru >

Náš vstupní zdroj nazýváme „linuxhint-ingresscontroller.yaml“.

A je to! Pomocí následujícího příkazu můžete ověřit, že váš řadič přístupu HAProxy funguje kontrolou portu, který je přiřazen k NodePort.

$ minikube kubectl -- získat službu haproxy-kubernetes-ingress -- jmenný prostor haproxy-kontrolér

V tomto případě je jí přiřazen port 32448. Pomocí portu můžete přistupovat k vytvořené službě a kontrolovat její stav.

Díky tomu se vám podařilo použít HAProxy jako ingress controller v prostředí Kubernetes.

Závěr

Řadič příchozího přenosu vám umožňuje definovat, jak zpracovat provoz do vašeho clusteru na základě pravidel, která jsou definována v souboru prostředků příchozího přenosu. HAProxy je spolehlivý řadič vstupu, který můžete použít v clusteru Kubernetes, a tento příspěvek popsal, jaké kroky byste měli při jeho použití dodržovat. Vyzkoušejte si to a užijte si používání HAProxy jako kontroléru vstupu.