ProHoster > Blog > Stjórnsýsla > CRI-O í stað Docker sem keyrsluumhverfi fyrir Kubernetes: uppsetning á CentOS 8
CRI-O í stað Docker sem keyrsluumhverfi fyrir Kubernetes: uppsetning á CentOS 8
Halló! Ég heiti Sergey, ég er DevOps hjá Surf. DevOps deildin hjá Surf miðar ekki aðeins að því að koma á samskiptum milli sérfræðinga og samþætta vinnuferla, heldur einnig að rannsaka og innleiða núverandi tækni bæði í eigin innviðum og innviðum viðskiptavinarins.
Hér að neðan mun ég tala aðeins um breytingar á tæknistafla fyrir gáma sem við lentum í þegar við skoðuðum dreifinguna CentOS 8 og um hvað það er BÚÐU TIL ÞAÐ og hvernig á að setja fljótt upp keyranlegt umhverfi fyrir Kubernetes.
Af hverju er Docker ekki innifalinn í CentOS 8?
Eftir að hafa sett upp nýjustu helstu útgáfurnar rhel 8 eða CentOS 8 maður getur ekki annað en tekið eftir: þessar dreifingar og opinberar geymslur innihalda ekki forritið Docker, sem hugmyndafræðilega og virknilega koma í stað pakka Podman, Byggja (sjálfgefið til staðar í dreifingunni) og BÚÐU TIL ÞAÐ. Þetta er vegna hagnýtrar innleiðingar staðla sem þróaðir voru meðal annars af Red Hat sem hluta af Open Container Initiative (OCI) verkefninu.
Markmið OCI, sem er hluti af Linux Foundation, er að búa til opna iðnaðarstaðla fyrir gámasnið og keyrslutíma sem leysa nokkur vandamál í einu. Í fyrsta lagi voru þeir ekki í mótsögn við heimspeki Linux (til dæmis í þeim hluta að hvert forrit ætti að framkvæma eina aðgerð, og Docker er eins konar allt-í-einn blanda). Í öðru lagi gætu þeir útrýmt öllum núverandi annmörkum í hugbúnaðinum Docker. Í þriðja lagi myndu þau vera fullkomlega samhæf við viðskiptakröfur leiðandi viðskiptakerfa til að dreifa, stjórna og þjóna gámaforritum (til dæmis Red Hat OpenShift).
Takmarkanir Docker og kostum nýja hugbúnaðarins hefur þegar verið lýst í smáatriðum í Þessi grein, og nákvæma lýsingu á öllum hugbúnaðarstaflanum sem boðið er upp á innan OCI verkefnisins og byggingareiginleikum þess er að finna í opinberu skjölunum og greinum frá Red Hat sjálfum (ekki slæmt grein í Red Hat blogginu) og í þriðja aðila umsagnir.
Það er mikilvægt að hafa í huga hvaða virkni íhlutir fyrirhugaðs stafla hafa:
Podman — bein samskipti við ílát og myndgeymslu í gegnum runC ferlið;
Byggja — setja saman og hlaða upp myndum í skrárinn;
BÚÐU TIL ÞAÐ — keyranlegt umhverfi fyrir gámaskipunarkerfi (til dæmis Kubernetes).
Ég held að til að skilja almennt samspilskerfi milli íhluta staflans er ráðlegt að gefa upp tengingarmynd hér Kubernetes c runC og lág-stigi bókasöfn sem nota BÚÐU TIL ÞAÐ:
BÚÐU TIL ÞAÐ и Kubernetes fylgja sömu útgáfu- og stuðningsferli (samhæfisfylki er mjög einfalt: helstu útgáfur Kubernetes и BÚÐU TIL ÞAÐ falla saman), og þetta, að teknu tilliti til áherslu á fullkomna og alhliða prófun á rekstri þessa stafla af hönnuðum, gefur okkur rétt til að búast við hámarks stöðugleika í rekstri við hvaða notkunarsvið sem er (hlutfallslegur léttleiki er einnig gagnlegur hér BÚÐU TIL ÞAÐ miðað við Docker vegna markvissar takmörkunar á virkni).
Þegar þú setur upp Kubernetes "rétt leið" leið (samkvæmt OCI, auðvitað) með því að nota BÚÐU TIL ÞAÐ á CentOS 8 Við lentum í smávægilegum erfiðleikum sem okkur tókst þó að sigrast á. Ég mun með ánægju deila með þér uppsetningar- og stillingarleiðbeiningum, sem samtals mun taka um 10 mínútur.
Hvernig á að dreifa Kubernetes á CentOS 8 með CRI-O ramma
Forkröfur: að minnsta kosti einn gestgjafi (2 kjarna, 4 GB vinnsluminni, að minnsta kosti 15 GB geymsla) með uppsettum CentOS 8 (Mælt er með „Server“ uppsetningarsniðinu), sem og færslum fyrir það í staðbundnu DNS (sem síðasta úrræði geturðu komist af með færslu í /etc/hosts). Og ekki gleyma slökkva á skiptum.
Við framkvæmum allar aðgerðir á gestgjafanum sem rótnotanda, farðu varlega.
Í fyrsta skrefi munum við stilla stýrikerfið, setja upp og stilla bráðabirgðaháðar fyrir CRI-O.
Við skulum uppfæra stýrikerfið:
dnf -y update
Næst þarftu að stilla eldvegginn og SELinux. Hér veltur allt á umhverfinu sem gestgjafi okkar eða gestgjafar munu starfa í. Þú getur annað hvort sett upp eldvegg í samræmi við ráðleggingar frá skjöl, eða, ef þú ert á traustu neti eða notar eldvegg frá þriðja aðila, breyttu sjálfgefna svæði í traust eða slökktu á eldveggnum:
stilltu nauðsynlega útgáfu BÚÐU TIL ÞAÐ (meiri útgáfa BÚÐU TIL ÞAÐ, eins og áður hefur verið nefnt, passa við nauðsynlega útgáfu Kubernetes), frá nýjustu stöðugu útgáfunni Kubernetes núna 1.18:
Gefðu gaum að fyrsta blæbrigðinu sem við lendum í uppsetningarferlinu: þú þarft að breyta stillingunum BÚÐU TIL ÞAÐ áður en þjónustan er hafin, þar sem nauðsynlegur conmon íhlutur hefur aðra staðsetningu en tilgreindur:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
Annað mikilvæga litbrigðið: þar sem við notum ekki púka Docker, en við notum púkann BÚÐU TIL ÞAÐ, fyrir ræsingu og frumstillingu Kubernetes þú þarft að gera viðeigandi stillingar í stillingarskránni /var/lib/kubelet/config.yaml, eftir að hafa fyrst búið til viðeigandi möppu:
Þriðja mikilvæga atriðið sem við lendum í uppsetningu: þrátt fyrir að við höfum gefið til kynna ökumanninn sem notaður er cgroup, og uppsetningu þess í gegnum rökin sem send voru kúbelet er gamaldags (eins og er skýrt tekið fram í skjölunum), þurfum við að bæta við rökum við skrána, annars verður þyrpingin okkar ekki frumstillt:
Að sérsníða stjórn-flugvél eða starfsmaður hnúta á nokkrum mínútum, þú getur notað með þessu handriti.
Það er kominn tími til að frumstilla klasann okkar.
Til að frumstilla þyrpinguna skaltu keyra skipunina:
kubeadm init --pod-network-cidr=10.244.0.0/16
Vertu viss um að skrifa niður skipunina til að taka þátt í þyrpingunni „kubeadm join …“, sem þú ert beðinn um að nota í lok úttaksins, eða að minnsta kosti tilgreinda táknin.
Setjum upp viðbótina (CNI) fyrir Pod netið. Ég mæli með að nota Calico. Mögulega vinsælli Flannel er með samhæfnisvandamál við nftablesog já Calico - eina CNI innleiðingin sem verkefnið mælir með og prófuð að fullu Kubernetes:
Til að tengja vinnuhnút við klasann okkar þarftu að stilla hann samkvæmt leiðbeiningum 1 og 2, eða nota handrit, keyrðu síðan skipunina frá „kubeadm init...“ úttakinu sem við skrifuðum niður í fyrra skrefi:
Við skulum athuga hvort klasinn okkar sé frumstilltur og byrjaður að virka:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Tilbúið! Þú getur nú þegar hýst hleðslu á K8s klasanum þínum.
Hvað bíður okkar framundan
Ég vona að leiðbeiningarnar hér að ofan hafi sparað þér tíma og taugar.
Niðurstaða ferla sem eiga sér stað í greininni veltur oft á því hvernig þeir eru samþykktir af meginhluta notenda og þróunaraðila annars hugbúnaðar í samsvarandi sess. Það er enn ekki alveg ljóst til hvers OCI frumkvæðin munu leiða til eftir nokkur ár, en við munum fylgjast með með ánægju. Þú getur deilt skoðun þinni núna í athugasemdunum.
Haltu áfram!
Þessi grein birtist þökk sé eftirfarandi heimildum: