Ipu ki te kawe: Ko CRI-O te taunoa inaianei i OpenShift Container Platform 4

Tuhinga Whaahanga Whero OpenShift Ipu Ipu 4 ka taea e koe te whakamaarama i te hanga kaihautu mo te tuku ipu, tae atu ki nga hanganga o nga kaiwhakarato ratonga kapua, i runga i nga papaaho mariko, i nga punaha whakarewa-kore ranei. Ki te hanga i tetahi papaa-a-kapua, me kaha ki te whakahaere i nga huānga katoa e whakamahia ana, na reira ka piki ake te pono o te mahi aunoatanga uaua.

Ipu ki te kawe: Ko CRI-O te taunoa inaianei i OpenShift Container Platform 4

Ko te otinga tino kitea ko te whakamahi i te Red Hat Enterprise Linux CoreOS (he momo rereke o Red Hat Enterprise Linux) me te CRI-O hei paerewa, koinei te take...

I te mea he tino pai te kaupapa o te whakatere waka mo te rapu whakataurite i te wa e whakamarama ana i nga mahi a Kubernetes me nga ipu, me ngana ki te korero mo nga raruraru pakihi e whakaotihia ana e CoreOS me CRI-O, ma te whakamahi i tetahi tauira. Ko nga mahi a Brunel mo te hanga poraka rewa. I te tau 1803, i whakawhiwhia a Marc Brunel ki te hanga 100 poraka rewa mo nga hiahia o te tipu o te moana o Ingarangi. Ko te poraka rewa he momo rewa ka whakamahia hei whakapiri taura ki nga ra. Tae noa ki te timatanga o te rau tau 19, he mea hanga enei poraka ma te ringaringa, engari i kaha a Brunel ki te whakaaunoa i te mahi, ka timata ki te whakaputa poraka paerewa ma te whakamahi i nga taputapu miihini. Ko te whakaaunoatanga o tenei tikanga he rite tonu nga poraka ka puta, ka ngawari te whakakapi mena ka pakaru, ka taea te whakaputa i roto i nga rahinga nui.

Inaianei me whakaaro a Brunel ki te mahi i tenei mahi mo nga tauira kaipuke rereke e 20 (putanga Kubernetes) me nga aorangi rereke e rima he rereke nga ia o te moana me nga hau (kaiwhakarato kapua). I tua atu, i hiahiatia kia rite nga mahi a nga kaipuke katoa (OpenShift clusters), ahakoa nga aorangi e whakahaerehia ana te whakatere, mai i te tirohanga a nga rangatira (kaiwhakahaere e whakahaere ana i nga mahi o nga tautau) he rite tonu te mahi. Hei haere tonu i te whakatauritenga moana, karekau rawa nga kapene kaipuke e aro he aha nga momo poraka rewa (CRI-O) e whakamahia ana i runga i o ratou kaipuke - ko te mea nui ki a ratou he kaha, he pono enei poraka.

Ko te OpenShift 4, he papaa kapua, ka pa ki tetahi wero pakihi tino rite. Me hanga nga pona hou i te wa o te hanga tautau, mena ka rahua tetahi o nga pona, i te wa e tauine ana te tautau. Ina hangahia he node hou me te arataki, me whirihora nga waahanga manaaki tino nui, tae atu ki te CRI-O. Ka rite ki etahi atu mahi, me tuku "nga rauemi mata" i te timatanga. Mo nga kaipuke, he whakarewa me te rakau nga mea mata. Heoi, ki te hanga he kaihautu mo te tuku ipu ki roto i te roopu OpenShift 4, me whai koe i nga konae whirihoranga me nga kaitoro kua whakaratohia e te API hei whakauru. Ka whakawhiwhia e OpenShift te taumata o te mahi aunoatanga puta noa i te huringa ora katoa, me te tuku tautoko hua e tika ana ki nga kaiwhakamahi mutunga me te whakahoki ano i te haumi ki te papaahi.

I hangaia a OpenShift 4 ki te whakarato i te kaha ki te whakahou pai i te punaha puta noa i te huringa ora katoa o te papa (mo nga putanga 4.X) mo nga kaiwhakarato rorohiko nui katoa, nga papaaho mariko me nga punaha whakarewa kore noa. Ki te mahi i tenei, me hanga nga pona i runga i nga waahanga whakawhiti. Ki te hiahia tetahi tautau he putanga hou o Kubernetes, ka whiwhi ano ia i te momo putanga CRI-O mo CoreOS. I te mea kua herea te putanga CRI-O ki nga Kubernetes, ka tino whakangwari tenei i nga whakaaetanga mo te whakamatautau, te rapu raru, mo te kaupapa tautoko ranei. I tua atu, ko tenei huarahi ka whakaiti i nga utu mo nga kaiwhakamahi mutunga me te Red Hat.

He huarahi tino hou tenei mo te whakaaro mo nga tautau Kubernetes me te whakatakoto i te turanga mo te whakamahere i etahi ahuatanga hou tino whai hua me te kaha. Ko te CRI-O (Atanga Waa Whakahaere Ipu - Open Container Initiative, whakapoto CRI-OCI) ko te whiringa angitu mo te hanga papatipu o nga pona e tika ana hei mahi me OpenShift. Ka whakakapihia e CRI-O te miihini Docker i whakamahia i mua, e tuku ana i nga kaiwhakamahi OpenShift ohaoha, u, ngawari me te hoha – āe, i rongo tika koe – he pūkaha ipu hōhā i hangaia mō te mahi tahi me Kubernetes.

Te ao o nga ipu tuwhera

Kua roa te ao e anga ana ki nga ipu tuwhera. Ahakoa i roto i nga Kubernetes, i nga taumata iti ranei, te whanaketanga o nga paerewa ipu ka puta he rauwiringa kaiao o te auahatanga i ia taumata.

I timata katoa i te hanganga o te Open Containers Initiative i Pipiri 2015. I tenei wahanga tuatahi o te mahi, i hangahia nga whakaritenga ipu whakaahua и taiao wa whakahaere. Na tenei ka taea e nga taputapu te whakamahi i te paerewa kotahi whakapakoko ipu me te whakatakotoranga whakakotahi mo te mahi tahi me ratou. I muri mai ka taapirihia nga korero tohatoha, ka taea e nga kaiwhakamahi te tiri ngawari whakapakoko ipu.

Ka whakawhanakehia e te hapori Kubernetes he paerewa kotahi mo te atanga mono, e kiia nei Atanga Wa Whakahaere Ipu (CRI). Na tenei, i taea e nga kaiwhakamahi Kubernetes te hono i nga momo miihini ki te mahi me nga ipu hei taapiri atu ki a Docker.

I kite nga miihini i Red Hat me Google i te hiahia o te maakete mo te miihini ipu ka taea te whakaae ki nga tono a Kubelet mo te kawa CRI me te whakauru i nga ipu e pai ana ki nga tohu OCI kua whakahuahia i runga ake nei. Na I puta mai a OCID. Engari kia mihi, kaore matou i kii ka whakatapua tenei rauemi ki te CRI-O? Ko te mea pono, me te tuku noa putanga 1.0 i whakaingoatia te kaupapa CRI-O.

Fig. 1.

Ipu ki te kawe: Ko CRI-O te taunoa inaianei i OpenShift Container Platform 4

Te auahatanga me CRI-O me CoreOS

Na te whakarewatanga o te papaahi OpenShift 4, i hurihia pūkaha ipu, i whakamahia ma te taunoa i roto i te papaahi, a ka whakakapihia a Docker e CRI-O, e tuku ana i tetahi taiao utu-utu, pumau, ngawari me te hoha mo te whakahaere i tetahi ipu e whanake ana ki te taha o Kubernetes. Ma tenei ka tino ngawari te tautoko me te whirihoranga. Ko te whirihoranga o te miihini ipu me te kaihautu, me o raatau whakahaere, ka huri aunoa i roto i te OpenShift 4.

Taihoa, pehea tenei?

E tika ana, i te taenga mai o OpenShift 4, kua kore he hiahia ki te hono atu ki nga kaihautu takitahi me te whakauru i te miihini ipu, te whirihora i te rokiroki, te whirihora i nga kaitoro rapu, te whirihora ranei i tetahi whatunga. Ko te papaaho OpenShift 4 kua oti te hoahoa ano hei whakamahi i te Anga Kaiwhakahaere ehara i te mea mo nga tono a nga kaiwhakamahi mutunga, engari ano mo nga whakahaerenga taumata-waapapa penei i te tuku whakaahua, te whirihora i te punaha, te whakauru ranei i nga whakahoutanga.

Kua whakaaetia e Kubernetes nga kaiwhakamahi ki te whakahaere i nga tono ma te tautuhi i te ahua e hiahiatia ana me te whakamahi nga kaiwhakahaere, ki te whakarite kia rite te ahua o te whenua ki te ahua o te whaainga. Tenei te ahua o te whainga me te huarahi o te kawanatanga ka whakatuwhera i nga whai waahi nui mai i te tirohanga whanaketanga me te tirohanga whakahaere. Ka taea e nga kaihanga te tautuhi i te ahua e hiahiatia ana ma te tuku atu ki te kaiwhakahaere i te ahua o te konae YAML, JSON ranei, katahi ka taea e te kaiwhakahaere te hanga i te tauira tono e hiahiatia ana i roto i te taiao whakangao, a ko te ahuatanga whakahaere o tenei tauira ka tino rite ki te mea kua tohua.

Ma te whakamahi i nga Kaiwhakahaere i roto i te papaahi, ka kawea mai e OpenShift 4 tenei paradigm hou (ma te whakamahi i te kaupapa o te huinga me te ahua tuuturu) ki te whakahaeretanga o RHEL CoreOS me CRI-O. Ko nga mahi o te whirihora me te whakahaere i nga putanga o te punaha whakahaere me te miihini ipu ka mahi aunoa ma te whakamahi i te mea e kiia nei. Kaiwhakahaere Whirihora Miihini (MCO). Ka tino whakangwarihia e te MCO nga mahi a te kaiwhakahaere tautau, me te whakaaunoa i nga waahanga whakamutunga o te whakaurunga, tae atu ki nga mahi i muri mai i te whakaurunga (nga ra e rua nga mahi). Ko enei mea katoa ka waiho a OpenShift 4 hei papaahi kapua pono. Ka uru tatou ki tenei i muri iti nei.

Te rere ipu

I whai waahi nga kaiwhakamahi ki te whakamahi i te miihini CRI-O i roto i te papaaho OpenShift mai i te putanga 3.7 i roto i te mana Arokite Hangarau me te putanga 3.9 i roto i te mana e waatea ana (e tautokohia ana inaianei). Hei taapiri, he nui te whakamahi a Red Hat CRI-O mo te whakahaere i nga mahi whakangao i OpenShift Online mai i te putanga 3.10. Ko enei mea katoa i taea e te roopu mahi i runga i te CRI-O te whai wheako nui ki nga ipu whakarewa papatipu i runga i nga tautau Kubernetes nui. Kia mohio ai koe me pehea te whakamahi a Kubernetes i te CRI-O, me titiro ki te whakaahua e whai ake nei, e whakaatu ana i te mahi a te hoahoanga.

raihi. 2. He pehea te mahi o nga ipu i roto i te roopu Kubernetes

Ipu ki te kawe: Ko CRI-O te taunoa inaianei i OpenShift Container Platform 4

Ka whakangwarihia e CRI-O te hanga o nga kaihautu ipu hou ma te tukutahi i te taumata o runga katoa i te wa e arawhiti ana nga pona hou, me te tuku putanga hou o te papaaho OpenShift. Ko te whakahounga o te papaaho katoa ka taea te whakahou i nga tauwhitinga/whakahoki hoki, me te aukati hoki i nga kati i roto i nga whakawhirinakitanga i waenga i te matua o te hiku ipu, te miihini ipu, nga pona (Kubelets) me te node Kubernetes Master. Ma te whakahaere i nga waahanga katoa o te papaaho, me te mana whakahaere me te whakaputanga, he huarahi maamaa tonu mai i te kawanatanga A ki te kawanatanga B. Ma tenei ka ngawari te tukanga whakahou, te whakapai ake i te haumarutanga, te whakapai ake i nga purongo mahi, me te awhina i te whakaheke i te utu mo nga whakahou me nga whakaurunga o nga putanga hou. .

Te whakaatu i te kaha o nga huānga whakakapi

Ka rite ki te korero i mua ake nei, ma te whakamahi i te Kaiwhakahaere Whirihora Miihini ki te whakahaere i te kaihautu ipu me te miihini ipu i OpenShift 4 e whakarato ana i te taumata hou o te aunoatanga kaore i taea i mua i runga i te papaahi Kubernetes. Hei whakaatu i nga ahuatanga hou, ka whakaatu matou me pehea e taea ai e koe te whakarereke i te konae crio.conf. Kia kore ai e poauau ki nga kupu, ngana ki te aro ki nga hua.

Tuatahi, me hanga te mea e kiia nei he whirihoranga wa whakahaere ipu - Container Runtime Config. Whakaarohia he rauemi Kubernetes e tohu ana i te whirihoranga mo CRI-O. Ko te mea pono, he putanga motuhake o tetahi mea e kiia nei ko MachineConfig, he whirihoranga ka tukuna ki tetahi miihini RHEL CoreOS hei waahanga o te roopu OpenShift.

Ko tenei rauemi ritenga, e kiia nei ko ContainerRuntimeConfig, he mea hanga kia maamaa ake ma nga kaiwhakahaere roopu ki te whirihora CRI-O. He kaha tenei taputapu ka taea anake te tono ki etahi pona kei runga i nga tautuhinga MachineConfigPool. Whakaarohia he roopu miihini e mahi ana i te kaupapa kotahi.

Tirohia nga rarangi whakamutunga e rua ka hurihia e tatou i roto i te konae /etc/crio/crio.conf. He rite tonu enei rarangi e rua ki nga rarangi kei te konae crio.conf, ko enei:

vi ContainerRuntimeConfig.yaml

Whakamutunga:

apiVersion: machineconfiguration.openshift.io/v1
kind: ContainerRuntimeConfig
metadata:
 name: set-log-and-pid
spec:
 machineConfigPoolSelector:
   matchLabels:
     debug-crio: config-log-and-pid
 containerRuntimeConfig:
   pidsLimit: 2048
   logLevel: debug

Inaianei me pana tenei konae ki te kahui Kubernetes ka tirohia i hangaia. Kia mahara he rite tonu te mahi ki etahi atu rauemi Kubernetes:

oc create -f ContainerRuntimeConfig.yaml
oc get ContainerRuntimeConfig

Whakamutunga:

NAME              AGE
set-log-and-pid   22h

Ina oti te hanga i te ContainerRuntimeConfig, me whakarereke tetahi o nga MachineConfigPools hei tohu ki nga Kubernetes e hiahia ana matou ki te tono i tenei whirihoranga ki tetahi roopu miihini i roto i te roopu. I tenei keehi ka huri tatou i te MachineConfigPool mo nga pona ariki:

oc edit MachineConfigPool/master

Whakamutunga (mo te whakamarama, ka waiho te kaupapa matua):

...
metadata:
 creationTimestamp: 2019-04-10T23:42:28Z
 generation: 1
 labels:
   debug-crio: config-log-and-pid
   operator.machineconfiguration.openshift.io/required-for-upgrade: ""
...

I tenei wa, ka timata a MCO ki te hanga i tetahi konae crio.conf hou mo te tautau. I tenei keehi, ka taea te tiro i te konae whirihoranga kua oti ma te whakamahi i te Kubernetes API. Kia maumahara, ko te ContainerRuntimeConfig he putanga motuhake o MachineConfig, no reira ka kite tatou i te hua ma te titiro ki nga rarangi e tika ana i MachineConfigs:

oc get MachineConfigs | grep rendered

Whakamutunga:

