ProHoster > ΠΠ»ΠΎΠ³ > Pagdumala > Mga tip ug trick sa Kubernetes: naandan nga mga panid sa sayup sa NGINX Ingress
Mga tip ug trick sa Kubernetes: naandan nga mga panid sa sayup sa NGINX Ingress
Niini nga artikulo, gusto nakong hisgutan ang bahin sa duha ka bahin sa NGINX Ingress nga may kalabutan sa pagpakita sa personal nga mga panid sa sayup, ingon man ang ilang mga limitasyon ug mga paagi sa paglibot niini.
1. Usba ang default backend
Sa kasagaran, ang NGINX Ingress naggamit sa default backend, nga naghimo sa katugbang nga function. Nagpasabot kini nga kung mangayo ug Ingress nga adunay host nga wala sa mga kapanguhaan sa Ingress, makuha namon kini nga panid nga adunay 404 nga tubag nga code:
Bisan pa, labi ka kanunay, ang among mga kliyente moabut uban ang usa ka hangyo nga ipakita ang ilang panid nga adunay logo sa kompanya ug uban pang mga pasilidad imbes sa sumbanan nga 404. Alang niini, ang NGINX Ingress adunay built-in nga kapabilidad pagpasabot pag-usab default-backend-service. Gipasa namo ang format nga rekord isip argumento sa opsyon sa samang ngalan namespace/servicename. Ang service port kinahanglang 80.
Aron mahimo kini, kinahanglan nimo nga maghimo sa imong kaugalingon nga pod (deployment) ug usa ka serbisyo sa imong aplikasyon (pananglitan nga pagpatuman sa YAML gikan sa ingress-nginx repository), nga ihatag imbes sa default backend.
Ania ang gamay nga ilustrasyon:
~$ curl -i -XGET http://sadsdasdas.kube-cloud.my/
HTTP/1.1 404 Not Found
Date: Mon, 11 Mar 2019 05:38:15 GMT
Content-Type: */*
Transfer-Encoding: chunked
Connection: keep-alive
<span>The page you're looking for could not be found.</span>
Mao nga ang tanan nga mga domain nga dili klaro nga gihimo pinaagi sa YAML nga adunay kind: Ingress, nahulog sa default-backend. Sa listahan sa ibabaw, kini nga domain nahimong sadsdasdas.
2. Pagdumala sa mga sayop sa HTTP sa aplikasyon pinaagi sa default backend
Ang laing sitwasyon mao ang mga hangyo nga natapos sa HTTP errors (404, 500, 502β¦) sa usa ka aplikasyon nga wala magdumala sa maong mga sitwasyon (ang katugbang nga nindot nga mga panid wala mamugna). Mahimo usab kini tungod sa tinguha sa mga developer nga ibalik ang parehas nga mga panid sa sayup sa daghang mga aplikasyon.
Aron ipatuman kini nga kaso sa bahin sa server, kinahanglan namon:
Sunda ang mga instruksyon sa ibabaw gikan sa paragraph mahitungod sa default backend;
Idugang ang yawe sa configuration ConfigMap nginx-ingress custom-http-errors, pananglitan, uban sa bili 404,503 (klaro nga motakdo sa mga error code nga nasakup sa bag-ong lagda).
Ang gipaabot nga resulta makab-ot: kung ang aplikasyon sa kliyente nagdagan ug nakadawat usa ka sayup nga adunay 404 o 503 nga tubag nga code, ang hangyo awtomatiko nga i-redirect sa bag-ong default backend ...
Bisan pa, kung maghimo usa ka aplikasyon alang sa default backend ug custom-http-errors, kinahanglan nga tagdon ang usa ka hinungdanon nga bahin:
!!! Important The custom backend is expected to return the correct HTTP status code instead of 200. NGINX does not change the response from the custom default backend.
Ang tinuod mao nga kung ang hangyo gi-redirect, ang mga ulohan adunay sulud nga mapuslanon nga kasayuran sa miaging code sa pagtubag ug dugang nga kasayuran (ang ilang tibuuk nga lista magamit dinhi).
Kini nagpasabut nga kinahanglan nimo ampingi ang saktong response code. Ania ang usa ka pananglitan gikan sa dokumentasyon kung giunsa kini paglihok.
Lahi nga mga aplikasyon - lainlain nga default backend
Aron ang solusyon dili global alang sa tibuok cluster, apan magamit lamang sa piho nga mga aplikasyon, una kinahanglan nimo nga susihon ang bersyon sa Ingress. Kon kini motakdo 0.23 o labaw pa, gamita ang lumad nga Ingress annotation:
Mahimo natong ipasabut pag-usab default-backend alang sa matag usa Ingress uban sa anotasyon;
Mahimo natong ipasabut pag-usab custom-http-errors alang sa matag usa Ingress uban sa anotasyon.
Ingon usa ka sangputanan, ang kapanguhaan sa Ingress mahimong ingon niini:
Sa kini nga kaso, ang 404 ug 502 nga mga sayup ibalhin sa serbisyo sa mga panid sa sayup nga adunay tanan nga kinahanglan nga mga ulohan.
Π Ang nangaging mga bersyon sa Ingress wala niini nga bahin. (makamatay nga pasalig sa 0.23). Ug kung ikaw adunay 2 nga hingpit nga lainlain nga mga aplikasyon nga nagdagan sa imong cluster ug gusto nimong ipiho ang lainlaing mga default-backend-service ug pagdumala sa lainlaing mga code sa sayup alang sa matag usa niini, kinahanglan nimo nga mogamit mga workarounds alang niini, diin kami adunay duha.
Ingress <0.23: duol sa usa
Kini nga kapilian mas simple. Ingon usa ka aplikasyon nga naghubad sa mga panid niini, kami adunay yano nga HTML, nga wala mahibal-an kung unsaon pagtan-aw sa mga ulohan ug pagbalik sa husto nga mga code sa pagtubag. Ang ingon nga aplikasyon gilusad sa Ingress nga adunay url /error-pages, ug sa direktoryo ws ihatag HTML.
Ang serbisyo alang niini nga pag-deploy kinahanglan nga tipo nga ClusterIP.
Sa samang higayon, sa aplikasyon diin atong dumalahon ang sayop, sa Ingress atong idugang ang server-snippet o configuration-snippet nga adunay mosunod nga sulod:
Usa ka variant alang sa usa ka aplikasyon nga makaproseso sa mga ulohan ... Ug sa kinatibuk-an, kini usa ka mas husto nga paagi, hinulaman gikan sa custom-http-errors. Ang paggamit niini nga mano-mano (pagkopya) magtugot kanimo nga dili usbon ang mga setting sa kalibutan.
Ang mga lakang mao ang mosunod. Kami nagmugna parehas nga deployment nga adunay aplikasyon nga makapamati sa husto nga mga ulohan ug makatubag sa husto. Gidugang namo ang mga aplikasyon sa server-snippet sa Ingress nga adunay mosunod nga sulod:
Sama sa imong nakita, alang sa matag sayup nga gusto namon nga iproseso, kinahanglan namon nga maghimo sa among kaugalingon nga lokasyon, diin ang tanan nga kinahanglan nga mga ulohan ilisan, sama sa "lumad" custom-error-pages. Niining paagiha makahimo kami og lain-laing personalized nga mga panid sa sayop bisan alang sa indibidwal nga mga lokasyon ug mga server.