GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit NGINX Ingress Controller v Kubernetes

Ingress je jedním z důležitých konceptů v Kubernetes, který umožňuje externím uživatelům přistupovat ke kontejnerizovaným aplikacím pomocí FQDN (plně kvalifikovaný název domény). Ačkoli Ingress není ve výchozím nastavení povolen a nainstalován v clusteru Kubernetes. Tento základní koncept musíme umožnit pomocí kontrolérů vstupu třetích stran, jako jsou Nginx, Traefik, HAProxy a Istio atd.

V tomto tutoriálu si ukážeme, jak nastavit a používat NGINX Ingress controller v Kubernetes Cluster.

Jak je uvedeno na obrázku výše, externí uživatelé přistupují k aplikacím pomocí NGINX Ingress Controller přes FQDN a interní Ingress Controller směruje požadavek do služby a poté služba směruje požadavek na koncové body backend nebo pod.

Povolte NGINX Ingress Controller v Minikube

Minikube je klastr Kubernetes s jedním uzlem, můžeme snadno povolit řadič vstupu nginx v minikube spuštěním „doplňků minikube “.

Spuštěním níže uvedeného příkazu ověřte stav řadiče vstupu,

# seznam doplňků minikube

Spusťte následující příkaz minikube, abyste povolili řadič vstupu,

[[email protected] ~]# doplňky minikube umožňují vstup* Doplněk 'ingress' je povolen[[email protected] ~]#

Pokud znovu spustíme příkaz „minikube addons list“, tentokrát musíme vidět, že stav vstupu je povolen.

Spusťte následující příkaz kubectl, abyste ověřili, zda modul vstupního řadiče běží nebo ne.

[[email protected] ~]# kubectl get pods --all-namespaces | grep -i nginx-controllerkube-system      ingress-nginx-controller-7bb4c67d67-gkjj5    1/1     Běh             0          20 m[[e-mail chráněno] ~ # 

Výše uvedený výstup potvrzuje, že nginx-controller byl povolen a úspěšně spustil svůj modul pod jmenným prostorem systému kube.

Nastavení Ingress Controller v Kubernetes Cluster (Baremetal)

Poznámka: Předpokládám, že cluster Kubernetes je v provozu.

Přihlaste se k hlavnímu uzlu nebo řídicí rovině a spusťte následující příkaz kubectl pro instalaci ingress.

Použít $ kubectl -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/baremetal/deploy.yaml

Výstup,

Ověřte stav Ingress, spusťte příkazy kubectl

[[email protected] ~]$ kubectl get pods -n ingress-nginxNAME PŘIPRAVENO STAV RESTARTUJE AGEingress-nginx-admission-create-4phb2 0/1 Dokončeno 0 8m53singress-nginx-admission-patch-m9t8z 2/1 Dokončeno 8m53singress-nginx-controller-f9d6fc8d8-r92jd 1/1 Běží 0 8m53s[[e-mail chráněno] ~]$$ kubectl získat vše -n ingress-nginx

Perfektní, výše uvedený výstup potvrzuje, že Ingress controller byl úspěšně nainstalován.

Test Ingress Controller

Chcete-li otestovat řadič Ingress, nejprve přidejte následující položky do haproxy. Můj ingress controller pod běží na worker-node2, proto jsem zmínil worker-node2 spolu s NodePort.

Uložte a zavřete soubor a restartujte službu haproxy.

Vytvořte nasazení založené na nginx s názvem ‚myapp‘

$ kubectl create deployment myapp --image=nginxdeployment.apps/myapp created$

Vytvořte službu vystavením nasazení typu ‚NodePort‘

$ kubectl expose deployment myapp --name=myapp --type=NodePort --port=80service/myapp exposure$

Ověřte stav nasazení a služby, spusťte

$ kubectl získat nasazení myapp$ kubectl získat svc myapp

výstup,

Vytvořte zdroj Ingress pro myapp

Vytvořte soubor demo-ingress.yaml s následujícím obsahem. Když použijeme tento soubor, vytvoří se vstupní prostředek, který umožní aplikaci přistupovat z vnějšku clusteru kubernetes prostřednictvím názvu hostitele. V tomto případě je tedy název hostitele aplikace ‘myapp.example.com’

$ vi demo-ingress.yamlapiVersion:networking.k8s.io/v1kind:Ingressmetadata:name:ingress-demospec:ingressClassName:pravidla nginx:- hostitel:"myapp.example.com" http:cesty:- pathType:Prefix path:/ backend:service:name:myapp port:number:80

uložte a zavřete soubor.

Provedením příkazu pod kubectl vytvořte výše vstupní zdroj

$ kubectl create -f demo-ingress.yamlingress.networking.k8s.io/ingress-demo created$

Spusťte následující a ověřte stav výše vytvořeného vstupního zdroje

$ kubectl získat ingress ingress-demo $kubectl popsat ingress ingress-demo

Perfektní, výše uvedený výstup potvrzuje, že vstupní zdroje byly úspěšně vytvořeny.

Před přístupem k těmto adresám URL z vnějšku clusteru se prosím ujistěte, že jste přidali následující položku do souboru hostitelů vašeho systému, odkud jste k nim zamýšleli přistupovat.

192.168.1.240                myapp.example.com

Nyní zkuste získat přístup k URL z webového prohlížeče, zadejte

http://myapp.example.com

Skvělé, výše potvrzuje, že jsme úspěšně nasadili a nastavili nginx ingress controller v Kubernetes. Podělte se prosím o svou cennou zpětnou vazbu a komentáře.


Linux
  1. Jak vygenerovat certifikát s vlastním podpisem pro Kubernetes

  2. Jak nastavit Kubernetes(k8s) Cluster v HA s Kubeadm

  3. Jak nastavit Sambu jako primární řadič domény v Linuxu

  1. Jak nastavit Kubernetes Cluster na Google Cloud Platform (GCP)

  2. Jak nastavit vysoce dostupný NGINX s KeepAlived v Linuxu

  3. Jak nastavit soukromý registr dockerů v Kubernetes (k8s)

  1. Co je Cert-Manager a jak nastavit Cert-Manager pro certifikáty SSL v Kubernetes Cluster na AWS pomocí Helm

  2. Co je Ingress Controller a jak nasadit Nginx Ingress Controller v Kubernetes Cluster na AWS pomocí Helm

  3. Jak nastavit Kubernetes 1.5 s kubeadm na CentOS