ProHoster > blog > Gweinyddiaeth > CRI-O yn lle Docker fel amgylchedd amser rhedeg ar gyfer Kubernetes: gosod ar CentOS 8
CRI-O yn lle Docker fel amgylchedd amser rhedeg ar gyfer Kubernetes: gosod ar CentOS 8
Helo! Fy enw i yw Sergey, DevOps ydw i yn Surf. Mae adran DevOps yn Surf yn anelu nid yn unig at sefydlu rhyngweithio rhwng arbenigwyr ac integreiddio prosesau gwaith, ond hefyd i fynd ati i ymchwilio a gweithredu technolegau cyfredol yn ei seilwaith ei hun ac yn seilwaith y cwsmer.
Isod byddaf yn siarad ychydig am y newidiadau yn y pentwr technoleg ar gyfer cynwysyddion y daethom ar eu traws wrth astudio'r dosbarthiad CentOS 8 ac am yr hyn ydyw CRI-O a sut i sefydlu amgylchedd gweithredadwy yn gyflym ar gyfer Kubernetes.
Pam nad yw Docker wedi'i gynnwys yn CentOS 8?
Ar ôl gosod y datganiadau mawr diweddaraf RHEL 8 neu CentOS 8 ni all un helpu ond sylwi: nid yw'r dosraniadau a'r ystorfeydd swyddogol hyn yn cynnwys y cais Docker, sy'n disodli pecynnau yn ideolegol ac yn swyddogaethol podman, Adeilada (yn bresennol yn y dosbarthiad yn ddiofyn) a CRI-O. Mae hyn oherwydd gweithrediad ymarferol y safonau a ddatblygwyd, ymhlith pethau eraill, gan Red Hat fel rhan o brosiect Menter Cynhwysydd Agored (OCI).
Nod OCI, sy'n rhan o The Linux Foundation, yw creu safonau diwydiant agored ar gyfer fformatau cynwysyddion ac amseroedd rhedeg sy'n datrys sawl problem ar unwaith. Yn gyntaf, nid oeddent yn gwrth-ddweud athroniaeth Linux (er enghraifft, yn y rhan y dylai pob rhaglen gyflawni un weithred, a Docker yn fath o gyfuniad popeth-mewn-un). Yn ail, gallent ddileu'r holl ddiffygion presennol yn y meddalwedd Docker. Yn drydydd, byddent yn gwbl gydnaws â gofynion busnes llwyfannau masnachol blaenllaw ar gyfer defnyddio, rheoli a gwasanaethu cymwysiadau mewn cynwysyddion (er enghraifft, Red Hat OpenShift).
Cyfyngiadau Docker ac mae manteision y feddalwedd newydd eisoes wedi'u disgrifio'n eithaf manwl yn Mae'r erthygl hon yn, a disgrifiad manwl o'r pentwr meddalwedd cyfan a gynigir o fewn y prosiect OCI a'i nodweddion pensaernïol i'w gweld yn y dogfennau swyddogol ac erthyglau gan Red Hat ei hun (nid drwg erthygl mewn blog Red Hat) ac mewn trydydd parti adolygiadau.
Mae'n bwysig nodi pa swyddogaethau sydd gan gydrannau'r pentwr arfaethedig:
podman — rhyngweithio uniongyrchol â chynwysyddion a storio delweddau trwy'r broses runC;
Adeilada — cydosod a llwytho delweddau i'r gofrestrfa;
CRI-O — amgylchedd gweithredadwy ar gyfer systemau offeryniaeth cynwysyddion (er enghraifft, Kubernetes).
Rwy'n meddwl, er mwyn deall y cynllun cyffredinol o ryngweithio rhwng cydrannau'r pentwr, ei bod yn ddoeth darparu diagram cysylltiad yma. Kubernetes c rhedegC a llyfrgelloedd lefel isel yn defnyddio CRI-O:
CRI-O и Kubernetes cadw at yr un cylch rhyddhau a chymorth (mae'r matrics cydweddoldeb yn syml iawn: fersiynau mawr Kubernetes и CRI-O cyd-fynd), ac mae hyn, gan ystyried y ffocws ar brofi cyflawn a chynhwysfawr o weithrediad y pentwr hwn gan ddatblygwyr, yn rhoi'r hawl i ni ddisgwyl y sefydlogrwydd mwyaf posibl ar waith o dan unrhyw senarios defnydd (mae ysgafnder cymharol hefyd yn fuddiol yma CRI-O o'i gymharu â Docker oherwydd cyfyngiad pwrpasol ar ymarferoldeb).
Wrth osod Kubernetes ffordd "iawn" (yn ôl OCI, wrth gwrs) gan ddefnyddio CRI-O ar CentOS 8 Daethom ar draws rhai mân anawsterau, ond fe wnaethom lwyddo i’w goresgyn. Byddaf yn hapus i rannu cyfarwyddiadau gosod a ffurfweddu gyda chi, a fydd yn cymryd tua 10 munud i gyd.
Sut i ddefnyddio Kubernetes ar CentOS 8 gan ddefnyddio'r fframwaith CRI-O
Rhagofynion: presenoldeb o leiaf un gwesteiwr (2 graidd, 4 GB RAM, o leiaf storfa 15 GB) gyda gosod CentOS 8 (argymhellir y proffil gosod “Gweinydd”), yn ogystal â chofnodion ar ei gyfer yn y DNS lleol (fel dewis olaf, gallwch fynd heibio gyda chofnod yn /etc/hosts). A pheidiwch ag anghofio analluogi cyfnewid.
Rydym yn perfformio'r holl weithrediadau ar y gwesteiwr fel y defnyddiwr gwraidd, byddwch yn ofalus.
Yn y cam cyntaf, byddwn yn ffurfweddu'r OS, yn gosod ac yn ffurfweddu dibyniaethau rhagarweiniol ar gyfer CRI-O.
Gadewch i ni ddiweddaru'r OS:
dnf -y update
Nesaf mae angen i chi ffurfweddu'r wal dân a SELinux. Yma mae popeth yn dibynnu ar yr amgylchedd y bydd ein gwesteiwr neu'n gwesteiwr yn gweithio ynddo. Gallwch naill ai sefydlu wal dân yn unol â'r argymhellion gan dogfennaeth, neu, os ydych ar rwydwaith dibynadwy neu'n defnyddio wal dân trydydd parti, newidiwch y parth rhagosodedig i'r wal dân y gellir ymddiried ynddo neu trowch oddi ar:
gosod y fersiwn gofynnol CRI-O (fersiwn mawr CRI-O, fel y crybwyllwyd eisoes, yn cyd-fynd â'r fersiwn ofynnol Kubernetes), ers y fersiwn sefydlog ddiweddaraf Kubernetes 1.18 ar hyn o bryd:
Rhowch sylw i'r naws cyntaf y deuwn ar ei draws yn ystod y broses osod: mae angen i chi olygu'r ffurfweddiad CRI-O cyn dechrau'r gwasanaeth, gan fod gan y gydran conmon ofynnol leoliad gwahanol i'r un penodedig:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
Nawr gallwch chi actifadu a dechrau'r daemon CRI-O:
Yr ail naws bwysig: gan nad ydym yn defnyddio ellyll Docker, ond defnyddiwn yr ellyll CRI-O, cyn lansio a chychwyn Kubernetes mae angen i chi wneud y gosodiadau priodol yn y ffeil ffurfweddu /var/lib/kubelet/config.yaml, ar ôl creu'r cyfeiriadur dymunol yn gyntaf:
Y trydydd pwynt pwysig yr ydym yn dod ar ei draws yn ystod y gosodiad: er gwaethaf y ffaith ein bod wedi nodi'r gyrrwr a ddefnyddiwyd cgroup, a'i gyfluniad trwy y dadleuon a basiwyd cubelet yn hen ffasiwn (fel y nodir yn benodol yn y ddogfennaeth), mae angen i ni ychwanegu dadleuon at y ffeil, fel arall ni fydd ein clwstwr yn cael ei gychwyn:
I addasu rheoli-awyren neu gweithiwr nodau mewn munudau, gallwch chi eu defnyddio gyda'r sgript hon.
Mae'n bryd cychwyn ein clwstwr.
I gychwyn y clwstwr, rhedwch y gorchymyn:
kubeadm init --pod-network-cidr=10.244.0.0/16
Gwnewch yn siŵr eich bod yn ysgrifennu'r gorchymyn i ymuno â'r clwstwr “kubeadm join…”, y gofynnir i chi ei ddefnyddio ar ddiwedd yr allbwn, neu o leiaf y tocynnau penodedig.
Gadewch i ni osod yr ategyn (CNI) ar gyfer y rhwydwaith Pod. Rwy'n argymell defnyddio Calico. Mwy poblogaidd o bosib Flannel â phroblemau cydnawsedd â nftables, ie a Calico - yr unig weithrediad CNI a argymhellwyd ac a brofwyd yn llawn gan y prosiect Kubernetes:
I gysylltu nod gweithiwr â'n clwstwr, mae angen i chi ei ffurfweddu yn unol â chyfarwyddiadau 1 a 2, neu defnyddiwch sgript, yna rhedeg y gorchymyn o'r allbwn “kubeadm init...” a ysgrifennwyd gennym yn y cam blaenorol:
Gadewch i ni wirio bod ein clwstwr wedi'i gychwyn a'i fod wedi dechrau gweithio:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Barod! Gallwch chi eisoes gynnal llwythi tâl ar eich clwstwr K8s.
Beth sy'n ein disgwyl ymlaen
Gobeithio bod y cyfarwyddiadau uchod wedi helpu i arbed peth amser a nerfau i chi.
Mae canlyniad prosesau sy'n digwydd yn y diwydiant yn aml yn dibynnu ar sut y cânt eu derbyn gan y mwyafrif o ddefnyddwyr terfynol a datblygwyr meddalwedd arall yn y gilfach gyfatebol. Nid yw'n gwbl glir eto beth fydd mentrau OCI yn arwain ato mewn ychydig flynyddoedd, ond byddwn yn gwylio gyda phleser. Gallwch chi rannu eich barn ar hyn o bryd yn y sylwadau.
Arhoswch tuned!
Ymddangosodd yr erthygl hon diolch i'r ffynonellau canlynol: