Kumuha ng Kubernetes Ingress Log para sa Pag-debug

Kumuha Ng Kubernetes Ingress Log Para Sa Pag Debug



Alam mo ba kung ano ang Get Kubernetes ingress log para sa pag-debug? Ang mga problema sa networking ay lalong nagiging mahirap na masuri habang ang mga deployment ay lumalaki at mas malaki. Ipinapakita sa iyo ng tutorial na ito kung paano gamitin ang ingress-nginx kubectl plugin upang i-debug ang access sa iyong application sa pamamagitan ng ingress controller. Tingnan muna natin ang kahulugan ng pagpasok ng Kubernetes na mahalaga upang mas maunawaan ang pangunahing paksa.

Ano ang Kubernetes Ingress?

Ang kahulugan ng ingress ay 'entry' sa literal na kahulugan nito.







Sa komunidad ng Kubernetes, totoo rin iyan. Ang isang trapiko na pumapasok sa cluster ay tinutukoy bilang pagpasok, habang ang isang trapiko na umaalis sa cluster ay tinutukoy bilang paglabas.




Bilang katutubong mapagkukunan ng Kubernetes, ang ingress ay maihahambing sa mga pod, deployment, atbp. Maaari kang makasabay sa mga configuration ng pagruruta ng DNS gamit ang ingress. Ang ingress controller ay kung ano ang gumaganap sa pagruruta. Ginagawa nito iyon sa pamamagitan ng pagbabasa ng mga panuntunan sa pagruruta mula mismo sa mga bagay sa pagpasok na nakaimbak sa etcd. Kung walang pagpasok ng Kubernetes, maaari mong ilantad ang isang application sa labas ng mundo sa pamamagitan ng pagsasama ng isang Service Type Load Balancer sa mga deployment.



Paano Gumagana ang Kubernetes Ingress?

Mayroong dalawang pangunahing bagay na kailangan mong malinawan. Ito ay:





Kubernetes Ingress Resource

Ang mapagkukunang ito ay namamahala sa pagpapanatili ng lahat ng mga panuntunan sa pagruruta ng DNS sa cluster. Ang mga panuntunan sa pagruruta ng DNS ay tinukoy sa mapagkukunan ng Kubernetes Ingress, isang katutubong mapagkukunan ng Kubernetes. Sa madaling salita, imamapa mo ang external na trapiko ng DNS sa mga panloob na destinasyon ng serbisyo ng Kubernetes.



Kubernetes Ingress Controller

Sa pamamagitan ng pagkakaroon ng access sa mga panuntunan ng DNS na ipinapatupad ng mga mapagkukunan ng ingress, ang mga Kubernetes ingress controllers (Nginx/HAProxy, atbp.) ang namamahala sa pagruruta.

Ang pagpapatupad ng Ingress Controller ay hindi katutubong sa Kubernetes. Bilang resulta, hindi ito maaaring maging cluster default.

Para gumana ang mga panuntunan sa pagpasok, dapat tayong mag-configure ng controller ng ingress. Mayroong maraming open-source at business ingress controllers sa merkado. Ang bersyon ng isang cluster ng isang reverse web proxy server ay nagsisilbing isang ingress controller. Ang reverse proxy server na ito na nakabase sa Kubernetes ay nakalantad sa isang serbisyo ng load balancer.

Ano ang Ingress Controller?

Isang cluster-running program na tinatawag na Ingress Controller ang nagko-configure ng HTTP load balancer kasunod ng Ingress resources. Ang load balancer ay maaaring isang external na naka-deploy na hardware o cloud load balancer, o maaari itong gumana bilang software sa loob ng cluster. Iba't ibang pagpapatupad ng Ingress Controller ang kailangan para sa iba't ibang load balancer.

Kapag gumagamit ng NGINX, ang load balancer at ingress controller ay parehong naka-deploy sa isang pod.

Pakitandaan na ang isang aktibong ingress controller ay dapat na naroroon sa cluster para gumana ang Ingress resource.

Ang mga controller ng ingress ay hindi awtomatikong inilulunsad na may isang cluster, kabaligtaran sa iba pang mga uri ng mga controller na gumagana bilang isang bahagi ng binary ng kube-controller-manager.

Mga kinakailangan:

Kailangan mo ng Kubernetes cluster, at dapat mong i-configure ang kubectl command-line tool para kumonekta sa iyong cluster. Maaari mong ibigay ang mga utos sa mga Kubernetes cluster gamit ang kubectl command-line tool. Maaaring i-deploy ang mga application, maaaring suriin at pamahalaan ang mga mapagkukunan ng kumpol, at makikita ang mga log gamit ang kubectl.

