Leideanna & cleasanna Kubernetes: leathanaigh earráide saincheaptha in NGINX Ingress
San Airteagal seo, ba mhaith liom labhairt faoi dhá ghné de NGINX Ingress a bhaineann le leathanaigh earráide pearsantaithe a thaispeáint, chomh maith leis na teorainneacha atá iontu agus bealaí chun oibriú timpeall orthu.
1. Athrú ar an inneall réamhshocraithe
De réir réamhshocraithe, úsáideann NGINX Ingress an t-inneall réamhshocraithe, a chomhlíonann an fheidhm chomhfhreagrach. Ciallaíonn sé seo, nuair a iarrann Ingress óstach nach bhfuil sna hacmhainní Ingress, go bhfaighimid an leathanach seo a leanas le cód freagartha 404:
Mar sin féin, níos mó agus níos minice a thagann ár gcliaint le hiarratas chun a leathanach a thaispeáint le lógó corparáideach agus áiseanna eile in ionad an 404 caighdeánach. Chun seo a dhéanamh, tá NGINX Ingress cumas ionsuite ath-shainmhíniú default-backend-service. Gabhaimid an iontráil formáide mar argóint chuig an rogha den ainm céanna namespace/servicename. Ba cheart go mbeadh port na seirbhíse 80.
Chun seo a dhéanamh, ní mór duit do pod féin (imscaradh) agus seirbhís a chruthú le d'iarratas (cur i bhfeidhm shamplach in YAML ón stór ingress-nginx), a thabharfar in ionad an inneall réamhshocraithe.
Seo léiriú beag:
~$ 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>
Mar sin, gach fearann nach bhfuil cruthaithe go sainráite trí YAML le kind: Ingress, titim isteach réamhshocraithe-backend. Sa liosta thuas, tháinig an fearann seo sadsdasdas.
2. Déileáil le hearráidí HTTP san iarratas ag baint úsáide as an inneall réamhshocraithe
Staid eile is ea iarratais a chríochnaíonn le hearráidí HTTP (404, 500, 502...) ar fheidhmchlár nach bpróiseálann cásanna den sórt sin (ní ghintear na leathanaigh áille comhfhreagracha). D'fhéadfadh sé seo a bheith mar gheall ar mhian na bhforbróirí na leathanaigh earráide céanna a sheirbheáil in ilfheidhmchláir.
Chun an cás seo a chur i bhfeidhm ar thaobh an fhreastalaí ní mór dúinn:
Lean na treoracha thuas ón alt faoi inneall réamhshocraithe;
Cuir eochair leis an chumraíocht nginx-ingress ConfigMap custom-http-errors, mar shampla, leis an luach 404,503 (is léir go gcomhfhreagraíonn sé do na cóid earráide atá clúdaithe ag an riail nua).
Baineadh amach an toradh a bhfuiltear ag súil leis: nuair a bhíonn feidhmchlár an chliaint ag rith agus nuair a fhaigheann sé earráid le cód freagartha 404 nó 503, déanfar an t-iarratas a atreorú go huathoibríoch chuig an inneall réamhshocraithe nua...
Mar sin féin, agus feidhmchlár á fhorbairt le haghaidh inneall réamhshocraithe agus earráidí saincheaptha-http, ní mór duit gné thábhachtach a chur san áireamh:
!!! 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.
Is é fírinne an scéil, nuair a atreoraítear iarratas, go mbeidh faisnéis úsáideach sna ceannteidil leis an gcód freagartha roimhe seo agus faisnéis bhreise (tá a liosta iomlán ar fáil anseo).
Ciallaíonn sé seo go gcaithfidh tú féin aire a thabhairt don chód freagartha ceart. Seo sampla ón doiciméadú conas a oibríonn sé.
Tá backends réamhshocraithe éagsúla ag feidhmchláir éagsúla
Chun a chinntiú nach bhfuil an réiteach domhanda don bhraisle iomlán, ach nach mbaineann sé ach le feidhmchláir shonracha, ní mór duit an leagan Ingress a sheiceáil ar dtús. Má oireann sé 0.23 nó níos airde, úsáid na nótaí dúchasacha Ingress:
Sa chás seo, déanfar earráidí 404 agus 502 a atreorú chuig an tseirbhís leathanaigh earráide leis na ceanntásca riachtanacha go léir.
В ní raibh an ghné seo ag leaganacha roimhe seo de Ingress (gealltanas cinniúnach ar 0.23). Agus má tá 2 fheidhmchlár go hiomlán difriúil agat ag rith i do bhraisle agus gur mhaith leat backend-seirbhís réamhshocraithe difriúil a shonrú agus cóid earráide éagsúla a phróiseáil le haghaidh gach ceann acu, beidh ort réitigh oibre a úsáid, agus tá dhá cheann acu sin againn.
Ingress < 0.23: cuir chuige a haon
Tá an rogha seo níos simplí. Mar fheidhmchlár a fhreastalaíonn ar a leathanaigh, tá HTML rialta againn, nach bhfuil a fhios conas breathnú ar na ceanntásca agus na cóid freagartha cearta a sheoladh ar ais. Déantar feidhmchlár den sórt sin a rolladh amach le Ingress ón url /error-pages, agus sa chatalóg ws beidh an HTML ar ais.
Caithfidh an tseirbhís don imscaradh seo a bheith den chineál ClusterIP.
Ag an am céanna, san fheidhmchlár ina bpróiseálfaimid an earráid, cuirimid isteach in Ingress blúire freastalaí nó blúire cumraíochta leis an ábhar seo a leanas:
Rogha d'fheidhmchlár atá in ann ceanntásca a phróiseáil... Agus go ginearálta is bealach níos ceart é seo, a fuarthas ar iasacht ó earráidí saincheaptha-http. Má úsáideann tú é de láimh (cóipeáil) ní bheidh tú in ann socruithe domhanda a athrú.
Is iad seo a leanas na céimeanna. Cruthaímid imscaradh céanna le feidhmchlár atá in ann éisteacht leis na ceannlínte riachtanacha agus freagairt i gceart. Cuir blúire freastalaí leis an bhfeidhmchlár Ingress leis an ábhar seo a leanas:
Mar a fheiceann tú, le haghaidh gach earráid a theastaíonn uainn a phróiseáil, ní mór dúinn ár suíomh féin a dhéanamh, ina gcuirfear na ceannteidil riachtanacha go léir isteach, mar atá sa cheann “dúchais”. saincheaptha-earráid-leathanaigh. Ar an mbealach seo is féidir linn leathanaigh earráide pearsantaithe éagsúla a chruthú fiú le haghaidh láithreacha agus freastalaithe aonair.