Te mohio ki nga whiringa kaupapa here whatunga me Calico

Te mohio ki nga whiringa kaupapa here whatunga me Calico

Ko te mono whatunga Calico e whakarato ana i te whānuitanga o nga kaupapa here whatunga me te wetereo whakakotahi hei tiaki i nga kaihautu taputapu, nga miihini mariko me nga pene. Ka taea te whakamahi i enei kaupapa here i roto i te mokowāingoa, hei kaupapa here whatunga ao e pa ana ki te mutunga o te ope (hei tiaki i nga tono e rere tika ana i runga i te kaihautu - ka taea e te kaihautu he tūmau, he miihini mariko ranei) ranei pito mutunga mahi (hei tiaki i nga tono e rere ana i roto i nga ipu, i nga miihini mariko manaaki ranei). Ka taea e nga kaupapa here Calico te whakamahi i nga tikanga haumaru ki nga waahi rereke i te ara o te paatete ma te whakamahi i nga whiringa penei i te preDNAT, unraracked, me te applyOnForward. Ma te mohio ki te mahi o enei whiringa ka taea te whakapai ake i te haumarutanga me te mahinga o to punaha katoa. Ko tenei tuhinga e whakamarama ana i te ngako o enei whiringa kaupapa here Calico (preDNAT, unraracked and applyOnForward) i whakamahia ki nga waahi mutunga, me te aro nui ki nga mea ka puta i nga ara tukatuka paatete (iptabels chains).

Ko te whakaaro o tenei tuhinga kei a koe te tino mohio ki te mahi a Kubernetes me nga kaupapa here whatunga Calico. Mena kaore, ka tūtohu kia whakamatauhia akoranga kaupapa here whatunga taketake и akoranga tiaki manaaki te whakamahi Calico i mua i te panui i tenei tuhinga. Kei te tumanako ano matou kia mohio koe ki te mahi iptables i roto i te linux.

Calico kaupapa here whatunga ao ka taea e koe te tono i te huinga ture uru ma nga tapanga (ki nga roopu o nga kaihautu me nga kawenga mahi/pods). He tino pai tenei ki te whakamahi tahi koe i nga punaha rereke - nga miihini mariko, he punaha i runga i nga taputapu, he hanganga kubernetes ranei. I tua atu, ka taea e koe te tiaki i to huinga (nodes) ma te whakamahi i te huinga kaupapa here korero me te whakamahi i nga kaupapa here whatunga ki nga waka taumai (hei tauira, ma te ratonga NodePorts, Wawaho IPs ranei).

I te taumata taketake, ka honoa e Calico tetahi pona ki te whatunga (tirohia te hoahoa i raro nei), ka hono atu ki te kaihautu ma te whakamahi i te atanga Ethernet mariko (veth). Ko nga waka ka tukuna e te pod ka tae mai ki te kaihautu mai i tenei atanga mariko, ka tukatukahia i te ahua ano me te mea i puta mai i te atanga whatunga tinana. Ma te taunoa, ka tapaina e Calico enei atanga he caliXXX. I te mea ka puta mai te waka ma te atanga mariko, ka haere i roto i nga iptables me te mea he kotahi hop atu te pod. No reira, ka tae mai nga waka ki/mai i te pod, ka tukuna mai i te tirohanga a te kaihautu.

I runga i te node Kubernetes e whakahaere ana i te Calico, ka taea e koe te mapi i tetahi atanga mariko (veth) ki te uta mahi penei. I roto i te tauira i raro nei, ka kite koe ko te veth#10 (calic1cbf1ca0f8) e hono ana ki te cnx-manager-* i roto i te mokowāingoa aro turuki calico.

[centos@ip-172-31-31-46 K8S]$ sudo ip a
...
10: calic1cbf1ca0f8@if4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1440 qdisc noqueue state UP group default
    link/ether ee:ee:ee:ee:ee:ee brd ff:ff:ff:ff:ff:ff link-netnsid 5
    inet6 fe80::ecee:eeff:feee:eeee/64 scope link
       valid_lft forever preferred_lft forever
...

[centos@ip-172-31-31-46 K8S]$ calicoctl get wep --all-namespaces
...
calico-monitoring cnx-manager-8f778bd66-lz45m                            ip-172-31-31-46.ec2.internal 192.168.103.134/32
calic1cbf1ca0f8
...

Te mohio ki nga whiringa kaupapa here whatunga me Calico

