Sveiki! Mani sauc Sergejs, es esmu DevOps at Surf. Surf DevOps nodaļas mÄrÄ·is ir ne tikai veidot mijiedarbÄ«bu starp speciÄlistiem un integrÄt darba procesus, bet arÄ« aktÄ«vi pÄtÄ«t un ieviest aktuÄlÄs tehnoloÄ£ijas gan savÄ infrastruktÅ«rÄ, gan klienta infrastruktÅ«rÄ.
TÄlÄk es nedaudz pastÄstÄ«Å”u par izmaiÅÄm konteineru tehnoloÄ£iju kaudzÄ, ar kurÄm mÄs saskÄrÄmies, pÄtot izplatÄ«Å”anu 8 CentOS un par to, kas tas ir CRI-O un kÄ Ätri iestatÄ«t izpildÄmo vidi Kubernetes.
KÄpÄc Docker nav iekļauts CentOS 8?
PÄc jaunÄko lielÄko izdevumu instalÄÅ”anas RHEL 8 vai 8 CentOS nevar nepamanÄ«t: Å”iem izplatÄ«jumiem un oficiÄlajiem repozitorijiem nav lietojumprogrammas dokers, kas idejiski un funkcionÄli aizstÄj paketes Podmans, Buildah (pÄc noklusÄjuma atrodas izplatÄ«Å”anÄ) un CRI-O. Tas ir saistÄ«ts ar to standartu praktisko ievieÅ”anu, ko, cita starpÄ, izstrÄdÄjusi Red Hat Open Container Initiative (OCI) projekta ietvaros.
OCI, kas ir daļa no The Linux Foundation, mÄrÄ·is ir izveidot atvÄrtus nozares standartus konteineru formÄtiem un izpildlaikiem, kas vienlaikus atrisina vairÄkas problÄmas. PirmkÄrt, tie nebija pretrunÄ ar Linux filozofiju (piemÄram, daļÄ, ka katrai programmai jÄveic viena darbÄ«ba, un dokers ir sava veida "viss-vienÄ" kombains). OtrkÄrt, tie varÄtu novÄrst visus esoÅ”os programmatÅ«ras trÅ«kumus dokers. TreÅ”kÄrt, tie bÅ«tu pilnÄ«bÄ savietojami ar vadoÅ”o komerciÄlo platformu biznesa prasÄ«bÄm konteineru lietojumprogrammu izvietoÅ”anai, pÄrvaldÄ«bai un apkalpoÅ”anai (piemÄram, Red Hat OpenShift).
Ierobežojumi dokers un jaunÄs programmatÅ«ras priekÅ”rocÄ«bas jau ir sÄ«ki aprakstÄ«tas Å is raksts, un detalizÄts apraksts par visu OCI projekta ietvaros piedÄvÄto programmatÅ«ras steku un tÄs arhitektÅ«ras iezÄ«mÄm ir atrodams oficiÄlajÄ dokumentÄcijÄ un paÅ”a Red Hat rakstos (nav slikti raksts Red Hat emuÄrÄ) un treÅ”Äs puses atsauksmes.
Ir svarÄ«gi atzÄ«mÄt, kÄda ir piedÄvÄtÄs steka komponentu funkcionalitÄte:
Podmans ā tieÅ”a mijiedarbÄ«ba ar konteineriem un attÄlu krÄtuvi, izmantojot runC procesu;
Buildah ā attÄlu montÄža un augÅ”upielÄde reÄ£istrÄ;
CRI-O ā izpildÄma vide konteineru orÄ·estrÄÅ”anas sistÄmÄm (piemÄram, Kubernetes).
Es domÄju, ka, lai saprastu vispÄrÄjo steka komponentu mijiedarbÄ«bas shÄmu, Å”eit ir ieteicams sniegt savienojuma shÄmu Kubernetes c runC un zema lÄ«meÅa bibliotÄkas, izmantojot CRI-O:
CRI-O Šø Kubernetes ievÄrojiet to paÅ”u izlaiÅ”anas un atbalsta ciklu (saderÄ«bas matrica ir ļoti vienkÄrÅ”a: galvenÄs versijas Kubernetes Šø CRI-O sakrÄ«t), un tas, Åemot vÄrÄ izstrÄdÄtÄju koncentrÄÅ”anos uz pilnÄ«gu un visaptveroÅ”u Ŕī kaudzes darbÄ«bas testÄÅ”anu, dod mums tiesÄ«bas sagaidÄ«t maksimÄlu sasniedzamo stabilitÄti darbÄ«bÄ jebkurÄ lietoÅ”anas scenÄrijÄ (Å”eit izdevÄ«gs ir arÄ« relatÄ«vais vieglums CRI-O salÄ«dzinÄjumÄ ar dokers mÄrÄ·tiecÄ«ga funkcionalitÄtes ierobežojuma dÄļ).
InstalÄjot Kubernetes "pareizÄ ceļa" veidÄ (protams, saskaÅÄ ar OCI), izmantojot CRI-O par 8 CentOS SaskÄrÄmies ar nelielÄm grÅ«tÄ«bÄm, kuras tomÄr veiksmÄ«gi pÄrvarÄjÄm. LabprÄt dalÄ«Å”os ar jums instalÄÅ”anas un konfigurÄÅ”anas instrukcijÄs, kas kopumÄ aizÅems aptuveni 10 minÅ«tes.
KÄ izvietot Kubernetes operÄtÄjsistÄmÄ CentOS 8, izmantojot CRI-O sistÄmu
PriekÅ”nosacÄ«jumi: vismaz viena resursdatora klÄtbÅ«tne (2 kodoli, 4 GB RAM, vismaz 15 GB krÄtuve) ar instalÄtu 8 CentOS (ieteicams instalÄcijas profils āServerisā), kÄ arÄ« tÄ ieraksti vietÄjÄ DNS (kÄ pÄdÄjo lÄ«dzekli varat iztikt ar ierakstu mapÄ /etc/hosts). Un neaizmirstiet atspÄjot mijmaiÅu.
MÄs veicam visas darbÄ«bas resursdatorÄ kÄ root lietotÄjs, esiet uzmanÄ«gi.
TÄlÄk jums jÄkonfigurÄ ugunsmÅ«ris un SELinux. Å eit viss ir atkarÄ«gs no vides, kurÄ strÄdÄs mÅ«su saimnieks vai saimnieki. Varat iestatÄ«t ugunsmÅ«ri saskaÅÄ ar ieteikumiem no dokumentÄcijavai, ja atrodaties uzticamÄ tÄ«klÄ vai izmantojat treÅ”Äs puses ugunsmÅ«ri, mainiet noklusÄjuma zonu uz uzticamu vai izslÄdziet ugunsmÅ«ri:
PievÄrsiet uzmanÄ«bu pirmajai niansei, ar kuru saskaramies instalÄÅ”anas procesÄ: jums ir jÄrediÄ£Ä konfigurÄcija CRI-O pirms pakalpojuma palaiÅ”anas, jo nepiecieÅ”amais kopÄ«gais komponents atrodas citÄ vietÄ nekÄ norÄdÄ«tÄ:
sed -i 's//usr/libexec/crio/conmon//usr/bin/conmon/' /etc/crio/crio.conf
Tagad jÅ«s varat aktivizÄt un palaist dÄmonu CRI-O:
Otra svarÄ«ga nianse: tÄ kÄ mÄs neizmantojam dÄmonu dokers, bet mÄs izmantojam dÄmonu CRI-O, pirms palaiÅ”anas un inicializÄcijas Kubernetes konfigurÄcijas failÄ /var/lib/kubelet/config.yaml ir jÄveic atbilstoÅ”i iestatÄ«jumi, vispirms izveidojot vajadzÄ«go direktoriju:
TreÅ”ais svarÄ«gais punkts, ar kuru saskaramies instalÄÅ”anas laikÄ: neskatoties uz to, ka esam norÄdÄ«juÅ”i izmantoto draiveri cgrupa, un tÄ konfigurÄcija, izmantojot nodotos argumentus kubelet ir novecojis (kÄ tas ir skaidri norÄdÄ«ts dokumentÄcijÄ), failam jÄpievieno argumenti, pretÄjÄ gadÄ«jumÄ mÅ«su klasteris netiks inicializÄts:
Lai pielÄgotu vadÄ«bas plakne vai darbinieks mezgli minÅ«tÄs, varat izmantot ar Å”o skriptu.
Ir pienÄcis laiks inicializÄt mÅ«su kopu.
Lai inicializÄtu klasteru, palaidiet komandu:
kubeadm init --pod-network-cidr=10.244.0.0/16
Noteikti pierakstiet komandu, lai pievienotos klasterim ākubeadm joinā¦ā, kas jums tiek lÅ«gts izmantot izvades beigÄs, vai vismaz norÄdÄ«tos marÄ·ierus.
InstalÄsim spraudni (CNI) Pod tÄ«klam. Iesaku lietot Calico. IespÄjams populÄrÄks Flaneļa ir saderÄ«bas problÄmas ar nftables, jÄ un jÄ Calico - vienÄ«gÄ projekta ieteiktÄ un pilnÄ«bÄ pÄrbaudÄ«tÄ CNI ievieÅ”ana Kubernetes:
Lai pievienotu darbinieka mezglu mÅ«su klasterim, tas jÄkonfigurÄ saskaÅÄ ar 1. un 2. instrukciju vai izmantojiet skripts, pÄc tam palaidiet komandu no ākubeadm init...ā izvades, ko pierakstÄ«jÄm iepriekÅ”ÄjÄ darbÄ«bÄ:
PÄrbaudÄ«sim, vai mÅ«su klasteris ir inicializÄts un sÄcis darboties:
kubectl --kubeconfig=/etc/kubernetes/admin.conf get pods -A
Gatavs! JÅ«s jau varat mitinÄt lietderÄ«gÄs kravas savÄ K8s klasterÄ«.
Kas mÅ«s sagaida priekÅ”Ä
Es ceru, ka iepriekÅ” sniegtie norÄdÄ«jumi palÄ«dzÄja jums ietaupÄ«t laiku un nervus.
NozarÄ notiekoÅ”o procesu iznÄkums bieži ir atkarÄ«gs no tÄ, kÄ tos pieÅem lielÄkÄ daļa galalietotÄju un citas programmatÅ«ras izstrÄdÄtÄju attiecÄ«gajÄ niÅ”Ä. PagaidÄm nav pilnÄ«bÄ skaidrs, pie kÄ OCI iniciatÄ«vas novedÄ«s pÄc dažiem gadiem, taÄu ar prieku skatÄ«simies. Jau tagad varat dalÄ«ties ar savu viedokli komentÄros.
Sekojiet līdzi!
Å is raksts parÄdÄ«jÄs, pateicoties Å”Ädiem avotiem: