Platform
Ihe ngwọta doro anya bụ iji Red Hat Enterprise Linux CoreOS (ụdị nke Red Hat Enterprise Linux) na CRI-O dị ka ọkọlọtọ, na nke a bụ ihe kpatara ya ...
Ebe ọ bụ na isiokwu nke ịkwọ ụgbọ mmiri dị ezigbo mma maka ịchọta ihe atụ mgbe ị na-akọwa ọrụ Kubernetes na arịa, ka anyị gbalịa ikwu banyere nsogbu azụmahịa nke CoreOS na CRI-O na-edozi, na-eji ihe atụ.
Ugbu a, were ya ma ọ bụrụ na Brunel ga-arụ ọrụ a maka ụdị ụgbọ mmiri 20 dị iche iche (ụdị Kubernetes) na maka mbara ala ise dị iche iche nwere oke mmiri na ifufe dị iche iche (ndị na-enye igwe ojii). Tụkwasị na nke ahụ, a chọrọ ka ụgbọ mmiri niile (OpenShift ụyọkọ), n'agbanyeghị mbara ala nke a na-eme njem, site n'echiche nke ndị isi (ndị na-arụ ọrụ na-ahụ maka ọrụ nke ụyọkọ) na-eme otu ihe ahụ. Iji gaa n'ihu na ihe atụ nke ụgbọ mmiri, ndị isi ụgbọ mmiri adịghị eche ma ọlị ụdị ihe mgbochi mgbochi (CRI-O) na-eji ụgbọ mmiri ha - ihe bụ isi maka ha bụ na ihe mgbochi ndị a siri ike ma bụrụ ndị a pụrụ ịdabere na ya.
OpenShift 4, dị ka ikpo okwu igwe ojii, na-eche ihe ịma aka azụmaahịa yiri nke ahụ ihu. A ghaghị ịmepụta ọnụ ọnụ ọhụrụ n'oge a na-emepụta ụyọkọ, ma ọ bụrụ na ọdịda dị n'otu n'ime ọnụ ọnụ, ma ọ bụ mgbe a na-eme ka ụyọkọ ahụ. Mgbe emepụtara ọnụ ọhụrụ na ibido, akụrụngwa nnabata dị oke mkpa, gụnyere CRI-O, ga-ahazirịrị ya. Dị ka ọ dị na mmepụta ọ bụla ọzọ, a ghaghị ịnye "ihe ọkụkụ" na mmalite. N'ihe banyere ụgbọ mmiri, ihe ndị a na-emepụta bụ ígwè na osisi. Agbanyeghị, n'ihe gbasara imepụta nnabata maka ibunye arịa na ụyọkọ OpenShift 4, ịkwesịrị ịnwe faịlụ nhazi yana sava API ewepụtara dị ka ntinye. OpenShift ga-enye ọkwa nke akpaaka achọrọ n'oge usoro ndụ niile, na-enye nkwado ngwaahịa dị mkpa iji kwụsị ndị ọrụ wee si otú a na-enwetaghachi ego etinyere na ikpo okwu.
Emepụtara OpenShift 4 n'ụzọ iji nye ikike imelite sistemụ ahụ nke ọma n'oge usoro ndụ nke ikpo okwu niile (maka ụdị 4.X) maka ndị na-eweta igwe igwe ojii niile, nyiwe nke ọma na ọbụna sistemu igwe anaghị akwụ ụgwọ. Iji mee nke a, a ghaghị ịmepụta oghere na ndabere nke ihe ndị na-agbanwe agbanwe. Mgbe ụyọkọ chọrọ ụdị Kubernetes ọhụrụ, ọ na-enwetakwa ụdị CRI-O kwekọrọ na CoreOS. Ebe ọ bụ na ejikọtara ụdị CRI-O ozugbo na Kubernetes, nke a na-eme ka ikike ọ bụla dị mfe maka nnwale, nchọpụta nsogbu, ma ọ bụ nkwado. Tụkwasị na nke a, usoro a na-ebelata ụgwọ maka ndị ọrụ njedebe na Red Hat.
Nke a bụ ụzọ ọhụrụ nke iche echiche gbasara ụyọkọ Kubernetes ma tọọ ntọala maka ịhazi ụfọdụ atụmatụ ọhụrụ bara uru ma dị egwu. CRI-O (Container Runtime Interface - Open Container Initiative, abbreviated CRI-OCI) tụgharịrị bụrụ nhọrọ kacha aga nke ọma maka ịmepụta ọnụ ọnụ nke dị mkpa iji rụọ ọrụ na OpenShift. CRI-O ga-edochi igwe Docker ejiribu, na-enye ndị ọrụ OpenShift
Ụwa nke oghere ndị mepere emepe
Ụwa na-aga n'ihu ruo ogologo oge na-aga ebe a na-edebe oghere. Ma na Kubernetes, ma ọ bụ na ọkwa dị ala,
Ihe niile malitere site na ịmepụta Open Containers Initiative
Ndị obodo Kubernetes wee mepụta otu ọkọlọtọ maka interface pluggable, nke a na-akpọ
Ndị injinia na Red Hat na Google hụrụ mkpa ahịa maka igwe akpa nwere ike ịnakwere arịrịọ Kubelet maka usoro CRI wee webata arịa ndị dabara na nkọwapụta OCI a kpọtụrụ aha n'elu. Ya mere
Nyocha: 1.
Ihe ọhụrụ nwere CRI-O na CoreOS
Site na mmalite nke ikpo okwu OpenShift 4, a gbanwere ya
Chere, kedu ka ihe a mere?
Nke ahụ ziri ezi, na ọbịbịa nke OpenShift 4, ọ dịghịzi mkpa ijikọ na ndị ọbịa n'otu n'otu ma wụnye engine akpa, hazie nchekwa, hazie sava ọchụchọ ma ọ bụ hazie netwọk. Emezigharịrị ikpo okwu OpenShift 4 ka ọ jiri ya
Kubernetes ekwela ka ndị ọrụ jikwaa ngwa site na ịkọwapụta steeti achọrọ yana iji
Site n'iji ndị na-arụ ọrụ na ikpo okwu, OpenShift 4 na-eweta paradaịs ọhụrụ a (iji echiche nke setịpụrụ na ezigbo steeti) na njikwa nke RHEL CoreOS na CRI-O. Ọrụ nke ịhazi na ijikwa ụdị sistemụ arụmọrụ yana injin akpa na-akpaghị aka site na iji ihe akpọrọ.
Akpa na-agba ọsọ
Ndị ọrụ enweela ohere iji injin CRI-O na ikpo okwu OpenShift kemgbe ụdị 3.7 na ọkwa nlele teknụzụ yana site na ụdị 3.9 na ọnọdụ enwere ike ugbu a (na-akwado ugbu a). Na mgbakwunye, Red Hat na-eji nke ukwuu
Osikapa. 2. Otu akpa na-arụ ọrụ na ụyọkọ Kubernetes
CRI-O na-eme ka imepụta ndị ọbịa ọhụrụ dị mfe site na ịmekọrịta ọkwa niile dị elu mgbe ị na-amalite ọnụ ọhụrụ, yana mgbe ị na-ahapụ ụdị ọhụrụ nke ikpo okwu OpenShift. Ndozigharị nke ikpo okwu dum na-enye ohere maka mmelite azụmahịa / nlọghachi azụ, ma na-egbochikwa nkwụsị azụ na ịdabere n'etiti akpa ọdụ ọdụ, engine akpa, ọnụ (Kubelets) na Kubernetes Master node. Site na ijikwa ihe niile dị n'elu ikpo okwu, na njikwa na nsụgharị, a na-enwekarị ụzọ doro anya site na steeti A ruo steeti B. Nke a na-eme ka usoro mmelite dị mfe, na-eme ka nchekwa dịkwuo mfe, na-eme ka mkpesa arụmọrụ dịkwuo mma, ma na-enyere aka belata ọnụ ahịa mmelite na nrụnye nke nsụgharị ọhụrụ. .
Na-egosipụta ike nke ihe nnọchi anya
Dị ka e kwuru na mbụ, iji Machine Config Operator jikwaa onye na-elekọta akpa na akpa akpa na OpenShift 4 na-enye ọkwa ọhụrụ nke akpaaka nke na-agaghị ekwe omume na mbụ n'elu ikpo okwu Kubernetes. Iji gosi njirimara ọhụrụ, anyị ga-egosi otu ị nwere ike isi mee mgbanwe na faịlụ crio.conf. Iji zere inwe mgbagwoju anya site na nkọwa okwu, gbalịa ilekwasị anya na nsonaazụ ya.
Nke mbụ, ka anyị mepụta ihe a na-akpọ nhazi oge ịgba ọsọ - Container Runtime Config. Chee ya dị ka akụrụngwa Kubernetes nke na-anọchite anya nhazi maka CRI-O. N'ezie, ọ bụ ụdị pụrụ iche nke ihe akpọrọ MachineConfig, nke bụ nhazi ọ bụla nke etinyere na igwe RHEL CoreOS dịka akụkụ nke ụyọkọ OpenShift.
E mepụtara akụrụngwa omenala a, nke a na-akpọ ContainerRuntimeConfig, iji mee ka ọ dịrị ndị nchịkwa ụyọkọ mfe ịhazi CRI-O. Ngwá ọrụ a dị ike nke ukwuu na enwere ike itinye ya na ụfọdụ ọnụ ọnụ dabere na ntọala MachineConfigPool. Were ya dị ka igwe igwe na-arụ otu nzube ahụ.
Rịba ama ahịrị abụọ ikpeazụ anyị ga-agbanwe na faịlụ /etc/crio/crio.conf. Ahịrị abụọ a yiri ahịrị ndị dị na faịlụ crio.conf, ha bụ:
vi ContainerRuntimeConfig.yaml
Mmechi:
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
Ugbu a, ka anyị kwanye faịlụ a na ụyọkọ Kubernetes wee lelee na emepụtara ya n'ezie. Biko mara na ọrụ a bụ otu ihe yana akụrụngwa Kubernetes ọ bụla:
oc create -f ContainerRuntimeConfig.yaml
oc get ContainerRuntimeConfig
Mmechi:
NAME AGE
set-log-and-pid 22h
Ozugbo anyị mepụtara ContainerRuntimeConfig, anyị kwesịrị ịgbanwe otu n'ime MachineConfigPools iji gosi Kubernetes na anyị chọrọ itinye nhazi a na otu igwe dị na ụyọkọ ahụ. N'okwu a, anyị ga-agbanwe MachineConfigPool maka ọnụ ọgụgụ isi:
oc edit MachineConfigPool/master
Nkwubi okwu (maka idoanya, isi ihe fọdụrụ):
...
metadata:
creationTimestamp: 2019-04-10T23:42:28Z
generation: 1
labels:
debug-crio: config-log-and-pid
operator.machineconfiguration.openshift.io/required-for-upgrade: ""
...
N'oge a, MCO na-amalite ịmepụta faịlụ crio.conf ọhụrụ maka ụyọkọ ahụ. N'okwu a, enwere ike ịlele faịlụ nhazi nke emechachara site na iji Kubernetes API. Cheta, ContainerRuntimeConfig bụ naanị ụdị MachineConfig pụrụ iche, yabụ anyị nwere ike ịhụ nsonaazụ ya site na ilele ahịrị ndị dabara na MachineConfigs:
oc get MachineConfigs | grep rendered
Mmechi:
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
Biko mara na faịlụ nhazi nke rụpụtara maka ọnụ ọnụ nna ukwu bụ ụdị ọhụrụ karịa nhazi mbụ. Ka ilele ya, gbaa iwu a. N'ịgafe, anyị na-achọpụta na nke a nwere ike ịbụ otu n'ime ndị kasị mma na akụkọ ihe mere eme nke 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
Mmechi:
pids_limit = 2048
Ugbu a, ka anyị jide n'aka na etinyere nhazi ahụ na ọnụ ọnụ nna ukwu niile. Nke mbụ anyị nwetara ndepụta ọnụ na ụyọkọ:
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
Ugbu a, ka anyị lelee faịlụ arụnyere. Ị ga-ahụ na ejiri ụkpụrụ ọhụrụ emelite faịlụ a maka ntuziaka pid na debug nke anyị kọwara na akụrụngwa ContainerRuntimeConfig. Elegance n'onwe ya:
oc debug node/ip-10-0-135-153.us-east-2.compute.internal — cat /host/etc/crio/crio.conf | egrep 'debug||pid’
Mmechi:
...
pids_limit = 2048
...
log_level = "debug"
...
Emere mgbanwe ndị a niile na ụyọkọ ahụ na-agbaghị SSH. Emere ọrụ niile site n'ịnweta ọnụ ụzọ Kuberentes master node. Ya bụ, a haziri parampat ọhụrụ ndị a naanị na ọnụ ọnụ nna ukwu. Ọnụ ụzọ ndị ọrụ agbanwebeghị, nke na-egosipụta uru nke usoro Kubernetes nke iji steeti akọwapụtara na nke bụ eziokwu gbasara ndị ọbịa akpa na injin akpa nwere ihe ndị nwere ike ịgbanwe.
Ihe atụ dị n'elu na-egosi ike ime mgbanwe na obere OpenShift Container Platform 4 ụyọkọ nwere ọnụ mmepụta atọ ma ọ bụ nnukwu ụyọkọ mmepụta nke nwere ọnụ 3000. N'ọnọdụ ọ bụla, ọnụọgụ ọrụ ga-abụ otu - yana obere - naanị hazie faịlụ ContainerRuntimeConfig, wee gbanwee otu akara na MachineConfigPool. Ma ị nwere ike ime nke a na ụdị ọ bụla nke OpenShift Container Platform 4.X na-agba Kubernetes n'oge ndụ ya niile.
Ọtụtụ mgbe, ụlọ ọrụ teknụzụ na-etolite ngwa ngwa nke na anyị enweghị ike ịkọwa ihe kpatara anyị ji ahọrọ teknụzụ ụfọdụ maka ihe ndị dị n'okpuru. N'oge gara aga, injinia akpa bụ akụkụ nke ndị ọrụ na-emekọrịta ihe ozugbo. Ebe ọ bụ na ihe a na-ewu ewu nke arịa malitere n'ụzọ nkịtị site na ọbịbịa nke injin akpa, ndị ọrụ na-egosipụtakarị mmasị na ha. Nke a bụ ihe ọzọ mere Red Hat ji họrọ CRI-O. Ebube na-agbanwe site na itinye uche ugbu a na orchestration, anyị achọpụtala na CRI-O na-enye ahụmịhe kachasị mma mgbe ya na OpenShift 4 na-arụ ọrụ.
isi: www.habr.com