I te mea ka hangaia e Calico he atanga veth mo ia taumahatanga mahi, me pehea tana whakatinana kaupapa here? Hei mahi i tenei, ka hangaia e Calico nga matau i roto i nga momo mekameka o te ara tukatuka paatete ma te whakamahi iptables.

Ko te hoahoa i raro nei e whakaatu ana i nga mekameka e uru ana ki te tukatuka paatete i roto i nga iptables (te punaha iti tātari net). Ina tae mai tetahi kete ma te atanga whatunga, ka haere tuatahi ma te mekameka PREROUTING. Ka whakatauhia te ararere, a, i runga i tenei, ka haere te paakete i roto i te INPUT (whakaarohia ki nga tukanga manaaki), FORWARD ranei (ka anga ki tetahi pona, ki tetahi atu pona ranei i te whatunga). Mai i te tukanga o te rohe, ka haere te paakete i roto i te OUTPUT katahi ka POSTROUTING mekameka i mua i te tuku iho i te taura.

Kia mahara ko te pod he hinonga o waho (e hono ana ki te veth) mo te tukatuka iptables. Kia whakarāpopoto tatou:

  • Ko nga waka tuku whakamua (nat, arai, ki/mai i te pd) ka haere i roto i nga mekameka PREROUTING - FORWARD - POSTROUTING.
  • Ko nga waka ki te kaihautu o te rohe ka haere ma te mekameka PREROUTING - INPUT.
  • Ko nga waka mai i te mahinga kaihautu o te rohe ka haere ma te mekameka OUTPUT - POSTROUTING.

Te mohio ki nga whiringa kaupapa here whatunga me Calico

Ka whakaratohia e Calico nga whiringa kaupapa here e taea ai e koe te tono kaupapa here puta noa i nga mekameka katoa. Ma tenei whakaaro, me titiro ki nga whiringa whirihoranga kaupapa here rereke kei Calico. Ko nga tau kei te rarangi o nga whiringa kei raro nei e rite ana ki nga tau kei te hoahoa i runga ake nei.

  1. Kaupapa here mo te waahi mutunga (pod).
  2. Kaupapa here waahi mutunga
  3. Kōwhiringa ApplyOnForward
  4. Kaupapahere PreDNAT
  5. Kaupapa here kore e whai

Me timata ma te titiro me pehea te tono kaupapa here ki nga waahi mutunga mahi (Kubernetes pods or OpenStack VMs), katahi ka titiro ki nga whiringa kaupapa here mo nga waahi mutunga kaihautu.

Nga Mahi Whakamutunga

Kaupapa Whakamutunga Utamahi (1)

He whiringa tenei hei tiaki i o kubernetes pods. Kei te tautoko a Calico i te mahi tahi me Kubernetes NetworkPolicy, engari kei te whakarato kaupapa here ano - Calico NetworkPolicy me GlobalNetworkPolicy. Ka hangaia e Calico he mekameka mo ia pene (taumaha mahi) me nga matau i roto i nga mekameka INPUT me OUTPUT mo te kawenga mahi ki te ripanga tātari o te mekameka FORWARD.

Kaihautu Whakamutunga

Kaupapa Whakamutunga Kaihautu (2)

I tua atu i te CNI (atanga whatunga ipu), ka whakaratohia e nga kaupapa here a Calico te kaha ki te tiaki i te ope ake. I Calico, ka taea e koe te hanga i te mutunga o te kaihautu ma te tautuhi i te huinga o te atanga kaihautu, me te mea e tika ana, nga tau tauranga. Ko te whakakaha kaupapa here mo tenei hinonga ka tutuki ma te whakamahi i te ripanga tātari i roto i nga mekameka INPUT me OUTPUT. Ka kite koe mai i te hoahoa, (2) e pa ana ki nga tukanga o te rohe kei runga i te node/host. Arā, ki te hanga kaupapa here e pa ana ki te pito mutunga o te kaihautu, kaore e pa ki nga waka e haere ana ki/mai i o poti. Engari e whakarato ana i tetahi atanga / wetereo kotahi mo te aukati i nga waka mo to kaihautu me nga pene e whakamahi ana i nga kaupapa here Calico. Ma tenei ka tino ngawari te whakahaere i nga kaupapa here mo te whatunga rereke. Ko te whirihora i nga kaupapa here waahi mutunga ki te whakarei ake i te haumarutanga tautau tetahi atu take nui.

Kaupapahere ApplyOnForward (3)

Ko te kōwhiringa ApplyOnForward e wātea ana i roto i te kaupapa here whatunga o te ao Calico kia taea ai te whakamahi i nga kaupapa here ki nga waka katoa e haere ana i te waahi mutunga o te kaihautu, tae atu ki nga waka ka tukuna e te kaihautu. Kei roto i tenei ko nga waka ka tukuna atu ki te peera o te rohe, ki hea atu ranei i te whatunga. E hiahia ana a Calico kia taea tenei tautuhinga mo nga kaupapa here e whakamahi ana i te PreDNAT me te kore e whai, tirohia nga waahanga e whai ake nei. I tua atu, ka taea te whakamahi i te ApplyOnForward ki te aro turuki i nga waka manaaki i nga keehi ka whakamahia he pouara mariko, he rorohiko NAT ranei.

Kia mahara ki te hiahia koe ki te tono i te kaupapa here whatunga kotahi ki nga tukanga manaaki me nga pene, kaore koe e hiahia ki te whakamahi i te waahanga ApplyOnForward. Ko nga mea katoa hei mahi maau ko te hanga i tetahi tapanga mo te waahi manaaki me te waahi mahi (pod). He tino mohio a Calico ki te whakatinana i nga kaupapa here i runga i nga tapanga, ahakoa te momo mutunga (te waahi manaaki, te kawenga mahi ranei).

Kaupapahere PreDNAT (4)

I roto i nga Kubernetes, ka taea te whakaatu i nga tauranga hinonga ratonga ki waho ma te whakamahi i te whiringa NodePorts, ma te kowhiringa ranei (ka whakamahi Calico), ma te panui ma te whakamahi i nga Cluster IPs me nga whiringa IP Waho. Ka whakatauritehia e Kube-takawaenga nga waka taumai e herea ana ki tetahi ratonga ki nga poti o te ratonga e rite ana ma te whakamahi i te DNAT. I runga i tenei, me pehea koe e whakamana ai i nga kaupapa here mo nga waka e haere mai ana ma NodePorts? Hei whakarite kia whakamahia enei kaupapa here i mua i te whakahaerenga o nga waka e te DNAT (he mahere i waenga i te ope: tauranga me te ratonga e rite ana), ka tukuna e Calico he tawhā mo te GlobalNetworkPolicy e kiia nei ko "preDNAT: pono".

Ina whakahohea i mua i te DNAT, ka whakatinanahia enei kaupapa here i roto i te (4) i te hoahoa - i te ripanga mangle o te mekameka PREROUTING - i mua tonu i te DNAT. Ko te tikanga o nga kaupapa here kaore i te whai i konei, na te mea ko te tono o enei kaupapa here ka puta i mua ake i te huarahi tukatuka waka. Heoi, ko nga kaupapa here preDNAT e whakaute ana i te raupapa tono i waenga i a raatau ano.

I te wa e hanga ana i nga kaupapa here ki mua i te DNAT, he mea nui kia tupato ki nga waka e hiahia ana koe ki te tukatuka me te tuku i te nuinga kia paopaohia. Ko nga waka kua tohua hei 'whakaae' i roto i te kaupapa here i mua i te DNAT ka kore e tirohia e te kaupapa here hostendpoint, engari ka haere tonu nga waka e taka ana i te kaupapa here i mua i te DNAT i roto i nga toenga mekameka.
Kua whakahauhia e Calico kia taea te kowhiringa applyOnForward i te wa e whakamahi ana i te preDNAT, na te mea kaore ano kia kowhiria te haerenga o te waka. Ka taea te tuku waka ki te tukanga kaihautu, ka taea ranei te tuku atu ki te pona, ki tetahi atu pona ranei.

Kaupapa here kore e whai (5)

Ka taea e nga whatunga me nga tono he rereketanga nui o te whanonga. I etahi wa tino nui, ka taea e nga tono te whakaputa hononga maha poto. Ma tenei ka ngaro te mahara o te conntrack (he waahanga matua o te puranga whatunga Linux). I nga wa o mua, ki te whakahaere i enei momo tono ki runga Linux, me whirihora a-ringa, whakakore ranei i te conntrack, tuhia ranei nga ture iptables hei karo i te conntrack. Ko te kaupapa here kore i whaiwhaihia i Calico he ngawari ake, he pai ake te whiringa mena ka hiahia koe ki te tukatuka hononga tere. Hei tauira, ki te whakamahi koe nui memcache hei tikanga whakamarumaru atu ranei DDOS.

