Platfòm
Solisyon evidan an se te sèvi ak Red Hat Enterprise Linux CoreOS (yon variant de Red Hat Enterprise Linux) ak CRI-O kòm estanda a, e isit la se poukisa ...
Piske sijè navige a se yon bon bagay pou jwenn analoji lè w ap eksplike travay Kubernetes ak resipyan yo, ann eseye pale sou pwoblèm biznis CoreOS ak CRI-O rezoud, lè l sèvi avèk yon egzanp.
Koulye a, imajine si Brunel te oblije fè travay sa a pou 20 modèl bato diferan (vèsyon Kubernetes) ak pou senk planèt diferan ak kouran lanmè ak van konplètman diferan (founisè nwaj). Anplis de sa, li te egzije ke tout bato (OpenShift grap), kèlkeswa planèt yo sou ki navigasyon yo te pote soti, soti nan pwen de vi nan kòmandan yo (operatè ki jere operasyon an nan grap yo) konpòte menm bagay la. Pou kontinye analoji maritim la, kòmandan bato yo pa pran swen ditou ki kalite blòk gréement (CRI-O) yo itilize sou bato yo - bagay prensipal la pou yo se ke blòk sa yo fò ak serye.
OpenShift 4, kòm yon platfòm nwaj, fè fas a yon defi biznis ki sanble anpil. Nouvo nœuds yo dwe kreye nan moman kreyasyon gwoup la, nan evènman an nan yon echèk nan youn nan nœuds yo, oswa lè dekale gwoup la. Lè yon nouvo ne kreye ak inisyalize, eleman lame kritik, ki gen ladan CRI-O, yo dwe konfigirasyon kòmsadwa. Kòm nan nenpòt lòt pwodiksyon, "matyè premyè" yo dwe apwovizyone nan kòmansman an. Nan ka bato, matyè premyè yo se metal ak bwa. Sepandan, nan ka kreye yon lame pou deplwaye resipyan nan yon gwoup OpenShift 4, ou bezwen gen fichye konfigirasyon ak API-bay sèvè kòm opinyon. Lè sa a, OpenShift pral bay nivo automatisation ki nesesè yo pandan tout sik lavi a, ofri sipò pwodwi ki nesesè pou itilizatè final yo e konsa rekipere envestisman an nan platfòm la.
OpenShift 4 te kreye yon fason pou bay kapasite pou yon fason fasil mete ajou sistèm nan pandan tout sik lavi platfòm la (pou vèsyon 4.X) pou tout gwo founisè cloud computing, platfòm Virtualization e menm sistèm metal vid. Pou fè sa, nœuds yo dwe kreye sou baz eleman entèrchanjabl. Lè yon gwoup mande pou yon nouvo vèsyon Kubernetes, li resevwa tou vèsyon korespondan CRI-O sou CoreOS. Piske vèsyon CRI-O a mare dirèkteman nan Kubernetes, sa a senplifye anpil nenpòt pèmitasyon pou tès, depanaj, oswa rezon sipò. Anplis de sa, apwòch sa a diminye depans pou itilizatè final yo ak Red Hat.
Sa a se yon fason fondamantalman nouvo nan panse sou grap Kubernetes epi li poze fondasyon pou planifye kèk nouvo karakteristik trè itil ak konvenkan. CRI-O (Container Runtime Interface - Open Container Initiative, abreje CRI-OCI) te tounen chwa ki gen plis siksè pou kreyasyon an mas nan nœuds ki nesesè pou travay ak OpenShift. CRI-O pral ranplase motè Docker ki te itilize anvan an, ki ofri itilizatè OpenShift yo
Mond lan nan resipyan louvri
Mond lan ap deplase nan direksyon kontenè ki louvri pou yon tan long. Kit nan Kubernetes, oswa nan nivo pi ba yo,
Tout bagay te kòmanse ak kreyasyon Open Containers Initiative
Kominote Kubernetes a Lè sa a, devlope yon estanda sèl pou yon koòdone branche, ki rele
Enjenyè nan Red Hat ak Google te wè yon bezwen mache pou yon motè veso ki ta ka aksepte demann Kubelet sou pwotokòl CRI a epi prezante resipyan ki te konpatib ak espesifikasyon OCI mansyone pi wo a. Se konsa
Fig. 1.
Inovasyon ak CRI-O ak CoreOS
Avèk lansman platfòm OpenShift 4 la, li te chanje
Tann, kijan sa ye?
Se vre, ak avènement OpenShift 4, pa gen okenn nesesite ankò pou konekte ak moun ki gen tout pouvwa a epi enstale yon motè veso, konfigirasyon depo, konfigirasyon sèvè rechèch oswa konfigirasyon yon rezo. Platfòm OpenShift 4 la te konplètman reamenaje pou itilize
Kubernetes te toujou pèmèt itilizatè yo jere aplikasyon lè yo defini eta a vle ak lè l sèvi avèk
Lè l sèvi avèk Operatè nan platfòm la, OpenShift 4 pote nouvo paradigm sa a (lè l sèvi avèk konsèp nan seri ak eta aktyèl) nan jesyon RHEL CoreOS ak CRI-O. Travay yo nan konfigirasyon ak jere vèsyon nan sistèm nan fonksyone ak motè veso yo otomatize lè l sèvi avèk sa yo rele an.
Kouri kontenè
Itilizatè yo te gen opòtinite pou yo sèvi ak motè CRI-O nan platfòm OpenShift depi vèsyon 3.7 nan estati Tech Preview ak soti nan vèsyon 3.9 nan estati Disponib Jeneralman (aktyèlman sipòte). Anplis de sa, Red Hat twouve itilize
Diri. 2. Ki jan veso yo travay nan yon gwoup Kubernetes
CRI-O senplifye kreyasyon nouvo lame veso pa senkronize tout nivo siperyè lè inisyalize nouvo nœuds, ak lè lage nouvo vèsyon platfòm OpenShift la. Revizyon nan tout platfòm la pèmèt pou mizajou tranzaksyon / rollbacks, epi tou li anpeche enpas nan depandans ant nwayo a ke veso, motè veso, nœuds (Kubelets) ak ne Kubernetes Mèt la. Lè yo jere tout konpozan platfòm nan santralman, ak kontwòl ak vèsyon, toujou gen yon chemen klè soti nan eta A rive nan eta B. Sa senplifye pwosesis aktyalizasyon a, amelyore sekirite, amelyore rapò pèfòmans, epi ede redwi pri mizajou ak enstalasyon nouvo vèsyon. .
Demontre pouvwa eleman ranplasman yo
Kòm mansyone pi bonè, lè l sèvi avèk machin konfigirasyon operatè a pou jere lame veso a ak motè veso nan OpenShift 4 bay yon nouvo nivo automatisation ki pa t posib anvan sou platfòm Kubernetes la. Pou demontre nouvo karakteristik yo, nou pral montre kijan ou ka fè chanjman nan fichye crio.conf la. Pou evite konfonn nan tèminoloji, eseye konsantre sou rezilta yo.
Premyèman, an n kreye sa yo rele yon konfigirasyon ègzekutabl veso - Container Runtime Config. Panse a li kòm yon resous Kubernetes ki reprezante konfigirasyon pou CRI-O. An reyalite, li se yon vèsyon espesyalize nan yon bagay ki rele MachineConfig, ki se nenpòt konfigirasyon ki deplwaye nan yon machin RHEL CoreOS kòm yon pati nan yon gwoup OpenShift.
Resous koutim sa a, ki rele ContainerRuntimeConfig, te kreye pou rann li pi fasil pou administratè gwoup yo konfigirasyon CRI-O. Zouti sa a se ase pwisan ke li ka aplike sèlman nan sèten nœuds depann sou anviwònman yo MachineConfigPool. Panse a li kòm yon gwoup machin ki sèvi menm objektif la.
Remake de dènye liy yo ke nou pral chanje nan /etc/crio/crio.conf dosye a. De liy sa yo sanble anpil ak liy ki nan fichye crio.conf, yo se:
vi ContainerRuntimeConfig.yaml
Konklizyon:
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
Koulye a, ann pouse fichye sa a nan gwoup Kubernetes la epi tcheke li te kreye aktyèlman. Tanpri sonje ke operasyon an se egzakteman menm jan ak nenpòt lòt resous Kubernetes:
oc create -f ContainerRuntimeConfig.yaml
oc get ContainerRuntimeConfig
Konklizyon:
NAME AGE
set-log-and-pid 22h
Yon fwa nou te kreye ContainerRuntimeConfig la, nou bezwen modifye youn nan MachineConfigPools yo pou siyal Kubernetes ke nou vle aplike konfigirasyon sa a nan yon gwoup espesifik machin nan gwoup la. Nan ka sa a nou pral chanje MachineConfigPool pou nœuds mèt yo:
oc edit MachineConfigPool/master
Konklizyon (pou klè, sans prensipal la rete):
...
metadata:
creationTimestamp: 2019-04-10T23:42:28Z
generation: 1
labels:
debug-crio: config-log-and-pid
operator.machineconfiguration.openshift.io/required-for-upgrade: ""
...
Nan pwen sa a, MCO kòmanse kreye yon nouvo fichye crio.conf pou gwoup la. Nan ka sa a, yo ka wè fichye konfigirasyon an konplètman fini lè l sèvi avèk API Kubernetes la. Sonje byen, ContainerRuntimeConfig se jis yon vèsyon espesyalize nan MachineConfig, pou nou ka wè rezilta a lè nou gade liy ki enpòtan nan MachineConfigs:
oc get MachineConfigs | grep rendered
Konklizyon:
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
Tanpri sonje ke fichye konfigirasyon ki te lakòz pou nœuds mèt yo te yon vèsyon ki pi nouvo pase konfigirasyon orijinal yo. Pou wè li, kouri lòd sa a. An pasan, nou sonje ke sa a se petèt youn nan pi bon yon sèl-revètisman nan istwa a nan 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
Konklizyon:
pids_limit = 2048
Koulye a, kite a asire w ke konfigirasyon an te aplike nan tout nœuds mèt. Premye nou jwenn yon lis nœuds nan gwoup la:
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
Koulye a, kite a gade nan dosye a enstale. Ou pral wè ke dosye a te mete ajou ak nouvo valè yo pou pid ak debug direktiv ke nou espesifye nan resous ContainerRuntimeConfig la. Elegans tèt li:
oc debug node/ip-10-0-135-153.us-east-2.compute.internal — cat /host/etc/crio/crio.conf | egrep 'debug||pid’
Konklizyon:
...
pids_limit = 2048
...
log_level = "debug"
...
Tout chanjman sa yo nan gwoup la te fèt san yo pa menm kouri SSH. Tout travay yo te fè lè w gen aksè a ne mèt Kuberentes. Sa vle di, nouvo paramèt sa yo te configuré sèlman sou nœuds mèt. Nœuds travayè yo pa t 'chanje, sa ki montre benefis ki genyen nan metodoloji Kubernetes nan itilize eta espesifye ak aktyèl an relasyon ak lame veso ak motè veso ak eleman ka ranplase.
Egzanp ki anwo a montre kapasite pou fè chanjman nan yon ti gwoup OpenShift Container Platform 4 ki gen twa nœuds pwodiksyon oswa yon gwo gwoup pwodiksyon ki gen 3000 nœuds. Nan nenpòt ka, kantite travay yo pral menm - ak anpil ti - jis konfigirasyon fichye ContainerRuntimeConfig la, epi chanje yon etikèt nan MachineConfigPool. Epi ou ka fè sa ak nenpòt vèsyon OpenShift Container Platform 4.X kouri Kubernetes pandan tout sik lavi li.
Souvan konpayi teknoloji yo evolye tèlman vit ke nou pa kapab eksplike poukisa nou chwazi sèten teknoloji pou eleman ki kache yo. Motè veso yo te istorikman eleman ke itilizatè yo kominike avèk dirèkteman. Depi popilarite resipyan yo te kòmanse natirèlman ak avenman motè veso yo, itilizatè yo souvan montre enterè nan yo. Sa a se yon lòt rezon ki fè Red Hat te chwazi CRI-O. Kontenè yo ap evolye ak konsantre kounye a sou òkestrasyon, e nou te jwenn ke CRI-O bay pi bon eksperyans lè w ap travay ak OpenShift 4.
Sous: www.habr.com