ProHoster > Blog > Rianachd > Ro-ràdh mu phoileasaidhean lìonra Kubernetes airson Proifeasantaich Tèarainteachd
Ro-ràdh mu phoileasaidhean lìonra Kubernetes airson Proifeasantaich Tèarainteachd
Thoir an aire. eadar-theangachadh.: Tha còrr air 20 bliadhna de eòlas aig ùghdar an artaigil, Reuven Harrison, ann an leasachadh bathar-bog, agus an-diugh tha an CTO agus co-stèidheadair Tufin, companaidh a chruthaicheas fuasglaidhean riaghlaidh poileasaidh tèarainteachd. Fhad ‘s a tha e a’ faicinn poileasaidhean lìonra Kubernetes mar inneal gu math cumhachdach airson sgaradh lìonra ann am brabhsair, tha e cuideachd den bheachd nach eil iad cho furasta an cleachdadh ann an cleachdadh. Tha an stuth seo (gu math voluminous) ag amas air mothachadh eòlaichean mun chùis seo a leasachadh agus an cuideachadh gus na rèiteachaidhean riatanach a chruthachadh.
An-diugh, tha mòran chompanaidhean a 'sìor fhàs a' taghadh Kubernetes airson na tagraidhean aca a ruith. Tha ùidh anns a’ bhathar-bog seo cho àrd is gu bheil cuid a’ gairm Kubernetes “an siostam obrachaidh ùr airson an ionad dàta.” Mean air mhean, tha Kubernetes (no k8s) a’ tòiseachadh air fhaicinn mar phàirt dheatamach den ghnìomhachas, a dh’ fheumas pròiseasan gnìomhachais aibidh a chuir air dòigh, a’ toirt a-steach tèarainteachd lìonra.
Do phroifeasantaich tèarainteachd a tha fo imcheist a bhith ag obair le Kubernetes, is dòcha gur e am fìor fhoillseachadh am poileasaidh bunaiteach aig an àrd-ùrlar: leig leis a h-uile càil.
Cuidichidh an iùl seo thu le bhith a’ tuigsinn structar taobh a-staigh phoileasaidhean lìonra; tuigsinn mar a tha iad eadar-dhealaichte bho na riaghailtean airson ballachan teine cunbhalach. Còmhdaichidh e cuideachd cuid de dhuilgheadasan agus bheir e seachad molaidhean gus cuideachadh le bhith a’ dìon thagraidhean air Kubernetes.
Poileasaidhean lìonra Kubernetes
Leigidh uidheamachd poileasaidh lìonra Kubernetes leat eadar-obrachadh thagraidhean a tha air an cleachdadh air an àrd-ùrlar aig ìre an lìonraidh (an treas fear ann am modal OSI) a riaghladh. Tha dìth cuid de na feartan adhartach aig ballachan teine an latha an-diugh ann am poileasaidhean lìonra, leithid cur an gnìomh OSI Layer 7 agus lorg bagairtean, ach tha iad a’ toirt seachad ìre bunaiteach de thèarainteachd lìonra a tha na dheagh thoiseach tòiseachaidh.
Bidh poileasaidhean lìonra a 'cumail smachd air conaltradh eadar pods
Tha eallach obrach ann an Kubernetes air an sgaoileadh thairis air pods, anns a bheil aon no barrachd shoithichean air an cleachdadh còmhla. Bidh Kubernetes a’ sònrachadh gach pod seòladh IP a tha ruigsinneach bho pods eile. Bidh poileasaidhean lìonra Kubernetes a’ suidheachadh chòraichean-slighe airson buidhnean de pods san aon dòigh ’s a bhios buidhnean tèarainteachd san sgòth air an cleachdadh gus smachd a chumail air ruigsinneachd air suidheachaidhean inneal brìgheil.
A 'mìneachadh Poileasaidhean Lìonra
Coltach ri goireasan Kubernetes eile, tha poileasaidhean lìonra air an sònrachadh ann an YAML. Anns an eisimpleir gu h-ìosal, an tagradh balance ruigsinneachd gu postgres:
(Thoir an aire. eadar-theangachadh.: chaidh an dealbh-sgrìn seo, mar a h-uile gin eile den aon seòrsa, a chruthachadh gun a bhith a’ cleachdadh innealan dùthchasach Kubernetes, ach a’ cleachdadh an inneal Tufin Orca, a chaidh a leasachadh le companaidh ùghdar an artaigil thùsail agus air a bheil iomradh aig deireadh an stuth.)
Gus am poileasaidh lìonra agad fhèin a mhìneachadh, bidh feum agad air eòlas bunaiteach air YAML. Tha an cànan seo stèidhichte air indentation (sònraichte le beàrnan seach tabaichean). Buinidh eileamaid fhollaiseach don eileamaid cheangailte as fhaisge os a chionn. Bidh eileamaid liosta ùr a’ tòiseachadh le tàthan, tha cruth aig gach eileamaid eile iuchrach-luach.
An dèidh cunntas a thoirt air a’ phoileasaidh ann an YAML, cleachd cubectla chruthachadh anns a' chòmhlan :
kubectl create -f policy.yaml
Sònrachadh Poileasaidh Lìonra
Tha ceithir eileamaidean ann an sònrachadh poileasaidh lìonra Kubernetes:
podSelector: a 'mìneachadh nam pods air a bheil am poileasaidh seo (targaidean) a' toirt buaidh - a dhìth;
policyTypes: a’ comharrachadh dè an seòrsa phoileasaidhean a tha air an gabhail a-steach ann an seo: dol a-steach agus/no dol a-mach - roghainneil, ach tha mi a’ moladh a shònrachadh gu soilleir anns a h-uile cùis;
Thoir an aire nach fheum na ceithir eileamaidean a bhith air an toirt a-steach. Tha e dìreach riatanach podSelector, faodar paramadairean eile a chleachdadh mar a thogras tu.
Ma dh'fhàgas tu policyTypes, bidh am poileasaidh air a mhìneachadh mar a leanas:
Gu gnàthach, thathas a’ gabhail ris gu bheil e a’ mìneachadh an taobh ingress. Mura h-eil am poileasaidh ag innse seo gu soilleir, gabhaidh an siostam ris gu bheil casg air a h-uile trafaic.
Bidh an giùlan air an taobh a-muigh air a dhearbhadh le làthaireachd no neo-làthaireachd am paramadair slighe a-mach co-fhreagarrach.
Gus mearachdan a sheachnadh tha mi a’ moladh an-còmhnaidh ga dhèanamh soilleir policyTypes.
A rèir an loidsig gu h-àrd, ma tha na crìochan ingress agus / no egress air a fàgail air falbh, bidh am poileasaidh a' diùltadh trafaig gu lèir (faic "Stripping Rule" gu h-ìosal).
Tha am poileasaidh bunaiteach Ceadaich
Mura h-eil poileasaidhean air am mìneachadh, leigidh Kubernetes leis a h-uile trafaic gu bunaiteach. Faodaidh a h-uile pod fiosrachadh iomlaid gu saor eatorra fhèin. Is dòcha gu bheil seo a’ coimhead mì-thuigseach bho shealladh tèarainteachd, ach cuimhnich gun deach Kubernetes a dhealbhadh an toiseach le luchd-leasachaidh gus eadar-obrachalachd tagraidh a chomasachadh. Chaidh poileasaidhean lìonraidh a chur ris nas fhaide air adhart.
Àiteachan ainmean
Is e àiteachan ainmean inneal co-obrachaidh Kubernetes. Tha iad air an dealbhadh gus àrainneachdan loidsigeach a sgaradh bho chèile, fhad ‘s a tha conaltradh eadar àiteachan ceadaichte gu bunaiteach.
Coltach ris a’ mhòr-chuid de cho-phàirtean Kubernetes, tha poileasaidhean lìonra beò ann an àite ainm sònraichte. Anns a 'bhloc metadata faodaidh tu sònrachadh dè an t-àite dham buin am poileasaidh:
Mura h-eil an t-ainm-fànais air a shònrachadh gu soilleir anns a' mheata-dàta, cleachdaidh an siostam an t-ainm-fànais a chaidh a shònrachadh ann an kubectl (gu bunaiteach namespace=default):
kubectl apply -n my-namespace -f namespace.yaml
Tha mi a ’moladh sònraich àite-ainm gu soilleir, mura h-eil thu a’ sgrìobhadh poileasaidh a tha ag amas air grunn ainmean-àite aig an aon àm.
Основной eileamaid podSelector anns a’ phoileasaidh taghaidh e pods bhon rum-ainm dham buin am poileasaidh (tha e air a dhiùltadh cothrom air pods bho àite-ainm eile).
San aon dòigh, podSelectors ann am blocaichean a-steach agus a-mach chan urrainn dhaibh ach pods a thaghadh bhon àite-ainm aca fhèin, mura h-eil thu gu dearbh gan cur còmhla riutha namespaceSelector (thèid seo a dheasbad anns an earrainn “Filter by namesspaces and pods”).
Riaghailtean Ainmeachaidh Poileasaidh
Tha ainmean poileasaidh gun samhail anns an aon àite-ainm. Chan fhaod dà phoileasaidh leis an aon ainm a bhith san aon àite, ach faodaidh poileasaidhean leis an aon ainm a bhith ann an diofar àiteachan. Tha seo feumail nuair a tha thu airson an aon phoileasaidh ath-chleachdadh thar iomadh àite.
Is toil leam gu sònraichte aon de na dòighean ainmeachaidh. Tha e a’ toirt a-steach a bhith a’ cothlamadh an ainm spacespace leis na pods targaid. Mar eisimpleir:
Faodaidh tu bileagan àbhaisteach a cheangal ri nithean Kubernetes, leithid pods agus ainmean-àite. suaicheantasan (bileagan - tagaichean) co-ionann ri tagaichean san sgòth. Bidh poileasaidhean lìonra Kubernetes a 'cleachdadh bileagan airson taghadh podsris a bheil iad a’ buntainn:
podSelector:
matchLabels:
role: db
… or àiteachan ainmeanris a bheil iad a’ buntainn. Bidh an eisimpleir seo a’ taghadh a h-uile pod ann an ainmean-àite leis na bileagan co-fhreagarrach:
Aon rabhadh: nuair a bhios tu a 'cleachdadh namespaceSelectordèan cinnteach gu bheil an leubail cheart anns na h-àiteachan-ainm a thaghas tu. Thoir an aire gu bheil àiteachan-ainm stèidhichte mar default и kube-system, gu gnàthach chan eil bileagan ann.
Faodaidh tu leubail a chur ri àite mar seo:
kubectl label namespace default namespace=default
Aig an aon àm, namespace anns an earrann metadata bu chòir iomradh a thoirt air an fhìor ainm fànais, chan e an leubail:
Tha poileasaidhean balla-teine a’ toirt a-steach riaghailtean le stòran agus cinn-uidhe. Tha poileasaidhean lìonra Kubernetes air am mìneachadh airson targaid - seata de pods ris a bheil iad a’ buntainn - agus an uairsin suidhich riaghailtean airson trafaic a-steach agus / no a-mach. Anns an eisimpleir againn, is e targaid a’ phoileasaidh a h-uile pod san ainm-àite default le suaicheantas le iuchair app agus brìgh db:
Fo-roinn ingress anns a 'phoileasaidh seo, a' fosgladh trafaig a 'tighinn a-steach gu na pods targaid. Ann am faclan eile, is e ingress an stòr agus is e targaid an ceann-uidhe co-fhreagarrach. Mar an ceudna, is e slighe a-mach an ceann-uidhe agus is e an targaid a thùs.
Tha seo co-ionann ri dà riaghailt balla-teine: Ingress → Target; Amas → A-mach.
Egress agus DNS (cudromach!)
Le bhith a’ cuingealachadh trafaic a-mach, Thoir aire shònraichte do DNS - Bidh Kubernetes a’ cleachdadh na seirbheis seo gus seirbheisean a mhapadh gu seòlaidhean IP. Mar eisimpleir, chan obraich am poileasaidh a leanas leis nach do leig thu leis an tagradh balance ruigsinneachd DNS:
An eileamaid mu dheireadh to falamh, agus mar sin tha e a’ taghadh gu neo-dhìreach a h-uile pod anns gach àite ainm, a' ceadachadh balance cuir ceistean DNS chun t-seirbheis iomchaidh Kubernetes (mar as trice a’ ruith san àite kube-system).
Tha an dòigh-obrach seo ag obair, ge-tà ro cheadach agus neo-chinnteach, oir tha e a 'leigeil le ceistean DNS a bhith air an stiùireadh taobh a-muigh a' bhraisle.
Faodaidh tu a leasachadh ann an trì ceumannan leantainneach.
1. Ceadaich DNS ceistean a-mhàin taobh a-staigh cruinneachadh le bhith a’ cur namespaceSelector:
2. Ceadaich DNS ceistean taobh a-staigh namespace a-mhàin kube-system.
Gus seo a dhèanamh feumaidh tu leubail a chur ris an àrainn-ainm kube-system: kubectl label namespace kube-system namespace=kube-system - agus sgrìobh e sìos ann an cleachdadh poileasaidh namespaceSelector:
3. Faodaidh daoine paranoid a dhol eadhon nas fhaide agus cuingealachadh DNS ceistean gu seirbheis DNS sònraichte a-steach kube-system. Innsidh an earrann “Filter by namespaces AND pods” dhut mar a choileanas tu seo.
Is e roghainn eile DNS fhuasgladh aig ìre namespace. Anns a 'chùis seo, cha bhith feum air fhosgladh airson gach seirbheis:
Falamh podSelector a’ taghadh a h-uile pod san namespace.
A 'chiad gheama agus òrdugh riaghailt
Ann am ballachan teine àbhaisteach, tha an gnìomh (Ceadaich no diùltadh) air pacaid air a dhearbhadh leis a 'chiad riaghailt a tha e a' coileanadh. Ann an Kubernetes, chan eil òrdugh phoileasaidhean gu diofar.
Gu gnàthach, nuair nach eil poileasaidhean air an suidheachadh, tha conaltradh eadar pods ceadaichte agus faodaidh iad fiosrachadh iomlaid gu saor. Cho luath ‘s a thòisicheas tu a’ cur ri chèile phoileasaidhean, bidh gach pod air an tug co-dhiù aon dhiubh buaidh air a bhith aonaranach a rèir sgaradh (loidsigeach OR) nam poileasaidhean uile a thagh e. Tha pods nach eil fo bhuaidh poileasaidh sam bith fhathast fosgailte.
Faodaidh tu an giùlan seo atharrachadh le bhith a 'cleachdadh riaghailt stripping.
Riaghailt strì (“Aicheadh”)
Mar as trice bidh poileasaidhean balla-teine a’ diùltadh trafaic sam bith nach eil ceadaichte gu sònraichte.
Chan eil gnìomh diùltadh ann an Kubernetes, ge-tà, faodar an aon bhuaidh a choileanadh le poileasaidh cunbhalach (ceadachail) le bhith a’ taghadh buidheann falamh de pods stòr (inntrigeadh):
Thoir fa-near sin bidh prìomhachas aig poileasaidhean sam bith a bharrachd a leigeas le trafaic pods san ainm-àite a bhith air thoiseach air an riaghailt seo (coltach ri riaghailt ceadachaidh a chur ris mus tèid riaghailt diùltadh ann an rèiteachadh balla-teine).
Ceadaich a h-uile càil (Any-Any-Any-Allow)
Gus poileasaidh Ceadaich Uile a chruthachadh, feumaidh tu cur ris a’ phoileasaidh diùltadh gu h-àrd le eileamaid falamh ingress:
Tha e a 'toirt cothrom faighinn a-steach bho a h-uile pod anns a h-uile h-ainm (agus a h-uile IP) gu pod sam bith san ainm-àite default. Tha an giùlan seo air a chomasachadh gu bunaiteach, agus mar sin mar as trice chan fheum e a bhith air a mhìneachadh tuilleadh. Ach, uaireannan is dòcha gum feum thu ceadan sònraichte a chuir dheth airson ùine gus an duilgheadas a dhearbhadh.
Faodar an riaghailt a chaolachadh gus leigeil le ruigsinneachd a-mhàin seata sònraichte de phònaichean (app:balance) anns an ainm-àite default:
Tha poileasaidhean air an cur còmhla a’ cleachdadh OR loidsigeach aig trì ìrean; Tha ceadan gach pod air an suidheachadh a rèir dealachadh a h-uile poileasaidh a bheir buaidh air:
1. Anns na raointean from и to Faodar trì seòrsaichean eileamaidean a mhìneachadh (tha iad uile air an cur còmhla a’ cleachdadh OR):
namespaceSelector - tagh an t-ainm-àite gu lèir;
podSelector - tagh pods;
ipBlock - a 'taghadh subnet.
A bharrachd air an sin, tha an àireamh de eileamaidean (eadhon feadhainn co-ionann) ann am fo-roinnean from/to gun a bhith cuingealaichte. Thèid iad uile a chur còmhla le loidsigeach OR.
2. Taobh a-staigh an earrann poileasaidh ingress faodaidh mòran eileamaidean a bhith ann from (còmhla ri loidsigeach OR). Mar an ceudna, earrann egress faodaidh grunn eileamaidean a bhith ann to (cuideachd air a chur còmhla le dì-cheangail):
3. Tha diofar phoileasaidhean cuideachd air an cur còmhla ri OR loidsigeach
Ach nuair a thèid an cur còmhla, tha aon chuingealachadh air dè chomharraichChris Cooney: Chan urrainn dha Kubernetes ach poileasaidhean a chur còmhla le diofar policyTypes (Ingress no Egress). Bidh poileasaidhean a tha a’ mìneachadh dol a-steach (no dol a-mach) a’ sgrìobhadh thairis air a chèile.
Dàimh eadar ainmean-àite
Gu gnàthach, tha roinneadh fiosrachaidh eadar ainmean-àite ceadaichte. Faodar seo atharrachadh le bhith a’ cleachdadh poileasaidh diùltadh a chuireas casg air trafaic a’ dol a-mach agus/no a’ tighinn a-steach don raon-ainm (faic “Stripping Rule”) gu h-àrd).
Aon uair ‘s gu bheil thu air casg a chuir air ruigsinneachd gu àite ainm (faic an“ Riaghailt Stripping ”gu h-àrd), faodaidh tu eisgeachdan a dhèanamh don phoileasaidh àicheadh le bhith a’ ceadachadh ceanglaichean bho àite ainm sònraichte a ’cleachdadh namespaceSelector:
Mar thoradh air an sin, tha a h-uile pod san ainm-àite default bidh cothrom aige air pods postgres ann an ainm-àite database. Ach dè ma tha thu airson ruigsinneachd fhosgladh postgres dìreach pods sònraichte san ainm-àite default?
Criathraich a rèir àiteachan ainmean agus pods
Leigidh dreach Kubernetes 1.11 agus nas àirde dhut gnìomhaichean a chur còmhla namespaceSelector и podSelector cleachdadh loidsigeach AND.Tha e a’ coimhead mar seo:
Carson a tha seo air a mhìneachadh mar AND an àite an OR àbhaisteach?
thoir fa-near sin podSelector chan eil e a’ tòiseachadh le tàthan. Ann an YAML tha seo a’ ciallachadh sin podSelector agus 'na sheasamh fa chomhair namespaceSelector thoir iomradh air an aon eileamaid liosta. Mar sin, tha iad air an cur còmhla ri loidsigeach AND.
A' cur tàthan ris roimhe podSelector mar thoradh air an sin nochdaidh eileamaid liosta ùr, a thèid a chur còmhla ris an fhear roimhe namespaceSelector cleachdadh loidsigeach OR.
Gus pods a thaghadh le leubail sònraichte anns gach ainm, cuir a-steach bàn namespaceSelector:
Tha riaghailtean airson balla-teine le iomadh rud (luchd-aoigheachd, lìonraidhean, buidhnean) air an cur còmhla a 'cleachdadh OR loidsigeach. Obraichidh an riaghailt a leanas ma tha stòr a’ phacaid a’ maidseadh Host_1 NO Host_2:
Air an làimh eile, ann an Kubernetes tha na diofar bhileagan ann podSelector no namespaceSelector air an cur còmhla ri AND loidsigeach Mar eisimpleir, taghaidh an riaghailt a leanas pods air a bheil an dà leubail, role=db И version=v2:
podSelector:
matchLabels:
role: db
version: v2
Tha an aon reusanachadh a’ buntainn ris a h-uile seòrsa gnìomhaiche: luchd-taghaidh targaid poileasaidh, luchd-taghaidh pod, agus luchd-taghaidh ainmean-àite.
Subnets agus seòlaidhean IP (IPBlocks)
Bidh ballachan teine a 'cleachdadh VLANs, seòlaidhean IP, agus subnets gus lìonra a sgaradh.
Ann an Kubernetes, thèid seòlaidhean IP a shònrachadh gu pods gu fèin-ghluasadach agus faodaidh iad atharrachadh gu tric, agus mar sin bidh bileagan air an cleachdadh gus pods agus àiteachan-ainm a thaghadh ann am poileasaidhean lìonra.
Fo-lìonraidhean (ipBlocks) air an cleachdadh nuair a thathar a’ riaghladh cheanglaichean a-steach (a-steach) no a-mach (a-mach) taobh a-muigh (Tuath-Deas). Mar eisimpleir, tha am poileasaidh seo a’ fosgladh don h-uile pod bhon ainm-àite default cothrom air seirbheis DNS Google:
Tha an roghnaiche pod falamh san eisimpleir seo a’ ciallachadh “tagh a h-uile pod san ainm-àite.”
Chan eil am poileasaidh seo a’ ceadachadh ach slighe gu 8.8.8.8; tha ruigsinneachd air IP sam bith eile air a thoirmeasg. Mar sin, gu dearbh, tha thu air casg a chuir air ruigsinneachd air seirbheis Kubernetes DNS a-staigh. Ma tha thu fhathast airson fhosgladh, comharraich seo gu soilleir.
Mar as trice ipBlocks и podSelectors tha iad neo-eisimeileach dha chèile, leis nach eilear a’ cleachdadh seòlaidhean IP taobh a-staigh pods ipBlocks. Le bhith a’ comharrachadh pods IP a-staigh, leigidh tu ceanglaichean gu / bho pods leis na seòlaidhean sin. Ann an cleachdadh, cha bhi fios agad dè an seòladh IP a chleachdas tu, agus is e sin as coireach nach bu chòir an cleachdadh airson pods a thaghadh.
Mar fhrith-eisimpleir, tha am poileasaidh a leanas a’ toirt a-steach a h-uile IP agus mar sin a’ toirt cothrom air a h-uile pod eile:
Chan urrainn dhut ach ruigsinneachd fhosgladh gu IPan taobh a-muigh, ach a-mhàin seòlaidhean IP taobh a-staigh pods. Mar eisimpleir, ma tha subnet do pod 10.16.0.0/14:
Mar as trice bidh pods ag èisteachd ri aon phort. Tha seo a’ ciallachadh nach urrainn dhut dìreach àireamhan puirt a shònrachadh ann am poileasaidhean agus a h-uile càil fhàgail mar an àbhaist. Ach, thathas a’ moladh poileasaidhean a dhèanamh cho cuibhrichte ‘s a ghabhas, agus mar sin ann an cuid de chùisean faodaidh tu puirt a shònrachadh fhathast:
Thoir an aire gu bheil an tagraiche ports a’ buntainn ris a h-uile eileamaid sa bhloc to no from, anns a bheil. Gus diofar phuirt a shònrachadh airson seataichean eadar-dhealaichte de eileamaidean, sgoltadh ingress no egress ann an grunn fo-roinnean le to no from agus anns gach clàr do phuirt:
Ma dh’ fhàgas tu am mìneachadh port gu tur (ports), tha seo a 'ciallachadh a h-uile protocol agus a h-uile port;
Ma dh’ fhàgas tu am mìneachadh protocol (protocol), tha seo a 'ciallachadh TCP;
Ma dh’ fhàgas tu am mìneachadh port (port), tha seo a’ ciallachadh a h-uile port.
Cleachdadh as fheàrr: Na bi an urra ri luachan bunaiteach, sònraich na tha a dhìth ort gu soilleir.
Thoir an aire gum feum thu puirt pod a chleachdadh, chan e puirt seirbheis (barrachd air seo san ath pharagraf).
A bheil poileasaidhean air am mìneachadh airson pods no seirbheisean?
Mar as trice, bidh pods ann an Kubernetes a’ faighinn cothrom air a chèile tro sheirbheis - cothromachadh luchdan brìgheil a bhios ag ath-stiùireadh trafaic gu na pods a chuireas an t-seirbheis an gnìomh. Is dòcha gu bheil thu a’ smaoineachadh gu bheil poileasaidhean lìonraidh a’ cumail smachd air ruigsinneachd air seirbheisean, ach chan eil seo fìor. Bidh poileasaidhean lìonra Kubernetes ag obair air puirt pod, chan e puirt seirbheis.
Mar eisimpleir, ma dh’ èisteas seirbheis ri port 80, ach ma bheir e ath-stiùireadh air trafaic gu port 8080 de na pods aige, feumaidh tu 8080 a shònrachadh gu dìreach ann am poileasaidh an lìonraidh.
Bu chòir a bhith den bheachd gu bheil uidheamachd mar seo suboptimal: ma dh’ atharraicheas structar a-staigh na seirbheis (na puirt aig a bheil na pods ag èisteachd), feumar poileasaidhean lìonra ùrachadh.
Dòigh ailtireil ùr a’ cleachdadh Service Mesh (mar eisimpleir, faic mu Istio gu h-ìosal - approx. transl.) a 'toirt cothrom dhut dèiligeadh ris an duilgheadas seo.
A bheil e riatanach an dà chuid Ingress agus Egress a chlàradh?
Is e am freagairt ghoirid tha, gus am bi pod A a’ conaltradh ri pod B, feumaidh cead a bhith aige ceangal a-mach a chruthachadh (airson seo feumaidh tu poileasaidh slighe a-mach a rèiteachadh), agus feumaidh pod B a bhith comasach air gabhail ri ceangal a tha a’ tighinn a-steach ( airson seo, a rèir sin, feumaidh tu poileasaidh ingress).
Ach, ann an cleachdadh, faodaidh tu a bhith an urra ris a’ phoileasaidh bunaiteach gus ceanglaichean a cheadachadh ann an aon taobh no an dà thaobh.
Ma tha cuid pod-stòr thèid a thaghadh le aon no barrachd a-mach- luchd-poilitigs, thèid na cuingeadan a chuirear air a dhearbhadh leis an dealachadh aca. Anns a 'chùis seo, feumaidh tu ceangal a cheadachadh gu soilleir ris a' pod -chun an t-seoladair. Mura tèid pod a thaghadh le poileasaidh sam bith, tha an trafaic a-mach (a-mach) ceadaichte gu bunaiteach.
Mar an ceudna, tha an dàn don podneach-seòlaidh, air a thaghadh le aon no barrachd tighinn a-steach-poileataigs, air a dhearbhadh leis an dealachadh aca. Anns a 'chùis seo, feumaidh tu cead a thoirt dha trafaig fhaighinn bhon stòr pod. Mura tèid pod a thaghadh le poileasaidh sam bith, tha a h-uile trafaic a-steach air a cheadachadh gu bunaiteach.
Faic Stàiteil no Neo-stàite gu h-ìosal.
Logaichean
Chan urrainn do phoileasaidhean lìonra Kubernetes trafaic a chlàradh. Tha seo ga dhèanamh duilich faighinn a-mach a bheil poileasaidh ag obair mar a bha dùil agus a’ dèanamh mion-sgrùdadh tèarainteachd gu mòr.
Smachd air trafaic gu seirbheisean taobh a-muigh
Cha leig poileasaidhean lìonra Kubernetes leat ainm àrainn làn-theisteanas (DNS) a shònrachadh ann an earrannan slighe a-mach. Tha an fhìrinn seo a’ leantainn gu mì-ghoireas mòr nuair a thathar a’ feuchainn ri trafaic a chuingealachadh gu cinn-uidhe taobh a-muigh aig nach eil seòladh IP stèidhichte (leithid aws.com).
Sgrùdadh Poileasaidh
Bheir ballachan-teine rabhadh dhut no eadhon diùltadh gabhail ris a’ phoileasaidh ceàrr. Bidh Kubernetes cuideachd a’ dèanamh beagan dearbhaidh. Nuair a bhios iad a’ suidheachadh poileasaidh lìonra tro kubectl, faodaidh Kubernetes innse gu bheil e ceàrr agus diùltadh gabhail ris. Ann an cùisean eile, gabhaidh Kubernetes am poileasaidh agus lìonaidh e e leis an fhiosrachadh a tha a dhìth. Chithear iad a’ cleachdadh an àithne:
kubernetes get networkpolicy <policy-name> -o yaml
Cumaibh cuimhne nach eil siostam dearbhaidh Kubernetes do-chreidsinneach agus is dòcha gu bheil e ag ionndrainn cuid de mhearachdan.
Bàs
Chan eil Kubernetes a’ cur an gnìomh poileasaidhean lìonraidh fhèin, ach chan eil ann ach geata API a bhios a’ tiomnadh uallach smachd gu siostam bunaiteach ris an canar an Container Networking Interface (CNI). Tha suidheachadh phoileasaidhean air cruinneachadh Kubernetes gun a bhith a’ sònrachadh an CNI iomchaidh an aon rud ri bhith a’ cruthachadh phoileasaidhean air frithealaiche riaghlaidh balla-teine gun a bhith gan stàladh air ballachan teine. Tha e an urra riut dèanamh cinnteach gu bheil CNI iomchaidh agad no, a thaobh àrd-ùrlaran Kubernetes, air aoigheachd san sgòth (Chì thu liosta nan solaraichean an seo — mu thuairmeas. trans.), cuir an comas poileasaidhean lìonraidh a shuidhicheas CNI dhut.
Thoir an aire nach toir Kubernetes rabhadh dhut ma shuidhicheas tu poileasaidh lìonra às aonais an neach-cuideachaidh iomchaidh CNI.
Stàite neo gun stàit?
Tha a h-uile Kubernetes CNI a choinnich mi stàiteil (mar eisimpleir, bidh Calico a’ cleachdadh Linux conntrack). Leigidh seo leis a’ pod freagairtean fhaighinn air a’ cheangal TCP a thòisich e gun a bhith aige ri ath-stèidheachadh. Ach, chan eil mi mothachail air inbhe Kubernetes a bheireadh gealltanas stàiteil.
Riaghladh Poileasaidh Tèarainteachd Adhartach
Seo cuid de dhòighean air cur an gnìomh poileasaidh tèarainteachd ann an Kubernetes a leasachadh:
Bidh pàtran ailtireachd Mesh Seirbheis a’ cleachdadh soithichean taobh-chàraichean gus telemetry mionaideach agus smachd trafaic a thoirt seachad aig ìre seirbheis. Mar eisimpleir faodaidh sinn a ghabhail Istio.
Tha cuid de luchd-reic CNI air na h-innealan aca a leudachadh gus a dhol nas fhaide na poileasaidhean lìonra Kubernetes.
Tufin Orca A ’toirt seachad faicsinneachd agus fèin-ghluasad air poileasaidhean lìonra Kubernetes.
Bidh pasgan Tufin Orca a’ riaghladh poileasaidhean lìonra Kubernetes (agus is e sin stòr nan dealbhan-sgrìn gu h-àrd).
Tha poileasaidhean lìonra Kubernetes a’ tabhann seata math de dh’ innealan airson cruinneachaidhean a sgaradh, ach chan eil iad intuitive agus tha mòran subtleties aca. Mar thoradh air an iom-fhillteachd seo, tha mi a’ creidsinn gu bheil mòran de phoileasaidhean brabhsair a th’ ann mar-thà nam buggy. Tha fuasglaidhean comasach don duilgheadas seo a’ toirt a-steach fèin-ghluasad mhìneachaidhean poileasaidh no cleachdadh innealan sgaraidh eile.
Tha mi an dòchas gun cuidich an iùl seo cuid de cheistean a shoilleireachadh agus fuasgladh fhaighinn air cùisean a dh’ fhaodadh tu a thighinn tarsainn.