Ardán
Ba é an réiteach soiléir ná Red Hat Enterprise Linux CoreOS (leagan de Red Hat Enterprise Linux) agus CRI-O a úsáid mar chaighdeán, agus seo an fáth ...
Поскольку тема мореплавания является весьма удачной для поиска аналогий при объяснении работы Kubernetes и контейнеров, попробуем рассказать о тех бизнес-проблемах, которые решают CoreOS и CRI-O, на примере
А теперь представьте, что Брюнелю пришлось бы проделать эту работу для 20 различных моделей судов (версий Kubernetes) и для пяти различных планет с совершенно разными морскими течениями и ветрами (облачные провайдеры). К тому же требовалось, чтобы все корабли (кластеры OpenShift), независимо от планет, по которым осуществляется навигация, с точки зрения капитанов (операторов, управляющих работой кластеров) вели себя одинаково. Продолжая морскую аналогию, капитанам кораблей абсолютно не важно, какие такелажные блоки (CRI-O) используются на их кораблях – для них главное, чтобы эти блоки были прочными и надежными.
Перед OpenShift 4, как облачной платформой, стоит очень похожая бизнес-задача. Новые ноды должны создаваться в момент создания кластера, в случае сбоя в одном из узлов, или при масштабировании кластера. При создании и инициализации нового узла должны быть соответственно сконфигурированы и критические компоненты хоста, в том числе CRI-O. Как и в любом другом производстве в начале необходимо подать «сырье». В случае кораблей в качестве сырья выступают металл и древесина. Однако в случае создания хоста для развертывания контейнеров в кластере OpenShift 4, на входе нужно иметь файлы конфигурации и предоставляемые API серверы. После чего OpenShift будет обеспечивать нужный уровень автоматизации в течение всего жизненного цикла, предлагая необходимую продуктовую поддержку для конечных пользователей и окупая таким образом инвестиции в платформу.
Cruthaíodh OpenShift 4 sa chaoi is go soláthrófar an cumas an córas a nuashonrú go caothúil ar feadh shaolré iomlán an ardáin (le haghaidh leaganacha 4.X) do gach príomhsholáthraí ríomhaireachta scamall, ardáin fíorúlaithe agus fiú córais miotail lom. Chun seo a dhéanamh, ní mór nóid a chruthú ar bhonn eilimintí idirmhalartaithe. Nuair a éilíonn braisle leagan nua de Kubernetes, faigheann sé an leagan comhfhreagrach de CRI-O ar CoreOS freisin. Ós rud é go bhfuil an leagan CRI-O ceangailte go díreach le Kubernetes, simplíonn sé seo go mór aon iomalartaithe chun críocha tástála, fabhtcheartaithe nó tacaíochta. Ina theannta sin, laghdaíonn an cur chuige seo costais d’úsáideoirí deiridh agus Red Hat.
Это принципиально новый взгляд на кластеры Kubernetes, который закладывает основу для планирования новых весьма полезных и привлекательных функций. CRI-O (проект открытого контейнера Container Runtime Interface — Open Container Initiative, сокращенно CRI-OCI) оказался наиболее удачным выбором для массового создания узлов, которое необходимо для работы с OpenShift. CRI-O придет на смену использовавшемуся ранее движку Docker, предлагая пользователям OpenShift
Domhan na gcoimeádán oscailte
Tá an domhan ag bogadh i dtreo coimeádáin oscailte le fada an lá. Cibé i Kubernetes, nó ag leibhéil níos ísle,
Thosaigh sé ar fad le cruthú an Tionscnaimh Gabhdáin Oscailte
Ansin d'fhorbair pobal Kubernetes caighdeán amháin do chomhéadan inphlocáilte, ar a dtugtar
Chonaic innealtóirí ag Red Hat agus Google gá sa mhargadh le haghaidh inneall coimeádán a d'fhéadfadh glacadh le hiarratais Kubelet thar phrótacal CRI agus thug siad isteach coimeádáin a bhí ag luí leis na sonraíochtaí OCI a luaitear thuas. Mar sin
Fig. 1.
Nuálaíocht le CRI-O agus CoreOS
Le seoladh an ardán OpenShift 4, athraíodh é
Стоп, как это?
Sin ceart, le teacht OpenShift 4, ní gá a thuilleadh ceangal le hóstach aonair agus inneall coimeádán a shuiteáil, stóráil a chumrú, freastalaithe cuardaigh a chumrú nó líonra a chumrú. Tá an t-ardán OpenShift 4 athdhearadh go hiomlán chun úsáid a bhaint as an
Cheadaigh Kubernetes i gcónaí d'úsáideoirí feidhmchláir a bhainistiú tríd an stát atá ag teastáil a shainiú agus a úsáid
Trí úsáid a bhaint as Oibreoirí san ardán, tugann OpenShift 4 an paradigm nua seo (ag baint úsáide as an gcoincheap maidir le staid shocraithe agus iarbhír) le bainistíocht RHEL CoreOS agus CRI-O. Déantar na tascanna a bhaineann le leaganacha den chóras oibriúcháin agus inneall coimeádán a chumrú agus a bhainistiú a uathoibriú ag baint úsáide as an gceann ar a dtugtar
Coimeádáin ag rith
У пользователей была возможность использовать движок CRI-O в платформе OpenShift начиная с версии 3.7 в статусе Tech Preview и с версии 3.9 в статусе Generally Available (поддерживается в настоящее время). Кроме того, Red Hat массово использует
Rís. 2. Conas a oibríonn coimeádáin i mbraisle Kubernetes
Déanann CRI-O cruthú óstach coimeádán nua a shimpliú tríd an mbarrleibhéal iomlán a shioncronú nuair a bhíonn nóid nua á dtosú, agus nuair a bhíonn leaganacha nua den ardán OpenShift á scaoileadh. Ligeann athbhreithniú ar an ardán iomlán do nuashonruithe idirbheartaíochta/rolladh siar, agus cuireann sé cosc freisin ar spleáchais idir croí-eireaball an choimeádáin, inneall coimeádáin, nóid (Kubelets) agus nód Máistir Kubernetes. Trí na comhpháirteanna ardán go léir a bhainistiú go lárnach, le rialú agus leagan, tá cosán soiléir i gcónaí ó stát A go stát B. Simplíonn sé seo an próiseas nuashonraithe, feabhsaíonn sé slándáil, feabhsaíonn sé tuairisciú feidhmíochta, agus cabhraíonn sé le costas nuashonruithe agus suiteálacha nua a laghdú. .
Cumhacht na n-eilimintí athsholáthair a léiriú
Как было упомянуто ранее, использование Machine Config Operator для управления хостом контейнера и контейнерным движком в OpenShift 4 обеспечивает новый уровень автоматизации, который не был возможен на платформе Kubernetes ранее. Чтобы продемонстрировать новые возможности, мы покажем, как вы могли бы вносить изменения в файл crio.conf. Чтобы не запутаться в терминологии, старайтесь сконцентрироваться на результатах.
Сначала, давайте создадим то, что называется конфигурацией среды исполнения контейнера – Container Runtime Config. Считайте, что это некий ресурс Kubernetes, который представляет конфигурацию для CRI-O. В действительности же это специализированная версия того, что называется MachineConfig, что представляет собой любую конфигурацию, развертываемую на машине RHEL CoreOS в рамках кластера OpenShift.
Cruthaíodh an acmhainn saincheaptha seo, ar a dtugtar ContainerRuntimeConfig, chun é a dhéanamh níos éasca do riarthóirí braisle CRI-O a chumrú. Tá an uirlis seo cumhachtach go leor nach féidir é a chur i bhfeidhm ach ar nóid áirithe ag brath ar na socruithe MachineConfigPool. Smaoinigh air mar ghrúpa meaisíní a fhreastalaíonn ar an gcuspóir céanna.
Tabhair faoi deara an dá líne dheireanacha atáimid chun athrú sa chomhad /etc/crio/crio.conf. Tá an dá líne seo an-chosúil leis na línte sa chomhad crio.conf, is iad sin:
vi ContainerRuntimeConfig.yaml
Conclúid:
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
Anois, déanaimis an comhad seo a bhrú chuig braisle Kubernetes agus seiceáil gur cruthaíodh é i ndáiríre. Tabhair faoi deara go bhfuil an oibríocht díreach mar an gcéanna le haon acmhainn Kubernetes eile:
oc create -f ContainerRuntimeConfig.yaml
oc get ContainerRuntimeConfig
Conclúid:
NAME AGE
set-log-and-pid 22h
Nuair a bheidh an ContainerRuntimeConfig cruthaithe againn, ní mór dúinn ceann de na MachineConfigPools a mhodhnú chun a chur in iúl do Kubernetes go dteastaíonn uainn an chumraíocht seo a chur i bhfeidhm ar ghrúpa meaisíní ar leith sa bhraisle. Sa chás seo athróimid an MachineConfigPool do na nóid mháistir:
oc edit MachineConfigPool/master
Conclúid (ar mhaithe le soiléireacht, fágtar an príomhbhunús):
...
metadata:
creationTimestamp: 2019-04-10T23:42:28Z
generation: 1
labels:
debug-crio: config-log-and-pid
operator.machineconfiguration.openshift.io/required-for-upgrade: ""
...
Ag an bpointe seo, tosaíonn MCO ag cruthú comhad crio.conf nua don bhraisle. Sa chás seo, is féidir an comhad cumraíochta críochnaithe go hiomlán a fheiceáil ag baint úsáide as an Kubernetes API. Cuimhnigh, níl in ContainerRuntimeConfig ach leagan speisialaithe de MachineConfig, ionas gur féidir linn an toradh a fheiceáil trí bhreathnú ar na línte ábhartha i MachineConfigs:
oc get MachineConfigs | grep rendered
Conclúid:
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
Tabhair faoi deara le do thoil gur leagan níos nuaí ná na cumraíochtaí bunaidh a bhí sa chomhad cumraíochta a tháinig as do na máistirnóid. Chun féachaint air, rith an t-ordú seo a leanas. Le linn dúinn a rith, tugaimid faoi deara gurb é seo, b'fhéidir, ceann de na cinn is fearr i stair 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
Conclúid:
pids_limit = 2048
Теперь убедимся, что конфигурация была применена ко всем мастер-узлам. Сначала получим список узлов в кластере:
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
Теперь просмотрим установленный файл. Вы увидите, что файл был обновлен по новым значениям директив pid и debug, которые мы указали в ресурсе ContainerRuntimeConfig. Сама элегантность:
oc debug node/ip-10-0-135-153.us-east-2.compute.internal — cat /host/etc/crio/crio.conf | egrep 'debug||pid’
Conclúid:
...
pids_limit = 2048
...
log_level = "debug"
...
Rinneadh na hathruithe seo go léir ar an mbraisle gan fiú SSH a rith. Rinneadh an obair ar fad trí rochtain a fháil ar mháistir nód Kuberentes. Is é sin, ní raibh na paraiméadair nua seo cumraithe ach amháin ar mháistir-nóid. Níor athraigh na nóid oibrithe, rud a léiríonn na buntáistí a bhaineann le modheolaíocht Kubernetes maidir le stáit shonraithe agus iarbhír a úsáid maidir le hóstach coimeádáin agus innill coimeádán le heilimintí idirmhalartaithe.
Léiríonn an sampla thuas an cumas athruithe a dhéanamh ar bhraisle beag OpenShift Container Platform 4 le trí nód táirgeachta nó braisle táirgthe ollmhór le 3000 nóid. In aon chás, beidh an méid oibre mar an gcéanna - agus an-bheag - ach an comhad ContainerRuntimeConfig a chumrú, agus lipéad amháin a athrú i MachineConfigPool. Agus is féidir leat é seo a dhéanamh le haon leagan den OpenShift Container Platform 4.X ag rith Kubernetes ar feadh a shaolré.
Зачастую технологические компании развиваются настолько быстро, что мы не в состоянии объяснить, почему мы выбираем те или иные технологии для базовых компонентов. Контейнерные движки исторически были тем компонентом, с которым пользователи взаимодействуют напрямую. Поскольку популярность контейнеров закономерно начиналась с появления контейнерных движков, пользователи нередко проявляют к ним заинтересованность. Это еще одна причина, почему Red Hat остановила свой выбор на CRI-O. Контейнеры развиваются, при этом сегодня основное внимание уделяется оркестровке, и мы пришли к выводу, что CRI-O обеспечивает наилучший опыт при работе с OpenShift 4.
Foinse: will.com