rendered-master-c923f24f01a0e38c77a05acfd631910b                  4.0.22-201904011459-dirty 2.2.0 16h
rendered-master-f722b027a98ac5b8e0b41d71e992f626                  4.0.22-201904011459-dirty 2.2.0 4m
rendered-worker-9777325797fe7e74c3f2dd11d359bc62                  4.0.22-201904011459-dirty 2.2.0 16h

Kia mahara ko te konae whirihoranga i puta mo nga kopuku matua he putanga hou ake i nga whirihoranga taketake. Hei tiro, whakahaerehia te whakahau e whai ake nei. I te wa poto, ka kite matou koinei pea tetahi o nga raarangi tino pai i roto i te hitori o Kubernetes:

python3 -c "import sys, urllib.parse; print(urllib.parse.unquote(sys.argv[1]))" $(oc get MachineConfig/rendered-master-f722b027a98ac5b8e0b41d71e992f626 -o YAML | grep -B4 crio.conf | grep source | tail -n 1 | cut -d, -f2) | grep pid

Whakamutunga:

pids_limit = 2048

Inaianei kia mohio kua tukuna te whirihoranga ki nga kopuku matua katoa. Tuatahi ka whiwhi tatou i te rarangi o nga node i roto i te tautau:

oc get node | grep master

Output:

ip-10-0-135-153.us-east-2.compute.internal   Ready master 23h v1.12.4+509916ce1

ip-10-0-154-0.us-east-2.compute.internal     Ready master 23h v1.12.4+509916ce1

ip-10-0-166-79.us-east-2.compute.internal    Ready master 23h v1.12.4+509916ce1

Inaianei tirohia te konae kua whakauruhia. Ka kite koe kua whakahoutia te konae me nga uara hou mo nga tohutohu pid me te patuiro i tohua e matou ki te rauemi ContainerRuntimeConfig. Te huatau ano:

oc debug node/ip-10-0-135-153.us-east-2.compute.internal — cat /host/etc/crio/crio.conf | egrep 'debug||pid’

Whakamutunga:

...
pids_limit = 2048
...
log_level = "debug"
...

Ko enei huringa katoa ki te tautau i mahia me te kore e rere SSH. I mahia nga mahi katoa ma te uru ki te node matua Kuberentes. Arā, i whirihorahia enei tawhā hou i runga i nga pona ariki anake. Ko nga pona kaimahi kaore i rereke, e whakaatu ana i nga painga o nga tikanga Kubernetes mo te whakamahi i nga ahuatanga kua tohua me nga ahuatanga pono e pa ana ki nga kaihautu ipu me nga miihini ipu me nga huānga whakawhiti.

Ko te tauira i runga ake nei e whakaatu ana i te kaha ki te whakarereke i tetahi roopu OpenShift Container Platform 4 iti e toru nga pona whakangao, he roopu whakangao nui ranei me nga pona 3000. Ahakoa he aha, ka rite te nui o nga mahi - me te iti rawa - whirihora noa i te konae ContainerRuntimeConfig, ka huri i tetahi tapanga ki MachineConfigPool. Ka taea e koe te mahi me tetahi momo putanga o te OpenShift Container Platform 4.X e whakahaere ana i nga Kubernetes puta noa i tona huringa ora.

I te nuinga o nga wa ka tere te tipu o nga kamupene hangarau kaore e taea e matou te whakamarama he aha i whiriwhiria e matou etahi hangarau mo nga waahanga o raro. Ko nga miihini ipu i mua ko te waahanga e taunekeneke tika ana nga kaiwhakamahi. Mai i te mea ka tiimata te rongonui o nga ipu i te taenga mai o nga miihini ipu, he maha nga wa ka aro nga kaiwhakamahi ki a raatau. Koinei tetahi atu take i whiriwhiri ai a Red Hat i a CRI-O. Kei te tipu haere nga ipu me te arotahi inaianei ki te mahi toi, a kua kitea e CRI-O te tino wheako i te wa e mahi ana me OpenShift 4.

Source: will.com

Tāpiri i te kōrero