Container mankany amin'ny conveyor: CRI-O dia efa misy ao amin'ny OpenShift Container Platform 4 izao

sehatra Red Hat OpenShift Container Platform 4 mamela anao hanamora ny famoronana mpampiantrano amin'ny fametrahana kaontenera, ao anatin'izany ny fotodrafitrasa mpanome tolotra rahona, amin'ny sehatra virtoaly na amin'ny rafitra bare-metaly. Mba hamoronana sehatra tena mifototra amin'ny rahona, dia tsy maintsy nifehy mafy ny singa rehetra nampiasaina izahay ary noho izany dia nampitombo ny fahatokisana ny fizotran'ny automation sarotra.

Container mankany amin'ny conveyor: CRI-O dia efa misy ao amin'ny OpenShift Container Platform 4 izao

Ny vahaolana mazava dia ny fampiasana ny Red Hat Enterprise Linux CoreOS (varian'ny Red Hat Enterprise Linux) sy ny CRI-O ho fenitra, ary izao no antony...

Satria ny lohahevitra momba ny sambo dia tena tsara amin'ny fitadiavana analogie rehefa manazava ny asan'ny Kubernetes sy ny kaontenera, andeha isika hiresaka momba ny olana ara-barotra izay mamaha ny CoreOS sy CRI-O, amin'ny fampiasana ohatra. Ny zavatra noforonin'i Brunel amin'ny famokarana blocs. Tamin'ny 1803, i Marc Brunel dia nasaina namokatra blocs 100 ho an'ny filan'ny tafika an-dranomasina britanika mitombo. Ny bloc dia karazana fametahana izay ampiasaina amin'ny fametahana tady amin'ny sambo. Hatramin'ny fiandohan'ny taonjato faha-19, ireo sakana ireo dia natao tamin'ny tanana, saingy i Brunel dia nahavita nanao automatique ny famokarana ary nanomboka namokatra sakana manara-penitra tamin'ny fampiasana fitaovana milina. Ny automatique an'ity dingana ity dia midika fa mitovy amin'ny ankapobeny ireo sakana vokarina, azo soloina mora foana raha tapaka, ary azo amboarina betsaka.

Alao sary an-tsaina izao raha toa ka tsy maintsy nanao an'io asa io i Brunel tamin'ny maodely sambo 20 samy hafa (dika Kubernetes) sy ho an'ny planeta dimy samy hafa miaraka amin'ny rian-dranomasina sy rivotra hafa tanteraka (mpanome rahona). Ankoatra izany, dia takiana ny sambo rehetra (OpenShift clusters), na inona na inona planeta izay navigateur, araka ny fomba fijery ny kapiteny (mpandraharaha izay mitantana ny asa ny clusters) mitondra tena mitovy. Ho fanohizana ny fanoharana an-dranomasina, ny kapitenin-tsambo dia tsy miraharaha mihitsy izay karazana rigging block (CRI-O) ampiasaina amin'ny sambony - ny zava-dehibe ho azy ireo dia ny hoe matanjaka sy azo itokisana ireo sakana ireo.

OpenShift 4, amin'ny maha-sehatra rahona, dia miatrika fanamby ara-barotra mitovitovy amin'izany. Ny node vaovao dia tsy maintsy noforonina amin'ny fotoana famoronana cluster, raha toa ka misy tsy fahombiazana amin'ny iray amin'ireo node, na rehefa manitsy ny cluster. Rehefa noforonina sy natomboka ny node vaovao, dia tsy maintsy amboarina mifanaraka amin'izany ny singa mpampiantrano manan-danja, anisan'izany ny CRI-O. Toy ny amin'ny famokarana hafa rehetra, ny "materials" dia tsy maintsy omena any am-piandohana. Raha ny sambo dia metaly sy hazo ny akora fototra. Na izany aza, amin'ny tranga famoronana mpampiantrano amin'ny fametrahana kaontenera ao amin'ny cluster OpenShift 4, dia mila manana rakitra fanamafisana sy server omen'ny API ianao ho fampidirana. OpenShift dia hanome ny haavon'ny automatique ilaina mandritra ny tsingerin'ny fiainana manontolo, manolotra ny fanohanan'ny vokatra ilaina amin'ny mpampiasa farany ary mamerina ny fampiasam-bola amin'ny sehatra.

OpenShift 4 dia noforonina tamin'ny fomba iray mba hanomezana fahafaham-po ny fanavaozana ny rafitra mandritra ny androm-piainan'ny sehatra manontolo (ho an'ny dikan-teny 4.X) ho an'ny mpamatsy informatika rahona lehibe rehetra, sehatra virtoaly ary na dia rafitra metaly tsy hita maso aza. Mba hanaovana izany, ny nodes dia tsy maintsy noforonina mifototra amin'ny singa azo ovaina. Rehefa mitaky kinova Kubernetes vaovao ny kluster iray, dia mahazo ny CRI-O amin'ny CoreOS ihany koa izy. Koa satria mifamatotra mivantana amin'ny Kubernetes ny kinova CRI-O, dia manamora be ny fanovana rehetra hanaovana fitiliana, famahana olana, na tanjona fanohanana. Ankoatr'izay, ity fomba ity dia mampihena ny vidin'ny mpampiasa farany sy ny Red Hat.

Fomba fisainana vaovao ifotony momba ny cluster Kubernetes ity ary mametraka ny fototra hanomanana endri-javatra vaovao tena ilaina sy mahasarika. CRI-O (Container Runtime Interface - Open Container Initiative, fanafohezana ny CRI-OCI) dia nanjary safidy mahomby indrindra amin'ny famoronana faobe ny nodes izay ilaina amin'ny fiaraha-miasa amin'ny OpenShift. CRI-O dia hanolo ny motera Docker efa nampiasaina teo aloha, manolotra ireo mpampiasa OpenShift ara-toekarena, tsy miovaova, tsotra ary mankaleo – eny, marina ny henonao – maotera fitahirizana mankaleo noforonina manokana hiarahana amin'ny Kubernetes.

Ny tontolon'ny kaontenera misokatra

Efa ela no nifindra tany amin'ny kaontenera misokatra izao tontolo izao. Na ao amin'ny Kubernetes, na amin'ny ambaratonga ambany, fampandrosoana ny fenitry ny kaontenera miteraka tontolo iainana misy fanavaozana isaky ny ambaratonga.

Nanomboka tamin'ny fananganana ny Open Containers Initiative izany tamin'ny Jona 2015. Tamin'ity dingana voalohan'ny asa ity dia niforona ny fepetra momba ny kaontenera SARY ΠΈ tontolo iainana runtime. Izany dia niantoka fa ny fitaovana dia afaka mampiasa fenitra tokana sary fitoeran-javatra ary endrika iraisana hiarahana miasa amin'izy ireo. Nampiana ny tondrozotra taty aoriana fizarana, ahafahan'ny mpampiasa mizara mora foana sary fitoeran-javatra.

Ny vondrom-piarahamonina Kubernetes avy eo dia namolavola fenitra tokana ho an'ny interface tsara azo pluggable, antsoina Fandraisana an-tsarimihetsika amin'ny fitoeran'entana (CRI). Noho izany, ireo mpampiasa Kubernetes dia afaka nampifandray motera isan-karazany mba hiasa amin'ny kaontenera ho fanampin'ny Docker.

Hitan'ny injeniera ao amin'ny Red Hat sy Google fa ilaina ny tsenan'ny milina kaontenera afaka manaiky ny fangatahana Kubelet amin'ny protocol CRI ary nampiditra kaontenera mifanaraka amin'ny fepetra OCI voalaza etsy ambony. Noho izany Nipoitra ny OCID. Fa miala tsiny, tsy nilaza ve izahay fa hatokana ho an'ny CRI-O ity fitaovana ity? Raha ny marina dia izany ihany, miaraka amin'ny famoahana kinova 1.0 nomena anarana hoe CRI-O ilay tetikasa.

Fig. 1.

Container mankany amin'ny conveyor: CRI-O dia efa misy ao amin'ny OpenShift Container Platform 4 izao

Fanavaozana miaraka amin'ny CRI-O sy CoreOS

Tamin'ny fanombohana ny sehatra OpenShift 4 dia niova izany maotera container, ampiasaina amin'ny alΓ lan'ny default ao amin'ny lampihazo, ary ny Docker dia nosoloina CRI-O, manolotra tontolo iray mahomby, tsy miovaova, tsotra ary mankaleo amin'ny fampandehanana kaontenera izay mivoatra mifanaraka amin'ny Kubernetes. Manamora ny fanohanana sy ny fandrindrana cluster izany. Ny fanamafisana ny motera container sy ny mpampiantrano, ary koa ny fitantanana azy ireo, dia lasa mandeha ho azy ao anatin'ny OpenShift 4.

Andraso, ahoana ity?

Marina izany, miaraka amin'ny fahatongavan'ny OpenShift 4, tsy ilaina intsony ny mifandray amin'ny mpampiantrano tsirairay ary mametraka motera container, manamboatra fitahirizana, manamboatra lohamilina fikarohana na manamboatra tambajotra. Ny sehatra OpenShift 4 dia novolavolaina tanteraka hampiasa ny Framework Operator tsy eo amin'ny rindranasan'ny mpampiasa farany ihany, fa koa eo amin'ny sehatry ny asa amin'ny sehatra fototra toy ny fametrahana sary, fanamboarana ny rafitra, na fametrahana fanavaozana.

Ny Kubernetes dia namela ny mpampiasa hitantana ny rindranasa amin'ny alΓ lan'ny famaritana ny fanjakana irina sy ny fampiasana azy mpitandrina, mba hahazoana antoka fa ny fanjakana tena izy dia mifanandrify indrindra amin'ny fanjakana kendrena. izany fanjakana kendrena sy fomba fiasa tena izy manokatra fahafahana lehibe avy amin'ny lafiny fampandrosoana sy ny asa. Ny mpamorona dia afaka mamaritra ny fanjakana ilaina amin'ny ampita izany amin'ny mpandraharaha amin'ny endrika rakitra YAML na JSON, ary avy eo ny mpandraharaha dia afaka mamorona ny fampiharana ilaina amin'ny tontolon'ny famokarana, ary ny toetry ny fiasan'ity ohatra ity dia hifanaraka tanteraka amin'ilay voatondro.

Amin'ny fampiasana Operators amin'ny sehatra, OpenShift 4 dia mitondra ity paradigma vaovao ity (mampiasa ny foto-kevitry ny fametrahana sy ny tena fanjakana) amin'ny fitantanana ny RHEL CoreOS sy CRI-O. Ny andraikitry ny fanamboarana sy ny fitantanana ny dikan-tenin'ny rafitra miasa sy ny maotera container dia mandeha ho azy amin'ny fampiasana ilay antsoina hoe Operator Config Machine (MCO). Ny MCO dia manatsotra be ny asan'ny mpitantana cluster, amin'ny ankapobeny dia manao automatique ny dingana farany amin'ny fametrahana, ary koa ny hetsika aorian'ny fametrahana (asa roa andro). Izany rehetra izany dia mahatonga ny OpenShift 4 ho sehatra rahona marina. Hiditra amin’izany isika ato aoriana kely.

Kaontenera mihazakazaka

Ny mpampiasa dia nanana fahafahana nampiasa ny motera CRI-O tao amin'ny sehatra OpenShift nanomboka tamin'ny version 3.7 amin'ny sata Tech Preview ary avy amin'ny version 3.9 amin'ny sata misy amin'ny ankapobeny (manohana ankehitriny). Ankoatr'izay, ny Red Hat dia mampiasa betsaka CRI-O amin'ny fampandehanana ny asa famokarana ao amin'ny OpenShift Online hatramin'ny version 3.10. Izany rehetra izany dia nahafahan'ny ekipa miasa ao amin'ny CRI-O hahazo traikefa betsaka amin'ny kaontenera fandefasana faobe amin'ny cluster Kubernetes lehibe. Mba hahazoana fahatakarana fototra momba ny fampiasan'i Kubernetes ny CRI-O, andeha hojerentsika ity fanoharana manaraka ity, izay mampiseho ny fomba fiasan'ny maritrano.

vary. 2. Ny fomba fiasan'ny kaontenera ao amin'ny cluster Kubernetes

Container mankany amin'ny conveyor: CRI-O dia efa misy ao amin'ny OpenShift Container Platform 4 izao

Ny CRI-O dia manamora ny famoronana mpampiantrano kaontenera vaovao amin'ny alΓ lan'ny fampifanarahana ny ambaratonga ambony rehetra rehefa manomboka nodes vaovao, ary rehefa mamoaka dikan-teny vaovao amin'ny sehatra OpenShift. Ny fanavaozana ny sehatra manontolo dia ahafahan'ny fanavaozana/famerenana amin'ny fifanakalozana, ary misoroka ny fiatoana amin'ny fiankinan-doha eo amin'ny fototry ny rambony kaontenera, ny motera container, ny nodes (Kubelets) ary ny node Master Kubernetes. Amin'ny alΓ lan'ny fitantanana afovoany ny singa rehetra amin'ny sehatra, miaraka amin'ny fanaraha-maso sy ny fanovana, dia misy lalana mazava foana avy amin'ny fanjakana A mankany amin'ny fanjakana B. Manamora ny fizotran'ny fanavaozana izany, manatsara ny fiarovana, manatsara ny tatitra momba ny zava-bita, ary manampy amin'ny fampihenana ny vidin'ny fanavaozana sy ny fametrahana dikan-teny vaovao. .

Fanehoana ny herin'ny singa fanolo

Araka ny voalaza teo aloha, ny fampiasana ny Machine Config Operator hitantana ny mpampiantrano kaontenera sy ny motera container ao amin'ny OpenShift 4 dia manome ambaratonga automatique vaovao izay tsy azo natao teo aloha teo amin'ny sehatra Kubernetes. Mba hampisehoana ireo endri-javatra vaovao dia hasehonay ny fomba ahafahanao manova ny rakitra crio.conf. Mba tsy ho very hevitra amin'ny voambolana, miezaha hifantoka amin'ny vokatra.

Voalohany, andeha isika hamorona ilay antsoina hoe container runtime configuration - Container Runtime Config. Eritrereto ho loharanon'ny Kubernetes izay maneho ny fandrindrana ny CRI-O. Raha ny tena izy dia dikan-teny manokana amin'ny zavatra antsoina hoe MachineConfig izy io, izay fanamafisam-peo apetraka amin'ny milina RHEL CoreOS ho ampahany amin'ny cluster OpenShift.

Ity loharano mahazatra ity, antsoina hoe ContainerRuntimeConfig, dia noforonina mba hanamora ny fanamoran'ny mpitantana kluster ny CRI-O. Mahery vaika ity fitaovana ity ka azo ampiharina amin'ny nodes sasany miankina amin'ny firafitry ny MachineConfigPool. Eritrereto ho toy ny vondrona milina iray izay manana tanjona mitovy.

Mariho ireo andalana roa farany izay hovaintsika ao amin'ny rakitra /etc/crio/crio.conf. Ireo andalana roa ireo dia mitovy amin'ny andalana ao amin'ny rakitra crio.conf, dia ireto:

vi ContainerRuntimeConfig.yaml

famaranana:

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

Andeha isika hanosika ity rakitra ity ho any amin'ny cluster Kubernetes ary hojerena fa tena noforonina izy io. Mariho fa mitovy tanteraka amin'ny loharano Kubernetes hafa ny fandidiana:

oc create -f ContainerRuntimeConfig.yaml
oc get ContainerRuntimeConfig

famaranana:

NAME              AGE
set-log-and-pid   22h

Rehefa avy namorona ny ContainerRuntimeConfig isika dia mila manova ny iray amin'ireo MachineConfigPools mba hanamarihana amin'ny Kubernetes fa tiantsika ny hampihatra an'io fanitsiana io amin'ny vondrona milina manokana ao amin'ny cluster. Amin'ity tranga ity dia hanova ny MachineConfigPool ho an'ny nodes master izahay:

oc edit MachineConfigPool/master

Fehiny (mba hazavaina, ny tena zava-dehibe sisa):

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

Amin'izao fotoana izao, manomboka mamorona rakitra crio.conf vaovao ho an'ny cluster ny MCO. Amin'ity tranga ity dia azo jerena amin'ny alΓ lan'ny Kubernetes API ny rakitra fikirakirana vita tanteraka. Tsarovy, ContainerRuntimeConfig dia dikan-teny manokana an'ny MachineConfig fotsiny, mba hahafahantsika mahita ny valiny amin'ny fijerena ireo andalana mifandraika amin'ny MachineConfigs:

oc get MachineConfigs | grep rendered

famaranana:

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

Azafady, mariho fa ny rakitra fikirakirana ho an'ny node master dia dikan-teny vaovao kokoa noho ny fanamboarana tany am-boalohany. Raha hijery azy dia araho ity baiko manaraka ity. Raha mandalo dia marihina fa ity angamba no iray amin'ireo tsipika tokana tsara indrindra teo amin'ny tantaran'i 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

famaranana:

pids_limit = 2048

Andeha hojerentsika izao fa nampiharina tamin'ny node master rehetra ny configuration. Voalohany dia mahazo lisitry ny nodes ao amin'ny cluster isika:

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

Andeha hojerentsika ny rakitra napetraka. Ho hitanao fa nohavaozina ny rakitra miaraka amin'ny soatoavina vaovao ho an'ny torolΓ lana pid sy debug izay nofaritanay tao amin'ny loharano ContainerRuntimeConfig. Elegance mihitsy:

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

famaranana:

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

Ireo fiovana rehetra ireo amin'ny kluster dia natao nefa tsy nihazakazaka SSH akory. Ny asa rehetra dia natao tamin'ny fidirana amin'ny node master Kuberentes. Izany hoe, ireo mari-pamantarana vaovao ireo dia natao tamin'ny node master ihany. Tsy niova ny node mpiasa, izay mampiseho ny tombotsoan'ny fomba Kubernetes amin'ny fampiasana fanjakana voafaritra sy tena izy mifandraika amin'ny mpampiantrano kaontenera sy ny motera container misy singa azo ovaina.

Ny ohatra etsy ambony dia mampiseho ny fahafahana manao fanovana amin'ny cluster OpenShift Container Platform 4 kely misy node famokarana telo na cluster famokarana lehibe misy node 3000. Na izany na tsy izany, ny habetsaky ny asa dia hitovy - ary tena kely - amboary fotsiny ny rakitra ContainerRuntimeConfig, ary manova marika iray ao amin'ny MachineConfigPool. Ary azonao atao izany amin'ny dikan-teny rehetra amin'ny OpenShift Container Platform 4.X mandeha Kubernetes mandritra ny androm-piainany.

Matetika dia mivoatra haingana dia haingana ny orinasa teknolojia ka tsy afaka manazava ny antony hisafidianantsika teknolojia sasany ho an'ireo singa fototra. Ny maotera kaontenera dia ara-tantara no singa mifandray mivantana amin'ny mpampiasa. Koa satria ny lazan'ny kaontenera dia nanomboka tamin'ny fahatongavan'ny milina kaontenera, matetika ny mpampiasa dia mampiseho fahalianana amin'izy ireo. Antony iray hafa nisafidianan'ny Red Hat ny CRI-O izany. Mivoatra ny kaontenera miaraka amin'ny fifantohana amin'ny orkestra ankehitriny, ary hitanay fa ny CRI-O dia manome traikefa tsara indrindra rehefa miara-miasa amin'ny OpenShift 4.

Source: www.habr.com

Add a comment