ProHoster > blog > Amministrazzjoni > CRI-O bħala sostitut għal Docker bħala ambjent ta 'runtime għal Kubernetes: setup fuq CentOS 8
CRI-O bħala sostitut għal Docker bħala ambjent ta 'runtime għal Kubernetes: setup fuq CentOS 8
Bongu! Jisimni Sergey, jien DevOps fuq Surf. Id-dipartiment DevOps f'Surf jimmira mhux biss li jistabbilixxi interazzjoni bejn speċjalisti u jintegra l-proċessi tax-xogħol, iżda wkoll li jirriċerka b'mod attiv u jimplimenta t-teknoloġiji attwali kemm fl-infrastruttura tiegħu stess kif ukoll fl-infrastruttura tal-klijent.
Hawn taħt se nitkellem ftit dwar il-bidliet fil-munzell tat-teknoloġija għall-kontenituri li ltqajna magħhom waqt li nistudjaw id-distribuzzjoni CentOS 8 u dwar dak li hu CRI-O u kif twaqqaf malajr ambjent eżekutibbli għal Kubernetes.
Għaliex Docker mhux inkluż f'CentOS 8?
Wara l-installazzjoni l-aħħar ħarġiet maġġuri rhel 8 jew CentOS 8 wieħed ma jistax ma jinnotax: dawn id-distribuzzjonijiet u repożitorji uffiċjali ma fihomx l-applikazzjoni Docker, li ideoloġikament u funzjonalment jissostitwixxu l-pakketti podman, Buildah (preżenti fid-distribuzzjoni awtomatikament) u CRI-O. Dan huwa dovut għall-implimentazzjoni prattika ta’ standards żviluppati, fost affarijiet oħra, minn Red Hat bħala parti mill-proġett Open Container Initiative (OCI).
L-għan ta 'OCI, li huwa parti minn The Linux Foundation, huwa li toħloq standards industrijali miftuħa għal formati ta' kontenitur u runtimes li jsolvu diversi problemi f'daqqa. L-ewwelnett, ma kkontradixxewx il-filosofija tal-Linux (pereżempju, fil-parti li kull programm għandu jwettaq azzjoni waħda, u Docker hija tip ta 'all-in-one combine). It-tieni, jistgħu jeliminaw in-nuqqasijiet kollha eżistenti fis-softwer Docker. It-tielet, ikunu kompletament kompatibbli mar-rekwiżiti tan-negozju ta 'pjattaformi kummerċjali ewlenin għall-iskjerament, il-ġestjoni u s-servizz ta' applikazzjonijiet fil-kontejners (pereżempju, Red Hat OpenShift).
Limitazzjonijiet Docker u l-vantaġġi tas-softwer il-ġdid diġà ġew deskritti f'xi dettall fi Dan l-artikolu, u deskrizzjoni dettaljata tal-munzell tas-softwer kollu offrut fi ħdan il-proġett OCI u l-karatteristiċi arkitettoniċi tiegħu jistgħu jinstabu fid-dokumentazzjoni uffiċjali u l-artikoli minn Red Hat innifsu (mhux ħażin artikolu fil-blog ta’ Red Hat) u f’partijiet terzi reviżjonijiet.
Huwa importanti li wieħed jinnota liema funzjonalità għandhom il-komponenti tal-munzell propost:
podman — interazzjoni diretta mal-kontenituri u l-ħażna tal-immaġni permezz tal-proċess runC;
Buildah — l-assemblaġġ u t-tlugħ ta' immaġini fir-reġistru;
CRI-O — ambjent eżekutibbli għal sistemi ta' orkestrazzjoni tal-kontejners (pereżempju, Kubernetes).
Naħseb li biex tifhem l-iskema ġenerali ta 'interazzjoni bejn il-komponenti tal-munzell, huwa rakkomandabbli li tipprovdi dijagramma ta' konnessjoni hawn Kubernetes c runC u libreriji ta' livell baxx bl-użu CRI-O:
CRI-O и Kubernetes jaderixxu mal-istess ċiklu ta 'rilaxx u appoġġ (il-matriċi ta' kompatibilità hija sempliċi ħafna: verżjonijiet ewlenin Kubernetes и CRI-O jikkoinċidu), u dan, b'kont meħud tal-fokus fuq l-ittestjar komplut u komprensiv tal-operat ta 'dan il-munzell mill-iżviluppaturi, jagħtina d-dritt li nistennew l-istabbiltà massima li tista' tinkiseb fl-operazzjoni taħt kwalunkwe xenarju ta 'użu (il-ħeffa relattiva hija wkoll ta' benefiċċju hawnhekk CRI-O meta mqabbel ma ' Docker minħabba limitazzjoni intenzjonata tal-funzjonalità).
Meta tkun qed tinstalla Kubernetes "mod it-tajjeb" mod (skond OCI, ovvjament) bl-użu CRI-O fuq CentOS 8 Iltqajna ma’ xi diffikultajiet żgħar, li, madankollu, għelbuhom b’suċċess. Inkun kuntent li naqsam miegħek struzzjonijiet ta 'installazzjoni u konfigurazzjoni, li b'kollox se jieħdu madwar 10 minuti.
Kif tuża Kubernetes fuq CentOS 8 billi tuża l-qafas CRI-O
Prerekwiżiti: preżenza ta 'mill-inqas host wieħed (2 cores, 4 GB RAM, mill-inqas 15 GB ħażna) b'installat CentOS 8 (il-profil ta 'installazzjoni "Server" huwa rakkomandat), kif ukoll daħliet għalih fid-DNS lokali (bħala l-aħħar għażla, tista' tgħaddi minn dħul f'/etc/hosts). U tinsiex jiskonnettja tpartit.
Aħna nwettqu l-operazzjonijiet kollha fuq il-host bħala l-utent għerq, oqgħod attent.
Fl-ewwel pass, aħna ser tikkonfigura l-OS, ninstallaw u nikkonfiguraw dipendenzi preliminari għal CRI-O.
Ejja naġġornaw l-OS:
dnf -y update
Sussegwentement għandek bżonn tikkonfigura l-firewall u SELinux. Hawnhekk kollox jiddependi fuq l-ambjent li fih se jaħdmu l-host jew hosts tagħna. Tista 'jew twaqqaf firewall skond ir-rakkomandazzjonijiet minn dokumentazzjoni, jew, jekk inti fuq netwerk ta 'fiduċja jew tuża firewall ta' parti terza, ibdel iż-żona default għal fiduċja jew itfi l-firewall:
Oqgħod attent għall-ewwel sfumatura li niltaqgħu magħhom matul il-proċess ta 'installazzjoni: għandek bżonn teditja l-konfigurazzjoni CRI-O qabel ma jibda s-servizz, peress li l-komponent komuni meħtieġ għandu post differenti minn dak speċifikat:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
It-tieni sfumatura importanti: peress li aħna ma nużawx daemon Docker, iżda nużaw id-daemon CRI-O, qabel it-tnedija u l-inizjalizzazzjoni Kubernetes trid tagħmel is-settings xierqa fil-fajl tal-konfigurazzjoni /var/lib/kubelet/config.yaml, wara li l-ewwel ħoloq id-direttorju mixtieq:
It-tielet punt importanti li niltaqgħu magħhom waqt l-installazzjoni: minkejja l-fatt li indikajna s-sewwieq użat cgroup, u l-konfigurazzjoni tagħha permezz tal-argumenti mgħoddija kubelet hija skaduta (kif iddikjarat b'mod espliċitu fid-dokumentazzjoni), irridu nżidu argumenti mal-fajl, inkella l-cluster tagħna mhux se jiġi inizjalizzat:
Biex tippersonalizza pjan ta' kontroll jew ħaddiem nodi f'minuti, tista 'tuża b’din l-iskrittura.
Wasal iż-żmien li inizjalizzaw il-cluster tagħna.
Biex tibda l-cluster, mexxi l-kmand:
kubeadm init --pod-network-cidr=10.244.0.0/16
Kun żgur li tikteb il-kmand biex tingħaqad mal-cluster "kubeadm join ...", li inti mitlub tuża fl-aħħar tal-output, jew għall-inqas it-tokens speċifikati.
Ejja ninstallaw il-plugin (CNI) għan-netwerk Pod. Nirrakkomanda li tuża Calico. Possibilment aktar popolari Flannel għandu kwistjonijiet ta 'kompatibilità ma' nftables, iva u Calico - l-unika implimentazzjoni tas-CNI rakkomandata u ttestjata bis-sħiħ mill-proġett Kubernetes:
Biex tgħaqqad node tal-ħaddiem mal-cluster tagħna, trid tikkonfigurah skont l-istruzzjonijiet 1 u 2, jew tuża iskrittura, imbagħad mexxi l-kmand mill-output "kubeadm init..." li ktibna fil-pass preċedenti:
Ejja niċċekkjaw li l-cluster tagħna huwa inizjalizzat u beda jaħdem:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Lest! Diġà tista' tospita payloads fuq il-cluster K8s tiegħek.
Dak li jistenniena 'l quddiem
Nittama li l-istruzzjonijiet ta 'hawn fuq għenuk tiffranka ftit ħin u nervi.
Ir-riżultat tal-proċessi li jseħħu fl-industrija ħafna drabi jiddependi fuq kif jiġu aċċettati mill-biċċa l-kbira tal-utenti finali u l-iżviluppaturi ta 'softwer ieħor fin-niċċa korrispondenti. Għadu mhux ċar għal kollox għal xiex se jwasslu l-inizjattivi OCI fi ftit snin, iżda se nkunu qed naraw bi pjaċir. Tista' taqsam l-opinjoni tiegħek issa fil-kummenti.