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.