Kung wala kang cluster sa kasalukuyan, maaaring gamitin ang Minikube para bumuo ng isa. Ang Minikube ay isang lokal na Kubernetes na naglalayong gawing simple ang pag-aaral at pagbuo ng Kubernetes.

Maaaring ma-access ang mga Kubernetes sa isang utos lamang kung mayroon kang isang virtual machine na kapaligiran o isang Docker (o katulad na katugmang) container environment. Simulan natin ang hakbang-hakbang na proseso ngayon:

Hakbang 1: Simulan ang Minikube

Gamit ang tool na minikube, maaari mong patakbuhin ang Kubernetes nang lokal. Ang Minikube ay nagpapatakbo ng all-in-one o multi-node na lokal na Kubernetes cluster sa iyong computer para sa pang-araw-araw na gawain sa pag-develop o upang subukan ang mga Kubernetes (kabilang ang Windows, Linux PC, at macOS). Narito ang utos upang simulan ang minikube:

> simulan ang minikube



Hakbang 2: Paganahin ang Ingress Controller

Ipapakita namin kung paano i-activate ang NGINX Ingress controller sa hakbang na ito. Isagawa ang sumusunod na utos:

> minikube addons paganahin pagpasok



Hakbang 3: I-verify Kung Gumagana o Hindi ang NGINX Ingress Controller

Ngayon, mahalagang i-verify kung aktibo o hindi ang NGINX controller. Ang utos na sumusunod ay maaaring gamitin upang kumpirmahin na:

> kubectl makakuha ng mga pod -n pagpasok-nginx



Pakitandaan na maaaring hindi mo mapansin na gumagana nang maayos ang mga pod na ito nang hanggang isang minuto. Ang output ay ipinapakita sa nakaraang larawan.

Hakbang 4: Gumawa ng Hello World App

Dito, ginagamit namin ang sumusunod na command upang lumikha ng deployment:

> kubectl lumikha ng deployment web --larawan =gcr.io / google-samples / hello-app: 1.0



Ang utos na naisakatuparan at ang mga resulta nito ay naka-attach sa nakaraang larawan. Sa output, makikita ang 'hello-app'.

Hakbang 5: Ilantad ang Deployment

Ngayon, magpapakita kami sa iyo ng isang utos upang ilantad ang isang partikular na deployment. Ang utos ay binanggit tulad ng sumusunod:

> kubectl expose deployment Kalsoom  - -uri =NodePort --port = 8080



Makikita mo ang output na 'service/kalsoom exposed' sa nakaraang larawan.

Hakbang 6: Bisitahin ang Serbisyo sa pamamagitan ng NodePort

Ito ay isang mahalagang hakbang kung saan ipinapakita namin sa iyo kung paano mo mabibisita ang nilikhang serbisyo sa pamamagitan ng NodePort. Ang utos upang makamit ang layuning ito ay ibinibigay sa sumusunod:

> serbisyo ng minikube Kalsoom  --url



Ang utos kasama ang output ay naka-attach sa nakaraang larawan.

Ngayon, ginagawang simple ng Minikube IP address at NodePort na tingnan ang sample na app. Maaari mong gamitin ang mapagkukunan ng Ingress upang ma-access ang app sa sumusunod na hakbang.

Hakbang 7: Gumawa ng Ingress

Dito, lumikha kami ng Ingress na nagpapadala ng trapiko sa iyong Serbisyo. Ang utos ay binanggit tulad ng sumusunod:

> kubectl apply -f https: // k8s.io / mga halimbawa / serbisyo / networking / halimbawa-pagpasok.yaml



Tulad ng nakikita mo, matagumpay na naisakatuparan ang utos.

Hakbang 8: I-verify ang IP Address

Sinusuri namin kung ang IP address ay nakatakda o hindi. Para doon, ginagamit namin ang sumusunod na ibinigay na utos:

> kubectl makakuha ng pagpasok



Sa output, dapat mong makita ang isang IPv4 address sa column na ADDRESS.

Konklusyon

Ang isang pangkalahatang-ideya ng pag-log ng NGINX Ingress Controller ay ibinigay sa artikulong ito. Upang buod, ang mga log ng access at error para sa NGINX kasama ang mga log mula sa proseso ng Ingress Controller na lumilikha ng configuration ng NGINX at nire-reload ang NGINX upang ilapat ito, ay ginawang available ng NGINX Ingress Controller.