Platform
Tharollo e totobetseng e ne e le ho sebelisa Red Hat Enterprise Linux CoreOS (e fapaneng ea Red Hat Enterprise Linux) le CRI-O e le maemo, 'me ke ka lebaka lena ...
Kaha sehlooho sa ho tsamaea ka sekepe ke ntho e ntle haholo bakeng sa ho fumana li-analogies ha u hlalosa mosebetsi oa Kubernetes le lijana, a re leke ho bua ka mathata a khoebo ao CoreOS le CRI-O ba a rarollang, ho sebelisa mohlala.
Joale ak'u nahane hore na Brunel o ne a tlameha ho etsa mosebetsi ona bakeng sa mefuta e fapaneng ea likepe tse 20 (liphetolelo tsa Kubernetes) le bakeng sa lipolanete tse hlano tse fapaneng tse nang le maqhubu a leoatle le meea e fapaneng ka ho feletseng (bafani ba maru). Ho phaella moo, ho ne ho hlokahala hore likepe tsohle (lihlopha tsa OpenShift), ho sa tsotellehe lipolanete tseo ho tsamaisoang ho tsona, ho ea ka pono ea batsamaisi (basebetsi ba laolang ts'ebetso ea lihlopha) ba itšoare ka tsela e tšoanang. Ho tsoela pele ka papiso ea leoatle, batsamaisi ba likepe ha ba tsotelle ho hang hore na ke mefuta efe ea li-rigging blocks (CRI-O) e sebelisoang likepeng tsa bona - ntho e ka sehloohong ho bona ke hore li-blocks tsena li matla ebile li ka tšeptjoa.
OpenShift 4, joalo ka sethala sa maru, e tobane le phephetso e ts'oanang haholo ea khoebo. Li-node tse ncha li tlameha ho etsoa ka nako ea ho theha lihlopha, ha ho ka ba le ho hlōleha ho e 'ngoe ea li-node, kapa ha ho lekanya sehlopha. Ha node e ncha e thehoa 'me e qalisoa, likarolo tsa bohlokoa tsa moamoheli, ho kenyeletsoa CRI-O, li tlameha ho hlophisoa ka nepo. Joalo ka tlhahiso efe kapa efe, "lisebelisoa tse tala" li tlameha ho fanoa qalong. Tabeng ea likepe, thepa e tala ke tšepe le lehong. Leha ho le joalo, molemong oa ho theha moamoheli bakeng sa ho tsamaisa lijana ka har'a sehlopha sa OpenShift 4, o hloka ho ba le lifaele tsa tlhophiso le li-server tse fanoeng ke API joalo ka kenyelletso. Joale OpenShift e tla fana ka boemo bo hlokehang ba boiketsetso ho pholletsa le potoloho eohle ea bophelo, e fana ka ts'ehetso e hlokahalang ea sehlahisoa ho basebelisi ba ho qetela 'me kahoo e khutlise matsete sethaleng.
OpenShift 4 e bōpiloe ka tsela ea ho fana ka bokhoni ba ho ntlafatsa tsamaiso ka mokhoa o bonolo ho pholletsa le nako eohle ea bophelo ea sethaleng (bakeng sa liphetolelo tsa 4.X) bakeng sa bafani bohle ba ka sehloohong ba k'homphieutha ea maru, li-platform tsa virtualization esita le lisebelisoa tsa tšepe tse se nang letho. Ho etsa sena, li-node li tlameha ho etsoa motheong oa lintho tse feto-fetohang. Ha sehlopha se hloka mofuta o mocha oa Kubernetes, se boetse se fumana mofuta o lumellanang oa CRI-O ho CoreOS. Kaha mofuta oa CRI-O o hokahane ka kotloloho le Kubernetes, sena se nolofatsa litumello life kapa life bakeng sa liteko, ho rarolla mathata, kapa ho tšehetsa merero. Ho phaella moo, mokhoa ona o fokotsa litšenyehelo bakeng sa basebelisi ba ho qetela le Red Hat.
Ona ke mokhoa o mocha oa ho nahana ka lihlopha tsa Kubernetes mme o rala motheo oa ho rala likarolo tse ncha tse bohlokoa haholo. CRI-O (Container Runtime Interface - Open Container Initiative, e khutsufalitsoeng CRI-OCI) e bile khetho e atlehileng ka ho fetisisa bakeng sa ho theoa ha li-node tse hlokahalang ho sebetsa le OpenShift. CRI-O e tla nkela sebaka sa enjine ea Docker e neng e sebelisoa pele, e fanang ka basebelisi ba OpenShift
Lefatše la lijana tse bulehileng
Lefatše esale le lebile ho lijana tse bulehileng ka nako e telele. Ebang ke Kubernetes, kapa maemong a tlase,
Tsohle li qalile ka ho theoa ha Open Containers Initiative
Sechaba sa Kubernetes se ile sa theha tekanyetso e le 'ngoe bakeng sa sehokelo sa pluggable, se bitsoang
Baenjiniere ba Red Hat le Google ba ile ba bona tlhokahalo ea 'maraka bakeng sa mochine oa setshelo o ka amohelang likōpo tsa Kubelet holim'a protocol ea CRI le ho hlahisa lijana tse lumellanang le litlhaloso tsa OCI tse boletsoeng ka holimo. Kahoo
Setšoantšo: leshome le metso e mehlano.
Boqapi ka CRI-O le CoreOS
Ka ho qalisoa ha sethala sa OpenShift 4, se ile sa fetoloa
Ema, see se joang?
Ke 'nete, ka ho fihla ha OpenShift 4, ha ho sa na tlhokahalo ea ho hokela ho batho ba amohelang batho ka bomong le ho kenya enjene ea setshelo, ho lokisa polokelo, ho lokisa li-server kapa ho lokisa marang-rang. Sethala sa OpenShift 4 se hlophisitsoe bocha hore se sebelisoe
Kubernetes esale e lumella basebelisi ho laola lits'ebetso ka ho hlalosa boemo boo ba bo batlang le ho bo sebelisa
Ka ho sebelisa Operators sethaleng, OpenShift 4 e tlisa paradigm ena e ncha (ho sebelisa mohopolo oa sete le boemo ba sebele) ho tsamaiso ea RHEL CoreOS le CRI-O. Mesebetsi ea ho hlophisa le ho laola mefuta ea sistimi ea ts'ebetso le enjene ea setshelo e etsoa ka boiketsetso ho sebelisoa seo ho thoeng ke
Lijana tse mathang
Basebelisi ba bile le monyetla oa ho sebelisa enjene ea CRI-O sethaleng sa OpenShift ho tloha phetolelong ea 3.7 ho boemo ba Tech Preview le ho tloha ho mofuta oa 3.9 boemong bo Fumanehang ka Kakaretso (e tšehetsoeng hona joale). Ho feta moo, Red Hat e sebelisoa haholo
Raese. 2. Lijana li sebetsa joang sehlopheng sa Kubernetes
CRI-O e nolofatsa ho theoa ha li-container tse ncha ka ho hokahanya boemo bohle bo holimo ha ho qala li-node tse ncha, le ha ho lokolloa liphetolelo tse ncha tsa sethala sa OpenShift. Phetoho ea sethala kaofela e lumella lintlafatso / li-rollback tsa transaction, hape e thibela ho putlama ho its'etleha lipakeng tsa mohatla oa sets'oants'o, enjene ea setshelo, li-node (Kubelets) le node ea Kubernetes Master. Ka ho laola likarolo tsohle tsa sethala, ka taolo le phetolelo, kamehla ho na le tsela e hlakileng ho tloha ho A ho ea sebakeng sa B. Sena se nolofatsa ts'ebetso ea ntlafatso, se ntlafatsa ts'ireletso, se ntlafatsa tlaleho ea ts'ebetso, 'me se thusa ho fokotsa litšenyehelo tsa lisebelisoa le ho kenya liphetolelo tse ncha. .
Ho bontsha matla a dielemente tse nchafatsang
Joalokaha ho boletsoe pejana, ho sebelisa Machine Config Operator ho laola mochine oa setshelo le mochine oa setshelo ho OpenShift 4 e fana ka boemo bo bocha ba ho iketsetsa boits'oaro bo neng bo sa khonehe pele ho sethaleng sa Kubernetes. Ho hlahisa likarolo tse ncha, re tla u bontša hore na u ka etsa liphetoho joang faeleng ea crio.conf. Ho qoba ho ferekanngoa ke mantsoe, leka ho tsepamisa maikutlo liphellong.
Taba ea pele, a re theheng se bitsoang tlhophiso ea nako ea setshelo - Container Runtime Config. Nahana ka eona e le sesebelisoa sa Kubernetes se emelang tlhophiso ea CRI-O. Ha e le hantle, ke mofuta o ikhethileng oa ntho e bitsoang MachineConfig, e leng tlhophiso efe kapa efe e romelloang mochining oa RHEL CoreOS e le karolo ea sehlopha sa OpenShift.
Sesebelisoa sena sa tloaelo, se bitsoang ContainerRuntimeConfig, se entsoe ho nolofalletsa batsamaisi ba lihlopha ho hlophisa CRI-O. Sesebelisoa sena se matla hoo se ka sebelisoang ho li-node tse itseng ho latela litlhophiso tsa MachineConfigPool. Nahana ka eona e le sehlopha sa mechine e sebeletsang morero o tšoanang.
Hlokomela mela e 'meli ea ho qetela eo re tla e fetola faeleng ea /etc/crio/crio.conf. Mela ena e 'meli e tšoana haholo le mela e faeleng ea crio.conf, ke:
vi ContainerRuntimeConfig.yaml
Qetello:
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
Joale ha re sutumelleng faele ena sehlopheng sa Kubernetes 'me re hlahlobe hore na ehlile e entsoe. Ka kopo hlokomela hore ts'ebetso e ts'oana hantle le lisebelisoa tse ling tsa Kubernetes:
oc create -f ContainerRuntimeConfig.yaml
oc get ContainerRuntimeConfig
Qetello:
NAME AGE
set-log-and-pid 22h
Ha re se re thehile ContainerRuntimeConfig, re hloka ho fetola e 'ngoe ea MachineConfigPools ho bontša Kubernetes hore re batla ho sebelisa tlhophiso ena ho sehlopha se itseng sa mechini sehlopheng. Tabeng ena re tla fetola MachineConfigPool bakeng sa li-node tse kholo:
oc edit MachineConfigPool/master
Qetello (bakeng sa ho hlaka, moelelo oa mantlha o setse):
...
metadata:
creationTimestamp: 2019-04-10T23:42:28Z
generation: 1
labels:
debug-crio: config-log-and-pid
operator.machineconfiguration.openshift.io/required-for-upgrade: ""
...
Ka nako ena, MCO e qala ho theha faele e ncha ea crio.conf bakeng sa sehlopha. Tabeng ena, faele ea tlhophiso e felileng ka botlalo e ka bonoa ho sebelisoa Kubernetes API. Hopola, ContainerRuntimeConfig ke mofuta o ikhethileng oa MachineConfig, kahoo re ka bona sephetho ka ho sheba mela e amehang ho MachineConfigs:
oc get MachineConfigs | grep rendered
Qetello:
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
Ka kopo hlokomela hore faele ea tlhophiso e hlahisitsoeng bakeng sa li-master node e bile mofuta o mocha ho feta litlhophiso tsa mantlha. Ho e sheba, tsamaisa taelo e latelang. Ha re feta, rea hlokomela hore mohlomong ena ke e 'ngoe ea li-line-line tse ntle ka ho fetisisa nalaneng ea 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
Qetello:
pids_limit = 2048
Joale a re etse bonnete ba hore tlhophiso e sebelisitsoe ho li-node tsohle tsa master. Pele re fumana lethathamo la li-node sehlopheng:
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
Joale a re shebeng faele e kentsoeng. U tla bona hore faele e nchafalitsoe ka litekanyetso tse ncha tsa litaelo tsa pid le debug tseo re li hlalositseng mohloling oa ContainerRuntimeConfig. Elegance ka boeona:
oc debug node/ip-10-0-135-153.us-east-2.compute.internal — cat /host/etc/crio/crio.conf | egrep 'debug||pid’
Qetello:
...
pids_limit = 2048
...
log_level = "debug"
...
Liphetoho tsena kaofela ho sehlopha li entsoe ntle le ho tsamaisa SSH. Mosebetsi oohle o ne o etsoa ka ho fihlella node e kholo ea Kuberentes. Ke hore, li-parameter tsena tse ncha li ne li hlophisitsoe feela ka li-node tse kholo. Li-node tsa basebetsi ha lia fetoha, tse bonts'ang melemo ea mokhoa oa Kubernetes oa ho sebelisa linaha tse boletsoeng le tsa 'nete mabapi le li-container le lienjineri tsa lijana tse nang le likarolo tse feto-fetohang.
Mohlala o ka holimo o bontša bokhoni ba ho etsa liphetoho sehlopheng se senyenyane sa OpenShift Container Platform 4 se nang le li-node tse tharo tsa tlhahiso kapa sehlopha se seholo sa tlhahiso se nang le li-node tse 3000. Leha ho le joalo, palo ea mosebetsi e tla tšoana - mme e nyane haholo - lokisa feela faele ea ContainerRuntimeConfig, 'me u fetole label e le' ngoe ho MachineConfigPool. 'Me u ka etsa sena ka mofuta ofe kapa ofe oa OpenShift Container Platform 4.X e tsamaisang Kubernetes ho pholletsa le bophelo ba eona.
Hangata lik'hamphani tsa theknoloji li fetoha ka potlako hoo re sitoang ho hlalosa hore na ke hobane'ng ha re khetha theknoloji e itseng bakeng sa likarolo tsa motheo. Lienjineri tsa li-container esale e le karolo eo basebelisi ba sebelisanang le eona ka kotloloho. Kaha ho tsebahala ha lijana ka tlhaho ho qalile ka ho fihla ha lienjineri tsa lijana, basebelisi ba atisa ho bontša thahasello ho tsona. Lena ke lebaka le leng le entseng hore Red Hat e khethe CRI-O. Lits'oants'o li ntse li tsoela pele ho tsepamisitsoe maikutlo ho orchestration, 'me re fumane hore CRI-O e fana ka boiphihlelo bo botle ha o sebetsa le OpenShift 4.
Source: www.habr.com