Panuitia tenei rangitaki pou (ranei ta matou whakamaoritanga) mo etahi atu korero, tae atu ki nga whakamatautau mahi ma te whakamahi kaupapa here kore.

Ina tautuhia e koe te whiringa "doNotTrack: pono" i roto i te Calico globalNetworkPolicy, ka waiho hei kaupapa here **kaore i whaia**, ka tono moata tonu i roto i te paipa tukatuka paatete Linux. Ma te titiro ki te hoahoa i runga ake nei, ka whakamahia nga kaupapa here kaore i whaiwhaihia i roto i nga mekameka PREROUTING me OUTPUT i te ripanga mata i mua i te tiimata o te hononga (conntrack). Ina whakaaetia he putea e te kaupapa here kore e whai, ka tohuhia kia whakakorehia te aroturuki hononga mo taua kete. Ko te tikanga:

  • Ko te kaupapa here kaore i whaiwhaihia ka whakamahia i runga i ia paatete. Karekau he ariā mo te hononga (he rere ranei). Ko te kore o nga hononga he maha nga hua nui:
  • Mena kei te pirangi koe ki te whakaae kia rua nga tono me nga waka whakautu, me whai ture mo te haere ki roto, ki waho hoki (i te mea ka whakamahia e Calico te conntrack hei tohu i nga waka whakautu ka whakaaetia).
  • Ko te kaupapa here kore e whai hua mo nga kawenga mahi a Kubernetes (pods), na te mea i tenei keehi karekau he huarahi ki te whai i te hononga puta mai i te pod.
  • Ko te NAT karekau e mahi tika me nga paatete kaore i whaia (i te mea kei te rongoa te kernel i te mahere NAT i roto i te conntrack).
  • Ina haere ana i te ture "whakaae katoa" i roto i te kaupapa here kore e whai, ka tohuhia nga paakete katoa kaore i whaia. Ko te nuinga o nga wa ehara tenei i te mea e hiahia ana koe, no reira he mea nui kia tino whiriwhiri koe mo nga paatete e whakaaetia ana e nga kaupapa here kore e whaia (me te tuku i te nuinga o nga waka ki te haere i roto i nga kaupapa here noa).
  • Ka whakamahia nga kaupapa here kore e whai i te timatanga o te paipa tukatuka paatete. He mea tino nui tenei ki te maarama i te wa e hanga ana i nga kaupapa here Calico. Ka taea e koe he kaupapa here me te ota:1 me te kaupapa here kore e whai ota:1000. Kare he aha. Ko te kaupapa here Untracked ka whakamahia i mua i te kaupapa here mo te pene. Ko nga kaupapa here karekau e whai ana ka whakaute i te ota mahi i waenga i a raatau anake.

Na te mea ko tetahi o nga kaupapa o te kaupapa here doNotTrack ko te whakatinana i te kaupapa here moata rawa atu i roto i te paipa tukatuka paatete Linux, ka whakahauhia e Calico te tohu i te whiringa applyOnForward ina whakamahi ana i te doNotTrack. Ma te korero ki te hoahoa tukatuka paatete, me mahara ko te kaupapa here kore e whai (5) ka whakamahia i mua i nga whakatau huarahi. Ka taea te tuku waka ki te tukanga kaihautu, ka taea ranei te tuku atu ki te pona, ki tetahi atu pona ranei.

Ngā putanga

I titiro matou ki nga momo whiringa kaupapa here (Kaiwhakahaere mutunga, ApplyOnForward, preDNAT, me te Untracked) i Calico me pehea te tono i runga i te ara tukatuka paatete. Ko te mohio ki ta raatau mahi ka awhina i te whakawhanake kaupapa here whai hua me te haumaru. Ma te Calico ka taea e koe te whakamahi i tetahi kaupapa here whatunga ao e pa ana ki tetahi tapanga (he roopu node me nga pene) me te whakamahi kaupapa here me nga momo tawhā. Ma tenei ka taea e nga tohunga hoahoa hoahoa whatunga ki te tiaki i nga "mea katoa" (momo mutunga) i te wa kotahi ma te whakamahi i te reo kaupapa here kotahi me nga kaupapa here Calico.

Mihi: Ka mihi au Ko Sean Crampton и Alexa Pollitta mo a raatau arotake me nga korero whai hua.

Source: will.com

Tāpiri i te kōrero