«Mis on erinevus Kubernetes'i ja OpenShift'i vahel?» â see kĂŒsimus tĂ”useb pidevalt esile. Kuigi tegelikult on see nagu kĂŒsida, kuidas auto erineb mootorist. Kui jĂ€tkata analoogiat, siis auto on valmis toode, mida saab kohe kasutada: istud sisse ja sĂ”idad. Teisest kĂŒljest, et mootor sind kuhugi vedada, peab selle juurde lisama palju teisi asju, et lĂ”puks saada sama auto.

SeetĂ”ttu on Kubernetes nagu see mootor, ĂŒmber mille on ehitatud auto (platvorm) nimega OpenShift, mis sind eesmĂ€rgini viib.
Selles artiklis tahame meenutada ja veidi detailsemalt arutada jÀrgmisi pÔhikohti:
- Kubernetes on OpenShift'i sĂŒda. Ja see on 100% sertifitseeritud Kubernetes, tĂ€iesti avatud koodiga ja ilma igasuguse omandiĂ”iguse. KokkuvĂ”tlikult:
- OpenShift'i klasteri API on 100% Kubernetes.
- Kui konteiner töötab mĂ”nes muus Kubernetes'i sĂŒsteemis, töötab ta ilma muudatusteta ka OpenShift'is. Rakendustes ei ole vaja muudatusi teha.
- OpenShift mitte ainult ei tÀiusta Kubernetes'e kasulike funktsioonide ja vÔimalustega. Nagu auto, on OpenShift kohe kasutusvalmis, seda vÔib koheselt tootmisse viia ja, nagu me allpool nÀitame, teeb see arendajate elu oluliselt lihtsamaks. Just seetÔttu on OpenShift kahel kujul. See on edukas ja laialdaselt tuntud PaaS-platvorm ettevÔtte tasemel, kui vaadata arendaja seisukohalt. Ja samal ajal on see ÀÀrmiselt usaldusvÀÀrne Container-as-a-Service lahendus industriaalsete operatsioonide seisukohalt.
OpenShift on Kubernetes, millel on 100% sertifitseerimine CNCF fondivaldkonnast.
OpenShift'i aluseks on . SeetĂ”ttu pĂ€rast sobivat koolitust imetlevad kasutajad kubectl'i vĂ”imet. Ja need, kes on Kubernetes'i klastrist OpenShift'ile ĂŒle lĂ€inud, rÀÀgivad sageli, kui vĂ€ga neile meeldib, et pĂ€rast kubeconfig'i suunamist OpenShift'i klastrile töötavad kĂ”ik olemasolevad skriptid laitmatult.
Sa oled tĂ”enĂ€oliselt kuulnud OpenShift'i kĂ€surea tööriistast nimega OC. See on tĂ€ielikult kooskĂ”las kĂ€sudega kubectl, pluss pakub mitmeid kasulikke abivahendeid, mis tulevad kasuks paljude ĂŒlesannete tĂ€itmisel. Kuid kĂ”igepealt veidi rohkem OC ja kubectl ĂŒhilduvusest:
kubectl kÀsud
OC kÀsud
kubectl get pods
oc get pods
kubectl get namespaces
oc get namespaces
kubectl create -f deployment.yaml
oc create -f deployment.yaml
Nii nÀevad vÀlja kubectl'i tulemused OpenShift API-s:
âą kubectl get pods â tĂ€iesti arusaadavalt toob tagasi pod'id.

âą kubectl get namespaces â tĂ€iesti arusaadavalt toob tagasi nimealad.

KÀsk kubectl create -f mydeployment.yaml loob Kubernetes ressursse samamoodi nagu kÔikidel teistel Kubernetes platvormidel, nagu on nÀidatud allolevas videos:
TeisisĂ”nu, kĂ”ik Kubernetesi API-d on OpenShiftis tĂ€ielikult kergesti ligipÀÀsetavad ja 100% ĂŒhilduvad. Just seetĂ”ttu .â
OpenShift tÀiendab Kubernetes'e kasulike funktsioonidega.
Kubernetesi API-d on OpenShiftis 100% kergesti ligipÀÀsetavad, kuid tavapĂ€raste Kubernetes'e tööriistade hulgas on kubectl'il selgelt puudu funktsionaalsusest ja mugavusest. SeetĂ”ttu on Red Hat lisanud Kubernetes'ele kasulikke funktsioone ja kĂ€surea tööriistu, nagu OC (OpenShift cli lĂŒhend) ja ODO (OpenShift DO, see tööriist on suunatud arendajatele).
1. OC tööriist â vĂ”imsam ja mugavam variant Kubectl'ist.
NÀiteks erinevalt kubectl'ist vÔimaldab see luua uusi nimealasid ja kergesti muuta konteksti, samuti pakub arendajatele mitmeid kasulikke kÀske, nÀiteks konteinerite piltide koostamiseks ja rakenduste juurutamiseks otse lÀhtekoodist vÔi binaarfailidest (Source-to-image, s2i).
Vaatame nÀidete abil, kuidas OC tööriista sissetegemist ja laiendatud funktsionaalsust aitab lihtsustada igapÀevast tööd.
Esimene nĂ€ide â nimealade haldamine. Igasse Kubernetes klastri kuulub alati mitu nimeala. TĂŒĂŒpiliselt kasutatakse neid arendus- ja tootmiskeskkondade loomiseks, kuid neid vĂ”ib kasutada ka nĂ€iteks iga arendaja isikliku âliivakastiâ esitamiseks. Praktikas tĂ€hendab see, et arendajal tuleb sageli nimealade vahel lĂŒlituda, kuna kubectl töötab praeguse nimeala kontekstis. SeetĂ”ttu kasutatakse kubectl'i puhul selleks aktiivselt helper-skripte. Kuid OC kasutamisel piisab lĂŒlitumiseks soovitud nimealale kĂ€skimisest "oc project nimeala".
Ei mĂ€leta, kuidas vajalik nimeala nimetatakse? Pole probleemi, lihtsalt tippige "oc get projects", et kuvada tĂ€ielik nimekirja. Skeptiliselt kĂŒsite, kuidas see töötab, kui teil on juurdepÀÀs vaid piiratud alameetodite kogumile klastris? Kuidas arutada, sest kubectl teeb seda Ă”igesti ainult siis, kui RBAC lubab teil nĂ€ha kĂ”iki nimealasid klastris, ja suurtes klastrites ei anta selliseid Ă”igusi kĂ”igile. Aga vastame: OC jaoks pole see ĂŒldse probleem ja see annab sellises olukorras teabe, mis on tĂ€iskohaga. Sellest tulenevad pisiasjad kujundavad korporatiivset orienteeritust Openshiftis ja selle platvormi head skaleeritavust kasutajate ja rakenduste suhtes.
2. ODO â parendatud versioon kubectl-st arendajatele.
Veel ĂŒheks nĂ€iteks Red Hat OpenShift'i parendustest Kubernetes'i vĂ”rreldes on kĂ€surea utiliidi ODO. See on mĂ”eldud arendajatele ja vĂ”imaldab kiiresti paigaldada kohaliku koodi kaugklastrisse OpenShift. Lisaks saab seda kasutada siseprotsesside optimeerimiseks, et koheselt sĂŒnkroonida kĂ”ik koodi muudatused kauglĂ€bivaatuse konteinerite vahel OpenShiftis ilma, et oleks vaja uuesti koostada, registreerida ja uuesti jagada pilte.
Vaatame, kuidas OC ja ODO lihtsustavad töötamist konteinerite ja Kubernetesega.
Lihtsalt vÔrdleme paar tööprotsessi, kui need pÔhinevad kubectl-l ja kui kasutatakse OC-d vÔi ODO-d.
âą Koodi paigaldamine OpenShiftile neile, kes ei valda YAML-i keelt:
Kubernetes / kubectl
$> git clone
1- Loome Dockerfile, mis koostab pildi koodist.
âââââ
FROM node
WORKDIR /usr/src/app
COPY package*.json ./
COPY index.js ./
COPY ./app ./app
RUN npm install
EXPOSE 3000
CMD [ "npm", "start" ]
âââââ
2- Koostame pildi.
$> podman build âŠ
3- Sisselogimine registrisse.
podman login âŠ
4- Paigaldame pildi registrisse.
podman push
5- Loome yaml-failid rakenduse paigaldamiseks (deployment.yaml, service.yaml, ingress.yaml) â see on absoluutne miinimum.
6- Paigaldame manifest-failid:
Kubectl apply -f .
OpenShift / oc
$> oc new-app â meie rakenduse_nimi
OpenShift / odo
$> git clone
$> odo create component nodejs myapp
$> odo push
⹠Konteksti vahetamine: tööruumi nimeala vÔi klastrivahetus.
Kubernetes / kubectl
1- Loome kontakti kubeconfigis projekti "myproject" jaoks.
2- kubectl set-context âŠ
OpenShift / oc
oc project "myproject"
Kvaliteedikontroll: âSiia tuli ĂŒks huvitav funktsioon, hetkel alfade versioonis. Kas me toome selle tootmisse?â
Kujutage ette, et teid istutatakse vĂ”idusĂ”idumasinasse ja öeldakse: âMe oleme siia pannud uue tĂŒĂŒbi pidurid ja ausalt öeldes pole neil veel usaldusvÀÀrsusega kĂ”ik korras ... Aga Ă€ra muretse, me jĂ€tkame nende arendamist kogu meistrivĂ”istluste ajal.â Kuidas selline perspektiiv tundub? Meie Red Hat's ei ole see just vĂ€ga meeldiv. đ
SeetĂ”ttu ĂŒritame enne piisavalt kĂŒpsete versioonide vĂ€ljaandmist hoiduda alfa-versioonidest, kuni oleme lĂ€bi viinud pĂ”hjalikud testimised ja tunne, et neid saab ohutult kasutada. Tavaliselt lĂ€bib kĂ”ik esmalt Dev Preview etapi, seejĂ€rel ja alles seejĂ€rel ilmub see ĂŒldise kergenduse vormis (GA), mis on piisavalt stabiilne, et sobida tootmisellu.
Miks nii? Sest nagu iga muu tarkvara arendamisel, ei jĂ”ua kĂ”ik algsed ideed Kuberneteses lĂ”plikku vĂ€ljaandesse. VĂ”i vĂ”ivad nad sinna jĂ”uda ja isegi sĂ€ilitada ette nĂ€htud funktsionaalsuse, kuid nende rakendamine erineb kardinaalselt sellest, mis oli alfa-versioonis. Kuna tuhanded ja tuhanded Red Hati kliendid kasutavad OpenShift'i kriitiliste ĂŒlesannete toetamiseks, keskendume oma platvormi stabiilsusele ja pikaajalisele toetusele eriliselt.
Red Hat vĂ€ljastab sihipĂ€raselt sagedasi OpenShift'i versioone ja uuendab selle koosseisu kuuluva Kubernetes versiooni. NĂ€iteks on kĂ€esolevas artiklis kirjutamise hetkel GA-vĂ€ljalase OpenShift 4.3 integreeritud Kubernetes 1.16, mis jÀÀb ainult ĂŒhe ĂŒlesvoolu versiooni numbrist 1.17. Seega pĂŒĂŒame pakkuda klientidele ettevĂ”tte tasemel Kubernetes'i ja tagada lisakvaliteedikontrolli uute OpenShift'i versioonide vĂ€ljalaskeprotsessis.
Tarkvaraparandused: âKĂ€esolevas Kubernetes'i versioonis, mis meil tootmises on, leiti nĂ”rk koht. Ja selle sulgemiseks on vajalik uuendada kolme versiooni vĂ”rra ĂŒlespoole. VĂ”i on muid variante?â
Avatud Kubernetes projektis antakse tarkvaraparandused tavaliselt jĂ€rgmise vĂ€ljaande koosseisus vĂ€lja, mĂ”nikord hĂ”lmavad need ĂŒhte vĂ”i kahte eelmist vaheversiooni, mis katab kokku kuue kuu taguseid probleeme.
Red Hat on Ôigustatult uhke, et toob kriitilised parandusettepanekud turule varem kui teised ning tagab toetuse palju pikemaks ajaks. NÀiteks, vÔtame Kubernetes'e privileegide eskaleerimise haavatavuse (): see avastati Kubernetes 1.11 versioonis, kuid parandus eelnevate vÀljalasete jaoks ilmus ainult versioonis 1.10.11, jÀttes selle haavatavuse kÔikidesse varasematesse Kubernetes'e versioonidesse, alates 1.x kuni 1.9.
Oma kord, (seal on Kubernetes 1.2), katab see ĂŒheksa OpenShift'i versiooni ja nĂ€itab selgelt hoolivust oma klientide vastu (rohkem teavet ).
Kuidas OpenShift ja Red Hat edendavad Kubernetes'e
Red Hat on teisel kohal programmi Kubernetes avatud projekti panuses, jÀÀdes sellega alla ainult Google'ile; 3 viiest tootlikumast arendajast on Red Hat'i töötajad. Veel ĂŒks vĂ€he tuntud fakt: paljud kriitilise tĂ€htsusega funktsioonid on ilmnenud Kubernetes'es just Red Hat'i algatusel, sealhulgas sellised, nagu:
- RBAC. Kubernetes'es puudusid RBAC funktsioonid (ClusterRole, ClusterRoleBinding) seni, kuni Red Hat'i insenerid otsustasid need rakendada platvormi osana, mitte kui tĂ€iendav OpenShift'i funktsionaalsus. Kas Red Hat kardab Kubernetes'e tĂ€iustamist? Loomulikult mitte, kuna Red Hat jĂ€rgib rangelt avatud koodi pĂ”himĂ”tteid ning ei mĂ€ngi Open Core mĂ€nge. Parandused ja uuendused, mis teostatakse arendustegevuse kogukonna tasandil, mitte omandiĂ”iguse alusel, muutuvad elujĂ”ulisemaks ja levivad laiemalt, mis kooskĂ”las meie peamise eesmĂ€rgiga â teha avatud koodiga tarkvara meie klientidele veelgi kasulikumaks.
- Pod'ide turvapoliitikad (Pod Security Policies). Alguses rakendati see rakenduste turvalist kĂ€itamise kontseptsioon pod'ides OpenShift'is nimega SCC (Security Context Constraints). Ja nagu eelmise nĂ€ite puhul, otsustas Red Hat need arendused tuua avatud projekti Kubernetes'i, et igaĂŒhel oleks vĂ”imalik neid kasutada.
Seda rida nĂ€iteid vĂ”iks jĂ€tkata, kuid tahtsime lihtsalt nĂ€idata, et Red Hat tĂ”eliselt pĂŒĂŒab arendada Kubernetes'e ja teha seda paremaks kĂ”igile.
Selge on, et OpenShift on Kubernetes. Aga milles siis erinevused? đ
Loodame, et olete jĂ”udnud siia, et mĂ”ista, et Kubernetes on OpenShifti peamine komponent. Peamine, kuid kaugeltki mitte ainus. TeisisĂ”nu, lihtsalt Kubernetes'e installimine ei anna teile ettevĂ”tte klassi platvormi. Peate lisama autentimise, vĂ”rgu, turvalisuse, monitooringu, logihalduse ja palju muud. Lisaks on teil keeruline valida paljude saadaval olevate tööriistade hulgast (et hinnata ökosĂŒsteemi mitmekesisust, vaadake lihtsalt ) ja tagama, et need kĂ”ik töötaksid ĂŒhtselt ja kooskĂ”lastatult. Lisaks peate regulaarselt teostama uuendusi ja regressioonitestimist iga kord, kui mĂ”ni kasutatav komponent uuendatakse. See tĂ€hendab, et lisaks platvormi loomisele ja hooldamisele peate tegelema ka kogu selle tarkvaraga. TĂ”enĂ€oliselt jÀÀb vĂ€he aega Ă€ritegevuse probleemide lahendamiseks ja konkurentsieeliste saavutamiseks.
Kuid OpenShift'i puhul vÔtab Red Hat kÔik need keerukused enda kanda ja pakub teile lihtsalt funktsionaalselt lÔpetatud platvormi, kuhu kuulub mitte ainult Kubernetes, vaid ka kÔik vajalikud avatud lÀhtekoodiga tööriistad, mis muudavad Kubernetes'e tÔeliseks ettevÔtte klassi lahenduseks, mida saab kohe ja muretult tootmisesse viia. Muidugi, kui teil on oma tehnolooge, saate OpenShift'i integreerida juba olemasolevatesse lahendustesse.

Vaadake ĂŒlaltoodud joonist: kĂ”ik, mis jÀÀb Kubernetes'e ristkĂŒlikust vĂ€ljapoole, on need valdkonnad, kus Red Hat lisab funktsionaalsust, mida Kubernetes' ei paku, nagu on ette nĂ€htud. Ja nĂŒĂŒd vaatleme neist peamisi valdkondi.
1. UsaldusvÀÀrne OS alusena: RHEL CoreOS vÔi RHEL
Red Hat on juba ĂŒle 20 aasta olnud juhtiv Linuxi distributsioonide pakkuja kriitiliselt oluliste Ă€pirakenduste jaoks. Meie valdkonnas omandatud ja pidevalt uuendatud kogemus vĂ”imaldab meil pakkuda tĂ”eliselt usaldusvÀÀrset ja usaldusvÀÀrset alust konteinerite tööstuslikuks kasutamiseks. RHEL CoreOS kasutab sama tuuma kui RHEL, kuid on optimeeritud peamiselt selliste ĂŒlesannete jaoks nagu konteinerite kĂ€itamine ja Kubernetes klastrites töötamine: selle vĂ€hendatud suurus ja muutumatuse (immutability) omadus lihtsustab klastrite seadistamist, automaatset skaleerimist, patchâide juurutamist jne. KĂ”ik need funktsioonid muudavad selle ideaalseks aluseks sama kasutajakogemuse saavutamiseks OpenShiftâis erinevates arvutuskeskkondades alates âpaljast riistvarastâ kuni privaatsete ja avalike pilvedeni.
2. IT-operations automatiseerimine
Paigaldamise ja teise pÀeva operatsioonide (st igapÀevase töö) automatiseerimine on OpenShift'i tugevus, mis oluliselt lihtsustab konteineriplatvormi haldamist, uuendamist ja töökindluse sÀilitamist kÔrgel tasemel. See saavutatakse Kubernetes'i operaatorite tuumast OpenShift 4 tasemel toe kaudu.
OpenShift 4 on ka terve ökosĂŒsteem lahendusi, mis pĂ”hinevad Kubernetes'i operaatoritel, mis on loodud nii Red Hati kui ka kolmandate osapoolte partnerite poolt (vt. Red Hat, vĂ”i operaatorite pood , mille on loonud Red Hat kolmandate arendajate jaoks).

Integreeritud OpenShift 4 kataloog sisaldab rohkem kui 180 Kubernetes'i operaatorit
3. Arendajatele mÔeldud tööriistad
Alates 2011. aastast on OpenShift saadaval PaaS (Platform-as-a-Service) platvormina, mis oluliselt lihtsustab arendajate elu, aitab neil keskenduda koodi kirjutamisele ja pakub sisse ehitatud tuge sellistele programmeerimiskeeltele nagu Java, Node.js, PHP, Ruby, Python, Go, samuti pideva integreerimise ja kohaletoimetamise CI/CD teenuseid, andmebaase jne. OpenShift 4 pakub , mis sisaldab rohkem kui 100 teenust, mis pÔhinevad Red Hati ja meie partnerite loodud Kubernetes'i operaatoritel.
Erinevalt Kubernetes'est on OpenShift 4-l spetsiaalne graafiline liides (), mis aitab arendajatel ilma liialduste ja vaevata juurutada oma nimede ruumidesse rakendusi erinevatest allikatest (git, vÀlistest registritest, Dockerfile jne) ning selgelt visualiseerida seoseid rakenduse komponentide vahel.

Lisaks pakub OpenShift arendustööriistade komplekti Codeready, kuhu kuuluvad muu hulgas. , tĂ€ielikult konteineriseeritud IDE veebiliidese abil, mis töötab otse OpenShifti peal ja rakendab âIDE kui teenusâ lĂ€henemist. Teisest kĂŒljest, neile, kes soovivad töötada rangelt lokaalses reĆŸiimis, on saadaval Codeready Containers â tĂ€ielik versioon OpenShift 4, mida saab juurutada sĂŒlearvutisse.

Integreeritud âIDE kui teenusâ tĂ”husaks arendamiseks Kubernetes/OpenShift platvormil.
OpenShift pakub koheselt tĂ€isfunktsionaalset CI/CD sĂŒsteemi, kas konteineriseeritud Jenkins pĂ”hjal ja pluginaga. torude tööks, vĂ”i Kubernetes pĂ”hine CI/CD sĂŒsteem. (hetkel Tech preview versioonis). Need lahendused on tĂ€ielikult integreeritud OpenShifti konsooliga, vĂ”imaldades kĂ€ivitada konveierite trikke, vaadata juurutamisi, logisid jne.
4. Rakenduste tööriistad
OpenShift vĂ”imaldab juurutada nii traditsioonilisi stateful-rakendusi kui ka pilvepĂ”hiseid lahendusi uute arhitektuuride, nĂ€iteks mikroteenuste vĂ”i serverivaba sĂŒsteemi pĂ”hjal. OpenShift Service Mesh lahendus toob otse vĂ€lja kĂ”ik mikroteenuste toetamiseks vajalikud tööriistad, nagu Istio, Kiali ja Jaeger. Omakorda OpenShift Serverless lahendus hĂ”lmab mitte ainult Knative'id, vaid ka Microsofti koostöö raames loodud tööriistu, nagu Keda, et tuua Azure'i funktsioone OpenShift platvormile.

Integreeritud lahendus OpenShift ServiceMesh (Istio, Kiali, Jaeger) on kasulik mikroteenuste arendamisel.
Kuna pĂ€randi rakenduste ja konteinerite vaheline lĂ”he tuleb vĂ€hendada, vĂ”imaldab OpenShift nĂŒĂŒd migreerida virtuaalmasinad OpenShift platvormile Container Native Virtualization abil (hetkel TechPreview versioonis), muutes hĂŒbriidrakendused reaalsuseks ja hĂ”lbustades nende liikumist erinevate, nii erasektori kui avalike, pilvede vahel.

Windows 2019 Virtual virtuaalmasin, mis töötab OpenShiftis Container Native Virtualization abil (hetkel Tech preview versioonis).
5. Klastri tööriistad
Igal ettevÔttel, millel on ettevÔtte tasemel platvorm, peavad olema jÀlgimis- ja tsentraliseeritud logimisfunktsioonid, turvamehhanismid, autentimine ja autoriseerimine, samuti vÔrguhalduse vahendid. OpenShift pakub kÔike seda vÀlja kujundatud kujul, olles 100% avatud lÀhtekoodiga, sealhulgas lahendusi nagu ElasticSearch, Prometheus, Grafana. KÔik need lahendused tulevad koos teabehalduspaneelide, mÔÔdikute ja hÀalertingidega, mis on juba kokku pandud ja seadistatud Red Hati laialdase kogemuse pÔhjal klastrite jÀlgimisel, vÔimaldades tÔhusalt jÀlgida ja hallata teie tootmiskeskkonda esimestest minutidest alates.
OpenShift omab ka selliseid olulisi ettevÔtte kliendi jaoks vajalikke funktsioone nagu sisseehitatud oauth autentimine ja integreerimine autentimisteenuse pakkujatega, sealhulgas LDAP, ActiveDirectory, OpenID Connect ja palju muud.

Eelnevalt seadistatud Grafana teabehalduspaneel OpenShift klastrite jÀlgimiseks

Rohkem kui 150 eelnevalt seadistatud Prometheuse mÔÔdikut ja hÀalertingit OpenShift klastrite jÀlgimiseks
JĂ€tkub
Lahenduse rikkalik funktsionaalsus ja Red Hati ulatuslik kogemus Kuberneteses â need on peamised pĂ”hjused, miks OpenShift on saavutanud turul domineeriva positsiooni, nagu on nĂ€idatud alloleval joonisel (lisainfot ).

âHetkel on Red Hat turuliider 44% turuosaga.
EttevĂ”te kogub saaki oma mĂŒĂŒgistrateegiast, mis hĂ”lmab aktiivset osalemist kliendi asjades, kus nad alguses nĂ”ustavad ja koolitavad ettevĂ”tte arendajaid ning seejĂ€rel liiguvad monetiseerimise suunas, kui ettevĂ”te hakkab konteinerite kasutusele vĂ”tma tootmises.â
(Allikas: )
Loodame, et teile meeldis see artikkel. KÀtketes postitustes arutame tÀpsemalt OpenShifti eeliseid vÔrreldes Kubernetesega kÔigis siin kÀsitletud kategooriates.
Allikas: habr.com
