ProHoster > Blog > Rianachd > CRI-O an àite Docker mar àrainneachd so-ghnìomhaichte airson Kubernetes: stèidheachadh air CentOS 8
CRI-O an àite Docker mar àrainneachd so-ghnìomhaichte airson Kubernetes: stèidheachadh air CentOS 8
Halò! Is e m ’ainm Sergey, is mise DevOps aig Surf. Tha roinn DevOps aig Surf ag amas chan ann a-mhàin air eadar-obrachadh a stèidheachadh eadar eòlaichean agus pròiseasan obrach fhilleadh a-steach, ach cuideachd gus teicneòlasan gnàthach a sgrùdadh agus a bhuileachadh an dà chuid anns a ’bhun-structar aige fhèin agus ann am bun-structar an neach-ceannach.
Gu h-ìosal bruidhnidh mi beagan mu na h-atharrachaidhean anns a’ chruach teicneòlais airson soithichean ris an do choinnich sinn fhad ‘s a bha sinn a’ sgrùdadh an t-sgaoilidh CentOS 8 agus mu dheidhinn a tha e CRI-O agus mar as urrainn dhut àrainneachd so-ghnìomhaichte a stèidheachadh gu sgiobalta airson Kubernetes.
Carson nach eil Docker air a thoirt a-steach do CentOS 8?
Às deidh na prìomh sgaoilidhean as ùire a stàladh RHEL 8 no CentOS 8 chan urrainn dha duine cuideachadh ach mothachadh: chan eil an tagradh anns na sgaoilidhean agus na stòran oifigeil sin Docker, a thèid an àite pacaidean gu ideòlach agus gu gnìomh podman, Togah (an làthair anns an sgaoileadh gu bunaiteach) agus CRI-O. Tha seo mar thoradh air buileachadh practaigeach inbhean a chaidh a leasachadh, am measg rudan eile, le Red Hat mar phàirt den phròiseact Open Container Initiative (OCI).
Is e amas OCI, a tha na phàirt de The Linux Foundation, inbhean gnìomhachais fosgailte a chruthachadh airson cruthan soithichean agus amannan ruith a dh’ fhuasgladh grunn dhuilgheadasan aig an aon àm. An toiseach, cha robh iad a’ dol an aghaidh feallsanachd Linux (mar eisimpleir, anns a’ phàirt a bu chòir do gach prògram aon ghnìomh a dhèanamh, agus Docker Is e seòrsa de mheasgachadh uile-ann-aon). San dàrna h-àite, dh'fhaodadh iad cuir às do na h-uireasbhaidhean a th 'ann mar-thà anns a' bhathar-bhog Docker. San treas àite, bhiodh iad gu tur co-chòrdail ris na riatanasan gnìomhachais a tha air an suidheachadh le prìomh àrd-ùrlaran malairteach airson a bhith a’ cleachdadh, a’ riaghladh agus a’ frithealadh thagraidhean so-ghiùlain (mar eisimpleir, Red Hat OpenShift).
uireasbhaidhean Docker agus chaidh buannachdan a’ bhathar-bhog ùr a mhìneachadh gu mionaideach mu thràth ann an an artaigil seo, agus gheibhear tuairisgeul mionaideach air a’ chruach bathar-bog gu lèir a tha air a thabhann taobh a-staigh pròiseact OCI agus na feartan ailtireil aige anns na sgrìobhainnean oifigeil agus artaigilean bho Red Hat fhèin (chan e droch artaigil ann am blog Red Hat) agus ann an treas-phàrtaidh lèirmheasan.
Tha e cudromach toirt fa-near dè an comas-gnìomh a tha aig na pàirtean den stac a thathar a’ moladh:
podman - eadar-obrachadh dìreach le soithichean agus stòradh ìomhaighean tron phròiseas runC;
Togah - cruinneachadh agus luchdachadh suas ìomhaighean chun chlàr;
Tha mi a’ smaoineachadh, gus an sgeama coitcheann de eadar-obrachadh eadar na pàirtean den chruach a thuigsinn, gum biodh e ciallach diagram ceangail a thoirt seachad an seo Kubernetes c ruithC agus leabharlannan aig ìre ìosal a’ cleachdadh CRI-O:
CRI-O и Kubernetes cumail ris an aon chearcall fuasglaidh is taic (tha am matrix co-chòrdalachd gu math sìmplidh: dreachan mòra Kubernetes и CRI-O aig an aon àm), agus tha seo, a’ toirt aire don fhòcas air deuchainn iomlan agus farsaing air obrachadh a’ chruach seo le luchd-leasachaidh, a’ toirt dhuinn còir a bhith a’ dùileachadh an t-seasmhachd as àirde a ghabhas coileanadh ann an suidheachaidhean cleachdaidh sam bith (tha aotromachd coimeasach buannachdail an seo cuideachd. CRI-O an coimeas ri Docker mar thoradh air cuingealachadh adhbharail air comas-gnìomh).
Nuair a bhios tu a 'stàladh Kubernetes dòigh "ceart" (a rèir OCI, gu dearbh) a 'cleachdadh CRI-O air CentOS 8 Thachair sinn ri beagan dhuilgheadasan, a fhuair sinn thairis air, ge-tà. Bidh mi toilichte stiùireadh stàlaidh is rèiteachaidh a cho-roinn riut, a bheir timcheall air 10 mionaidean gu h-iomlan.
Mar a chleachdas tu Kubernetes air CentOS 8 a’ cleachdadh frèam CRI-O
Ro-ghoireasan riatanach: làthaireachd co-dhiù aon aoigh (2 cores, 4 GB RAM, co-dhiù 15 GB de stòradh) le stàladh CentOS 8 (tha am pròifil stàlaidh “Frithealaiche” air a mholadh), a bharrachd air inntrigidhean air a shon san DNS ionadail (mar an roghainn mu dheireadh, gheibh thu le inntrigeadh ann an /etc/hosts). Agus na dìochuimhnich cuir à comas suaip.
Bidh sinn a’ coileanadh a h-uile gnìomh air an òstair mar an neach-cleachdaidh bunaiteach, bi faiceallach.
Anns a’ chiad cheum, rèitichidh sinn an OS, stàlaichidh agus rèiteachaidh sinn eisimeileachd tòiseachaidh airson CRI-O.
Nach ùraich sinn an OS:
dnf -y update
An uairsin feumaidh tu am balla-teine agus SELinux a rèiteachadh. An seo tha a h-uile dad an urra ris an àrainneachd anns am bi an aoigh no an luchd-aoigheachd againn ag obair. Faodaidh tu balla-teine a stèidheachadh a rèir nam molaidhean bho sgrìobhainnean, no, ma tha thu air lìonra earbsach no ma chleachdas tu balla-teine treas-phàrtaidh, atharraich an sòn bunaiteach gu bhith earbsach no cuir dheth am balla-teine:
Gus am balla-teine a chuir dheth faodaidh tu an òrdugh a leanas a chleachdadh:
systemctl disable --now firewalld
Feumar SELinux a chuir dheth no atharrachadh gu modh “ceadachail”:
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
Luchdaich na modalan kernel agus na pacaidean riatanach, rèitich luchdachadh fèin-ghluasadach a ’mhodal“ br_netfilter ”aig toiseach tòiseachaidh an t-siostaim:
cuir an gnìomh na roghainnean a chaidh a dhèanamh:
sysctl --system
suidhich an dreach a tha a dhìth CRI-O (dreach mòr CRI-O, mar a chaidh ainmeachadh cheana, a 'maidseadh an dreach a tha a dhìth Kubernetes), bhon dreach seasmhach as ùire Kubernetes 1.18 an-dràsta:
Thoir aire don chiad nuance a choinnicheas sinn tron phròiseas stàlaidh: feumar an rèiteachadh a dheasachadh CRI-O mus tòisich thu air an t-seirbheis, leis gu bheil àite eadar-dhealaichte aig a’ phàirt conmon a tha a dhìth bhon fhear ainmichte:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
A-nis faodaidh tu an daemon a ghnìomhachadh agus a thòiseachadh CRI-O:
systemctl enable --now crio
Faodaidh tu sgrùdadh a dhèanamh air inbhe an daemon:
An dàrna nuance cudromach: leis nach bi sinn a’ cleachdadh daemon Docker, ach cleachdaidh sinn an deamhan CRI-O, mus tèid a chuir air bhog agus a thòiseachadh Kubernetes feumaidh tu na roghainnean iomchaidh a dhèanamh anns an fhaidhle rèiteachaidh /var/lib/kubelet/config.yaml, an dèidh dhut an eòlaire a tha thu ag iarraidh a chruthachadh:
An treas puing chudromach a choinnicheas sinn aig àm an stàlaidh: a dh'aindeoin gu bheil sinn air an dràibhear a chaidh a chleachdadh a chomharrachadh cgroup, agus a rèiteachadh tro na h-argamaidean a chaidh seachad cuileag a tha seann-fhasanta (mar a tha air a ràdh gu soilleir anns na sgrìobhainnean), feumaidh sinn argamaidean a chuir ris an fhaidhle, air neo cha tèid ar cruinneachadh a thòiseachadh:
A-nis is urrainn dhuinn an daemon a chuir an gnìomh cuileag:
sudo systemctl enable --now kubelet
Gus gnàthachadh itealan-smachd no neach-obrach nodan ann am mionaidean, faodaidh tu a chleachdadh leis an sgriobtar so.
Tha an t-àm ann ar cruinneachadh a thòiseachadh.
Gus am brabhsair a thòiseachadh, ruith an àithne:
kubeadm init --pod-network-cidr=10.244.0.0/16
Dèan cinnteach gun sgrìobh thu sìos an àithne airson a dhol còmhla ris a’ bhuidheann “kubeadm join…”, a thèid iarraidh ort a chleachdadh aig deireadh an toraidh, no co-dhiù na comharran ainmichte.
Nach stàlaich sinn am plugan (CNI) airson lìonra Pod. Tha mi a 'moladh a chleachdadh Calico. 'S dòcha nas mòr-chòrdte Flannel tha cùisean co-chòrdalachd le nftables, tha agus Calico - an aon bhuileachadh CNI air a mholadh agus air a làn dhearbhadh leis a’ phròiseact Kubernetes:
Gus nód neach-obrach a cheangal ris a’ bhuidheann againn, feumaidh tu a rèiteachadh a rèir stiùireadh 1 agus 2, no cleachd sgriob, an uairsin ruith an àithne bhon toradh “kubeadm init...” a sgrìobh sinn sìos sa cheum roimhe:
Feuch an dèan sinn cinnteach gu bheil an cruinneachadh againn air a thòiseachadh agus air tòiseachadh ag obair:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Deiseil! Faodaidh tu mu thràth luchdan pàighidh a chumail air a’ bhuidheann K8s agad.
Dè tha a’ feitheamh oirnn air thoiseach
Tha mi an dòchas gun do chuidich an stiùireadh gu h-àrd beagan ùine agus nerves a shàbhaladh dhut.
Bidh toradh phròiseasan a tha a’ tachairt sa ghnìomhachas gu tric an urra ri mar a bhios a’ mhòr-chuid de luchd-cleachdaidh deireannach agus luchd-leasachaidh bathar-bog eile a’ gabhail riutha san àite iomchaidh. Chan eil e buileach soilleir fhathast dè a dh’ adhbhraicheas iomairtean OCI ann am beagan bhliadhnaichean, ach bidh sinn a’ coimhead le toileachas. Faodaidh tu do bheachd a cho-roinn an-dràsta anns na beachdan.
Cum sùil air!
Nochd an artaigil seo le taing dha na stòran a leanas: