ProHoster > blog > Utawala > CRI-O kama mbadala wa Docker kama mazingira ya wakati wa kukimbia kwa Kubernetes: sanidi kwenye CentOS 8
CRI-O kama mbadala wa Docker kama mazingira ya wakati wa kukimbia kwa Kubernetes: sanidi kwenye CentOS 8
Habari! Jina langu ni Sergey, mimi ni DevOps katika Surf. Idara ya DevOps katika Surf inalenga sio tu kuanzisha mwingiliano kati ya wataalamu na kuunganisha michakato ya kazi, lakini pia kutafiti kikamilifu na kutekeleza teknolojia za sasa katika miundombinu yake na katika miundombinu ya mteja.
Hapo chini nitazungumza kidogo juu ya mabadiliko katika safu ya teknolojia ya vyombo ambayo tulikutana nayo wakati wa kusoma usambazaji CentOS 8 na kuhusu ni nini CRI-O na jinsi ya kuweka haraka mazingira yanayoweza kutekelezwa Mabernet.
Kwa nini Docker haijajumuishwa kwenye CentOS 8?
Baada ya kusakinisha matoleo makubwa ya hivi karibuni RHEL 8 au CentOS 8 mtu hawezi kusaidia lakini kutambua: usambazaji huu na hazina rasmi hazina programu Docker, ambayo kiitikadi na kiutendaji hubadilisha vifurushi podman, Buildah (iliyopo katika usambazaji kwa chaguo-msingi) na CRI-O. Hii ni kutokana na utekelezaji wa vitendo wa viwango vilivyotengenezwa, miongoni mwa mambo mengine, na Red Hat kama sehemu ya mradi wa Open Container Initiative (OCI).
Lengo la OCI, ambayo ni sehemu ya The Linux Foundation, ni kuunda viwango vya sekta ya wazi vya fomati za makontena na nyakati za kukimbia ambazo hutatua matatizo kadhaa mara moja. Kwanza, hazikupingana na falsafa ya Linux (kwa mfano, katika sehemu ambayo kila programu inapaswa kufanya kitendo kimoja, na. Docker ni aina ya mchanganyiko wa yote kwa moja). Pili, wanaweza kuondoa kasoro zote zilizopo kwenye programu Docker. Tatu, zitalingana kikamilifu na mahitaji ya biashara ya majukwaa ya kibiashara yanayoongoza kwa kupeleka, kudhibiti na kuhudumia programu zilizo na kontena (kwa mfano, Red Hat OpenShift).
Mapungufu Docker na faida za programu mpya tayari zimeelezewa kwa undani katika Makala hii, na maelezo ya kina ya programu nzima inayotolewa ndani ya mradi wa OCI na vipengele vyake vya usanifu yanaweza kupatikana katika nyaraka rasmi na makala kutoka Red Hat yenyewe (sio mbaya. makala katika blogi ya Red Hat) na mtu wa tatu hakiki.
Ni muhimu kutambua ni utendaji gani wa vipengele vya stack iliyopendekezwa vina:
podman - mwingiliano wa moja kwa moja na vyombo na uhifadhi wa picha kupitia mchakato wa runC;
Buildah - kukusanya na kupakia picha kwenye Usajili;
CRI-O β mazingira yanayoweza kutekelezwa kwa mifumo ya okestra ya kontena (kwa mfano, Kubernetes).
Nadhani ili kuelewa mpango wa jumla wa mwingiliano kati ya vifaa vya stack, inashauriwa kutoa mchoro wa unganisho hapa. Mabernet c kukimbiaC na maktaba za kiwango cha chini zinazotumia CRI-O:
CRI-O ΠΈ Mabernet fuata mzunguko sawa wa kutolewa na usaidizi (matrix ya utangamano ni rahisi sana: matoleo makubwa Mabernet ΠΈ CRI-O sanjari), na hii, kwa kuzingatia umakini wa upimaji kamili na wa kina wa utendakazi wa safu hii na watengenezaji, inatupa haki ya kutarajia uthabiti wa juu unaoweza kufikiwa katika utendakazi chini ya hali yoyote ya utumiaji (nyepesi ya jamaa pia ina faida hapa. CRI-O ikilinganishwa na Docker kwa sababu ya kizuizi cha makusudi cha utendaji).
Wakati wa kufunga Mabernet "njia sahihi" (kulingana na OCI, bila shaka) kutumia CRI-O juu ya CentOS 8 Tulikumbana na matatizo madogo madogo, ambayo, hata hivyo, tuliyashinda kwa mafanikio. Nitafurahi kushiriki nawe maagizo ya ufungaji na usanidi, ambayo kwa jumla itachukua kama dakika 10.
Jinsi ya kupeleka Kubernetes kwenye CentOS 8 kwa kutumia mfumo wa CRI-O
Masharti: uwepo wa angalau seva moja (cores 2, RAM ya GB 4, angalau hifadhi ya 15 GB) iliyosakinishwa. CentOS 8 (wasifu wa usakinishaji wa "Seva" unapendekezwa), pamoja na maingizo yake katika DNS ya ndani (kama suluhu ya mwisho, unaweza kuingia kwa kuingia /etc/hosts). Na usisahau Lemaza ubadilishaji.
Tunafanya shughuli zote kwenye seva pangishi kama mtumiaji wa mizizi, kuwa mwangalifu.
Katika hatua ya kwanza, tutasanidi OS, kufunga na kusanidi utegemezi wa awali kwa CRI-O.
Wacha tusasishe OS:
dnf -y update
Ifuatayo unahitaji kusanidi firewall na SELinux. Hapa kila kitu kinategemea mazingira ambayo mwenyeji wetu au majeshi atafanya kazi. Unaweza kusanidi firewall kulingana na mapendekezo kutoka nyaraka, au, ikiwa uko kwenye mtandao unaoaminika au unatumia ngome ya watu wengine, badilisha eneo chaguo-msingi liwe la kuaminika au zima ngome:
weka toleo linalohitajika CRI-O (toleo kuu CRI-O, kama ilivyotajwa tayari, linganisha na toleo linalohitajika Mabernet), kwa kuwa toleo la hivi punde thabiti Mabernet kwa sasa 1.18:
Jihadharini na nuance ya kwanza ambayo tunakutana nayo wakati wa mchakato wa ufungaji: unahitaji kuhariri usanidi CRI-O kabla ya kuanza huduma, kwani sehemu inayohitajika ya koni ina eneo tofauti na ile iliyoainishwa:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
Nuance ya pili muhimu: kwa kuwa hatutumii daemon Docker, lakini tunatumia daemon CRI-O, kabla ya uzinduzi na uanzishaji Mabernet unahitaji kufanya mipangilio inayofaa katika faili ya usanidi /var/lib/kubelet/config.yaml, baada ya kuunda saraka inayotaka:
Jambo la tatu muhimu tunalokutana nalo wakati wa ufungaji: licha ya ukweli kwamba tumeonyesha dereva aliyetumiwa kikundi, na usanidi wake kupitia hoja zilizopitishwa mchemraba imepitwa na wakati (kama inavyosemwa kwa uwazi katika hati), tunahitaji kuongeza hoja kwenye faili, vinginevyo nguzo yetu haitaanzishwa:
Kubadilisha kukufaa kudhibiti-ndege au mfanyakazi nodi kwa dakika, unaweza kutumia na hati hii.
Ni wakati wa kuanzisha nguzo yetu.
Ili kuanzisha nguzo, endesha amri:
kubeadm init --pod-network-cidr=10.244.0.0/16
Hakikisha kuandika amri ya kujiunga na nguzo "kubeadm join ...", ambayo unaulizwa kutumia mwishoni mwa pato, au angalau ishara maalum.
Hebu tusakinishe programu-jalizi (CNI) ya mtandao wa Pod. Ninapendekeza kutumia Calico. Labda maarufu zaidi Flannel ina masuala ya utangamano na visivyofaa,ndiyo na Calico - Utekelezaji pekee wa CNI uliopendekezwa na kupimwa kikamilifu na mradi Mabernet:
Ili kuunganisha nodi ya mfanyakazi kwenye nguzo yetu, unahitaji kuisanidi kulingana na maagizo ya 1 na 2, au utumie. hati, kisha endesha amri kutoka kwa pato la "kubeadm init..." ambalo tuliandika katika hatua iliyotangulia:
Wacha tuangalie ikiwa nguzo yetu imeanzishwa na kuanza kufanya kazi:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Tayari! Tayari unaweza kupangisha upakiaji kwenye nguzo yako ya K8s.
Nini kinatungoja mbele
Natumaini kwamba maelekezo hapo juu yamesaidia kuokoa muda na mishipa.
Matokeo ya michakato inayotokea katika tasnia mara nyingi inategemea jinsi inavyokubaliwa na wingi wa watumiaji wa mwisho na watengenezaji wa programu zingine kwenye niche inayolingana. Bado haijabainika kabisa mipango ya OCI itasababisha nini katika miaka michache, lakini tutakuwa tukitazama kwa furaha. Unaweza kushiriki maoni yako sasa hivi kwenye maoni.
Endelea!
Nakala hii ilionekana shukrani kwa vyanzo vifuatavyo: