Kontaynarada lagu qaado: CRI-O hadda waa furaha OpenShift Container Platform 4

Platform Red Hat OpenShift Weelka Platform 4 waxay kuu ogolaanaysaa inaad hagaajiso abuurista martida loo geeyo weelasha, oo ay ku jiraan kaabayaasha bixiyeyaasha adeegga daruuriga, ee dhufto ee teknoolajiyada ama nidaamyada biraha qaawan. Si loo abuuro madal daruur-ku-saleysan oo dhab ah, waxay ahayd inaan si adag u xakameyno dhammaan walxaha la isticmaalo oo aan kordhinno isku halaynta habka iswada ee adag.

Kontaynarada lagu qaado: CRI-O hadda waa furaha OpenShift Container Platform 4

Xalka muuqda wuxuu ahaa in la isticmaalo koofiyadda cas ee Linux CoreOS (nooc ka mid ah koofiyadda cas ee Linux) iyo CRI-O sida caadiga ah, waana kan sababta...

Maadaama mawduuca badmaaxdu uu yahay mid aad u wanaagsan oo lagu heli karo isbarbardhig marka aan sharraxeyno shaqada Kubernetes iyo weelasha, aan isku dayno inaan ka hadalno dhibaatooyinka ganacsiga ee CoreOS iyo CRI-O ay xalliyaan, annaga oo isticmaalaya tusaale Hal-abuurrada Brunel ee wax-soo-saarka blocks-ka. Sanadkii 1803, Marc Brunel waxaa loo xilsaaray inuu soo saaro 100 oo baloogyo ah oo loogu talagalay baahida ciidamada badda ee Ingiriiska ee sii kordhaya. Qalabka wax lagu rido waa nooc ka mid ah toogashada oo loo isticmaalo in lagu xidho xadhkaha shiraacyada. Ilaa bilowgii qarnigii 19-aad, baloogyadan waxaa lagu sameeyay gacanta, laakiin Brunel waxa u suurtagashay in ay si otomaatig ah u soo saarto wax soo saarka oo bilaabay in ay soo saarto baloogyada caadiga ah iyada oo la adeegsanayo qalabka mashiinka. Automation-ka habkan waxa uu ka dhigan yahay in baloogyada soo baxay ay asal ahaan isku mid ahaayeen, si fududna loo beddeli karo haddii la jebiyo, lana soo saari karo tiro badan.

Hadda ka fikir haddii Brunel uu shaqadan u qabto 20 nooc oo maraakiib ah oo kala duwan (nooca Kubernetes) iyo shan meerayaal oo kala duwan oo leh qulqulka badda iyo dabaylaha (bixiyeyaasha daruuraha). Intaa waxaa dheer, waxaa loo baahnaa in dhammaan maraakiibta (OpenShift clusters), iyada oo aan loo eegin meereyaasha lagu socdo navigation-ka, marka laga eego aragtida kabtanka ( hawl-wadeennada maamula hawlgalka kooxaha) inay u dhaqmaan si isku mid ah. Si loo sii wado isbarbardhigga badda, kabtannada maraakiibtu haba yaraatee ma daneeyaan nooca jeexjeexyada (CRI-O) ee loo isticmaalo maraakiibtooda - waxa ugu weyn ee iyaga u ah waa in blocks ay yihiin kuwo xooggan oo la isku halleyn karo.

OpenShift 4, sida madal daruureed, ayaa wajaheysa caqabad ganacsi oo la mid ah. Noodyo cusub waa in la abuuraa wakhtiga kooxdu abuurmayso, haddii ay dhacdo in mid ka mid ah noodhka mid ka mid ah uu xumaado, ama marka la miisaamo kooxda. Marka nood cusub la abuuro oo la bilaabo, qaybaha martida muhiimka ah, oo ay ku jiraan CRI-O, waa in loo habeeyaa si waafaqsan. Sida wax soo saarka kale, "qalabka ceeriin" waa in la keenaa bilowga. Dhinaca maraakiibta, alaabta ceeriin waa bir iyo alwaax. Si kastaba ha ahaatee, xaalada abuurista martigeliyaha geynta weelasha kutlada OpenShift 4, waxaad u baahan tahay inaad lahaato faylal habayn iyo servers API-ay bixiso si ahaan. OpenShift ayaa markaa bixin doonta heerka loo baahan yahay ee otomatiga inta lagu jiro wareegga nolosha oo dhan, iyada oo bixisa taageerada badeecada lagama maarmaanka u ah isticmaaleyaasha dhammaadka ah oo sidaas darteed dib u soo ceshanaya maalgashiga goobta.

OpenShift 4 waxaa loo abuuray si ay u bixiso awoodda si ku habboon loo cusboonaysiiyo nidaamka inta lagu jiro wareegga nolosha ee goobta (nooca 4.X) ee dhammaan bixiyeyaasha xisaabinta daruuriga ah, goobaha farsamada iyo xitaa nidaamyada birta ee qaawan. Si taas loo sameeyo, qanjidhada waa in la abuuraa iyadoo lagu salaynayo walxo la isweydaarsan karo. Marka kooxdu u baahato nooc cusub oo Kubernetes ah, waxay sidoo kale helaysaa nooca u dhigma ee CRI-O ee CoreOS. Maadaama nooca CRI-O uu si toos ah ugu xidhan yahay Kubernetes, tani waxay si weyn u fududaynaysaa wax kasta oo ku saabsan tijaabinta, cilad-baadhista, ama ujeedooyinka taageerada. Intaa waxaa dheer, habkani wuxuu yareynayaa kharashyada isticmaala dhamaadka iyo Koofiyada Cas.

Kani waa hab asaasi ah oo cusub oo looga fikirayo kutlooyinka Kubernetes oo dhidibada u aasaya qorshaynta astaamo cusub oo faa'iido leh oo soo jiidasho leh. CRI-O (Container Runtime Interface - Furan Container Initiative, oo loo soo gaabiyo CRI-OCI) ayaa u soo baxday inay tahay doorashada ugu guusha badan ee abuuritaanka qanjidhada faraha badan ee lagama maarmaanka u ah in lala shaqeeyo OpenShift. CRI-O waxay bedeli doontaa matoorka Docker ee horay loo isticmaalay, isagoo siinaya isticmaalayaasha OpenShift dhaqaale, xasilloon, fudud oo caajis ah - Haa, si sax ah ayaad u maqashay - mashiinka weelka caajiska ah ee loo sameeyay si gaar ah ula shaqaynta Kubernetes.

Adduunka weelasha furan

Adduunku waxa uu u socday dhinaca weelasha furan muddo dheer. Hadday tahay Kubernetes, ama heerar hoose, horumarinta heerarka weelka Natiijadu waxay keenaysaa hab-nololeed hal abuurnimo heer kasta.

Dhammaantood waxay ku bilowdeen abuurista Hindisaha Konteenarada Furan June 2015. Marxaladdan hore ee shaqada, qeexida weelasha ayaa la sameeyay sawir ΠΈ jawi runtime. Tani waxay xaqiijisay in qalabku isticmaali karo halbeeg sawirada weelka iyo qaab midaysan oo lagula shaqaynayo. Tilmaamaha ayaa markii dambe lagu daray qaybinta, u oggolaanaya isticmaaleyaasha inay si fudud u wadaagaan sawirada weelka.

Bulshada Kubernetes ayaa markaa soo saartay hal halbeeg oo isku xidhka la xidhi karo, oo loo yaqaan Kontaynarada Runtime Interface (CRI). Thanks to this, isticmaalayaasha Kubernetes waxay awoodeen inay ku xidhaan matooro kala duwan si ay ugu shaqeeyaan weelasha marka lagu daro Docker.

Injineerada Koofiyada Cas iyo Google waxay arkeen baahida suuqa ee mashiinka weelka kaas oo aqbali kara codsiyada Kubelet ee nidaamka CRI waxayna soo bandhigeen weelal la jaan qaadaya tilmaamaha OCI ee kor ku xusan. Markaa OCID ayaa soo muuqatay. Laakin iga raali noqo, miyaanu nidhi in agabkan loo hibeeyay CRI-O? Dhab ahaantii waa, kaliya la sii daayo nooca 1.0 mashruuca waxaa loo bixiyay CRI-O.

Sawir 1.

Kontaynarada lagu qaado: CRI-O hadda waa furaha OpenShift Container Platform 4

Hal-abuur leh CRI-O iyo CoreOS

Markii la bilaabay barnaamijka OpenShift 4, waa la bedelay mashiinka weelka, oo si caadi ah loogu isticmaalo goobta, Docker waxaa lagu bedelay CRI-O, oo bixisa kharash-ool ah, xasilloon, jawi fudud oo caajis ah oo loogu talagalay socodsiinta weel ka soo baxa si la mid ah Kubernetes. Tani waxay si weyn u fududaynaysaa taageerada kooxda iyo qaabaynta. Habaynta mishiinka weelka iyo martigeliyaha, iyo sidoo kale maamulkooda, ayaa si toos ah u noqda gudaha OpenShift 4.

Sug, waa sidee tani?

Taasi waa sax, markii uu soo baxay OpenShift 4, ma jirto baahi loo qabo in lagu xidho martigeliyaha gaarka ah oo lagu rakibo mishiinka weelka, habaynta kaydinta, habaynta server-yada raadinta ama isku xidhka shabakad. Madal OpenShift 4 ayaa gabi ahaanba dib loo habeeyay si loo isticmaalo Qaab-dhismeedka Hawl-wadeenka ma aha oo kaliya marka la eego codsiyada isticmaalaha dhamaadka, laakiin sidoo kale marka la eego hawlaha aasaasiga ah ee heerka saldhigga ah sida geynta sawirada, habaynta nidaamka, ama rakibida cusbooneysiinta.

Kubernetes waxay had iyo jeer u ogolaatay isticmaalayaasha inay maamulaan codsiyada iyagoo qeexaya gobolka la rabo iyo isticmaalka kantaroolayaasha, si loo hubiyo in gobolka dhabta ahi uu u dhigmo gobolka la beegsanayo sida ugu dhow ee suurtogalka ah. Tani gobolka la beegsanayo iyo habka gobolka dhabta ah waxay furaysaa fursado waa weyn marka laga eego dhinaca horumarka iyo hawlaha labadaba. Horumariyayaashu waxay ku qeexi karaan gobolka loo baahan yahay u gudbi U dir hawlwadeenka qaabka YAML ama faylka JSON, ka dibna hawlwadeenku wuxuu abuuri karaa tusaale ahaan codsiga loo baahan yahay jawiga wax soo saarka, iyo xaaladda hawlgalka tusaale ahaan waxay si buuxda ula mid tahay midka la cayimay.

Adigoo isticmaalaya Hawl-wadeenada goobta, OpenShift 4 waxay keenaysaa jaantuskan cusub (iyadoo la adeegsanayo fikradda dejisan iyo xaaladda dhabta ah) maamulka RHEL CoreOS iyo CRI-O. Hawlaha habaynta iyo maaraynta noocyada nidaamka qalliinka iyo mishiinka weelka waxaa si toos ah loo adeegsadaa waxa loogu yeero. Hawlwadeenka Isku xidhka Mashiinka (MCO). MCO waxa ay si weyn u fududaysaa shaqada maamulaha kooxda, iyada oo asal ahaan si otomaatig ah u dejisa marxaladaha ugu dambeeya ee rakibidda, iyo sidoo kale hawlgallada rakibidda kadib (maalin laba hawlood). Waxaas oo dhami waxay ka dhigayaan OpenShift 4 madal daruur run ah. Tan wax yar ka dib ayaan geli doonaa.

weelasha ordaya

Isticmaalayaashu waxay heleen fursad ay ku isticmaalaan mashiinka CRI-O ee madal OpenShift tan iyo nooca 3.7 ee heerka Tech Preview iyo nooca 3.9 ee heerka Guud ahaan la heli karo (hadda la taageeray). Intaa waxaa dheer, Koofiyada Cas ayaa si weyn u isticmaala CRI-O oo loogu talagalay socodsiinta culeysyada shaqada ee wax soo saarka gudaha OpenShift Online ilaa nooca 3.10. Waxaas oo dhami waxay u oggolaadeen kooxda ka shaqaynaysa CRI-O inay khibrad ballaadhan ka helaan weelasha soo saarista ballaaran ee kutlooyinka waaweyn ee Kubernetes. Si aad u hesho faham aasaasi ah oo ku saabsan sida Kubernetes u isticmaalo CRI-O, aan eegno sawirka soo socda, kaas oo muujinaya sida qaab-dhismeedku u shaqeeyo.

Bariis 2. Sida weelku ugu shaqeeyaan kutlada Kubernetes

Kontaynarada lagu qaado: CRI-O hadda waa furaha OpenShift Container Platform 4

CRI-O waxay fududaynaysaa abuurista martigaliyayaasha weelka cusub iyadoo la jaanqaadaysa dhammaan heerka sare marka la bilaabayo qanjidhada cusub, iyo marka la siidaayo noocyo cusub oo ah madal OpenShift. Dib-u-eegis lagu sameeyo dhammaan madalku waxay u oggolaanaysaa dib-u-soo-noqoshada wax-is-weydaarsiga, waxayna sidoo kale ka hortagtaa xirmooyinka ku-tiirsanaanta u dhexeeya xuddunta dabada weelka, mashiinka weelka, noodhka (Kubelets) iyo Kubernetes Master node. Iyada oo si dhexe loo maareeyo dhammaan qaybaha madal, iyada oo la xakameynayo iyo qaabaynta, had iyo jeer waxaa jira waddo cad oo ka socota gobolka A ilaa gobolka B. Tani waxay fududaynaysaa habka cusboonaysiinta, waxay wanaajisaa amniga, waxay wanaajisaa warbixinta waxqabadka, waxayna gacan ka geysataa dhimista qiimaha cusbooneysiinta iyo rakibida noocyo cusub .

Muujinta awoodda walxaha beddelka ah

Sidaan hore u soo sheegnay, adeegsiga Mashiinka Config Operator si loo maareeyo martigeliyaha weelka iyo mishiinka weelka ee OpenShift 4 waxay ku siinaysaa heer cusub oo otomaatig ah oo aan markii hore suurtogal ka ahayn goobta Kubernetes. Si loo muujiyo sifooyinka cusub, waxaanu tusi doonaa sida aad wax ugu samayn karto faylka crio.conf. Si aad isaga ilaaliso inaad ku wareerto erey-bixinta, isku day inaad diirada saarto natiijooyinka.

Marka hore, aynu abuurno waxa loo yaqaan qaabaynta wakhtiga runtime-Container Runtime Config. Ka fakar sida kheyraadka Kubernetes oo u taagan qaabeynta CRI-O. Xaqiiqda, waa nooc gaar ah oo shay la yiraahdo MachineConfig, kaas oo ah qaabeyn kasta oo la geeyo mashiinka RHEL CoreOS oo qayb ka ah kooxda OpenShift.

Ilahan gaarka ah, ee loo yaqaan ContainerRuntimeConfig, waxaa loo sameeyay si ay ugu fududaato maamulayaasha kooxda inay habeeyaan CRI-O. Qalabkani waa mid awood badan oo ku filan in lagu dabaqi karo qanjidhada qaarkood iyadoo ku xiran goobaha MachineConfigPool. Ka fakar sida koox mashiino ah oo u adeega ujeedo isku mid ah.

U fiirso labada sadar ee ugu dambeeya ee aan ku beddeli doonno faylka /etc/crio/crio.conf. Labadan sadar waxay aad ugu shabahaan xadadka ku jira faylka crio.conf, waa:

vi ContainerRuntimeConfig.yaml

Π’Ρ‹Π²ΠΎΠ΄:

apiVersion: machineconfiguration.openshift.io/v1
kind: ContainerRuntimeConfig
metadata:
 name: set-log-and-pid
spec:
 machineConfigPoolSelector:
   matchLabels:
     debug-crio: config-log-and-pid
 containerRuntimeConfig:
   pidsLimit: 2048
   logLevel: debug

Hadda aan ku riixno feylkan kutlada Kubernetes oo aan hubinno in dhab ahaantii la abuuray. Fadlan la soco in hawlgalku uu la mid yahay kan ilaha kale ee Kubernetes:

oc create -f ContainerRuntimeConfig.yaml
oc get ContainerRuntimeConfig

Π’Ρ‹Π²ΠΎΠ΄:

NAME              AGE
set-log-and-pid   22h

Marka aan abuurno ContainerRuntimeConfig, waxaan u baahanahay inaan wax ka beddelno mid ka mid ah MachineConfigPools si aan u calaamadeyno Kubernetes inaan rabno inaan ku dabaqno qaabeyntan koox gaar ah oo mashiinno ah oo kutlada. Xaaladdan oo kale waxaan u bedeli doonaa MachineConfigPool ee qanjidhada sayidkiisa:

oc edit MachineConfigPool/master

Gabagabo (si loo caddeeyo, nuxurka ugu muhiimsan waa laga tagay):

...
metadata:
 creationTimestamp: 2019-04-10T23:42:28Z
 generation: 1
 labels:
   debug-crio: config-log-and-pid
   operator.machineconfiguration.openshift.io/required-for-upgrade: ""
...

Halkaa marka ay marayso, MCO waxa ay bilaabaysaa in ay u abuurto fayl cusub crio.conf kooxda Xaaladdan oo kale, faylka qaabeynta oo dhammaystiran ayaa la arki karaa iyadoo la adeegsanayo Kubernetes API. Xusuusnow, ContainerRuntimeConfig waa nooc gaar ah oo MachineConfig ah, marka waxaan ku arki karnaa natiijada annaga oo eegayna xariiqyada khuseeya MachineConfigs:

oc get MachineConfigs | grep rendered

Π’Ρ‹Π²ΠΎΠ΄:

rendered-master-c923f24f01a0e38c77a05acfd631910b                  4.0.22-201904011459-dirty 2.2.0 16h
rendered-master-f722b027a98ac5b8e0b41d71e992f626                  4.0.22-201904011459-dirty 2.2.0 4m
rendered-worker-9777325797fe7e74c3f2dd11d359bc62                  4.0.22-201904011459-dirty 2.2.0 16h

Fadlan la soco in faylka qaabaynta ee ka soo baxay ee qanjidhada sayidku uu ahaa nooc ka cusub qaabaynta asalka ah. Si aad u aragto, socodsii amarka soo socda. Markaan gudubno, waxaan ogaanay in tani laga yaabo inay tahay mid ka mid ah kuwa ugu wanaagsan taariikhda Kubernetes:

python3 -c "import sys, urllib.parse; print(urllib.parse.unquote(sys.argv[1]))" $(oc get MachineConfig/rendered-master-f722b027a98ac5b8e0b41d71e992f626 -o YAML | grep -B4 crio.conf | grep source | tail -n 1 | cut -d, -f2) | grep pid

Π’Ρ‹Π²ΠΎΠ΄:

pids_limit = 2048

Hadda aan hubinno in qaabeynta lagu dabaqay dhammaan qanjidhada sayidyada. Marka hore waxaan helnaa liiska qanjidhada ee kutlada:

oc get node | grep master

Output:

ip-10-0-135-153.us-east-2.compute.internal   Ready master 23h v1.12.4+509916ce1

ip-10-0-154-0.us-east-2.compute.internal     Ready master 23h v1.12.4+509916ce1

ip-10-0-166-79.us-east-2.compute.internal    Ready master 23h v1.12.4+509916ce1

Hadda aan eegno faylka la rakibay. Waxaad arki doontaa in faylka lagu cusboonaysiiyay qiyamka cusub ee dardaaranka pid iyo debug ee aan ku qeexnay ilaha ContainerRuntimeConfig. Quruxda lafteeda:

oc debug node/ip-10-0-135-153.us-east-2.compute.internal β€” cat /host/etc/crio/crio.conf | egrep 'debug||pid’

Π’Ρ‹Π²ΠΎΠ΄:

...
pids_limit = 2048
...
log_level = "debug"
...

Dhammaan isbeddelladan kooxda waxa la sameeyey iyada oo aan xataa la socodsiin SSH. Dhammaan shaqada waxaa lagu sameeyay gelitaanka Kuberentes master node. Taasi waa, xuduudahan cusub waxaa lagu habeeyay kaliya qanjidhada sare. qanjidhada shaqaaluhu isma bedelin, taas oo muujinaysa faa'iidooyinka habka Kubernetes ee isticmaalka gobolada la cayimay iyo kuwa dhabta ah ee la xidhiidha weelasha martigeliyaha iyo matoorada weelka ee leh walxo la bedeli karo.

Tusaalaha kore wuxuu muujinayaa awoodda lagu sameeyo isbeddelo yar oo OpenShift Container Platform 4 ah oo leh saddex nood wax soo saar ama koox wax soo saar weyn leh oo leh 3000 qanjidhada. Si kastaba ha ahaatee, tirada shaqadu waxay noqon doontaa isku mid - oo aad u yar - kaliya habee faylka ContainerRuntimeConfig, oo beddel hal calaamad gudaha MachineConfigPool. Waxaadna tan ku samayn kartaa nooc kasta oo ka mid ah OpenShift Container Platform 4.X oo ku shaqeeya Kubernetes inta uu nool yahay.

Badanaa shirkadaha tignoolajiyada ayaa si dhakhso ah u horumariya oo aynaan awoodin inaan sharaxno sababta aan u dooranayno tignoolajiyada qaar ka mid ah qaybaha hoose. Matoorada konteenarada ayaa taariikh ahaan ahaa qaybta ay isticmaalayaashu si toos ah ula falgalaan. Maaddaama caannimada weelasha ay si dabiici ah u bilaabatay imaatinka matoorada weelasha, isticmaalayaashu waxay inta badan muujiyaan xiisaha iyaga. Tani waa sabab kale oo Koofiyadda Cas u dooratay CRI-O. Koonteenarada ayaa ku soo badanaya iyada oo diiradda la saarayo hadda orchestration, waxaana ogaanay in CRI-O ay bixiso khibradda ugu fiican marka ay la shaqeyneyso OpenShift 4.

Source: www.habr.com

Add a comment