OpenShift ako podniková verzia Kubernetes. Časť 1

"Aký je rozdiel medzi Kubernetes a OpenShift?" – táto otázka vyvstáva so závideniahodnou dôslednosťou. Aj keď v skutočnosti je to ako pýtať sa, ako sa auto líši od motora. Ak budeme pokračovať v prirovnaní, potom je auto hotový produkt, môžete ho okamžite použiť, doslova: nastúpte a choďte. Na druhej strane, aby vás motor niekam odviezol, treba ho najskôr doplniť o množstvo iných vecí, aby ste v konečnom dôsledku dostali rovnaké auto.

OpenShift ako podniková verzia Kubernetes. Časť 1

Preto je Kubernetes motorom, okolo ktorého je zostavené auto (platforma) značky OpenShift, ktoré vás dovedie k cieľu.

V tomto článku vám chceme pripomenúť a podrobnejšie preskúmať nasledujúce kľúčové body:

  • Kubernetes je srdcom platformy OpenShift a je to 100% certifikovaný Kubernetes, úplne open source a bez najmenšej proprietárnej povahy. Stručne:
    • Rozhranie API klastra OpenShift je XNUMX% Kubernetes.
    • Ak kontajner beží na akomkoľvek inom systéme Kubernetes, pobeží na OpenShift bez akýchkoľvek zmien. V aplikáciách nie je potrebné vykonávať žiadne zmeny.
  • OpenShift nielenže pridáva do Kubernetes užitočné funkcie a funkcie. Rovnako ako auto, aj OpenShift je po vybalení z krabice, môže byť okamžite uvedený do výroby a, ako si ukážeme nižšie, výrazne uľahčuje život vývojárov. Preto je OpenShift zjednotený v dvoch osobách. Je to úspešná a z pohľadu vývojára známa platforma PaaS podnikovej triedy. A zároveň ide o superspoľahlivé riešenie Container-as-a-Service z pohľadu priemyselnej prevádzky.

OpenShift je Kubernetes so 100% certifikáciou CNCF

OpenShift je založený na Certifikované Kubernetes. Preto sú užívatelia po správnom zaškolení ohromení silou kubectl. A tí, ktorí prešli na OpenShift z Kubernetes Cluster, často hovoria, ako veľmi sa im páči, že po presmerovaní kubeconfigu do klastra OpenShift fungujú všetky existujúce skripty bezchybne.

Pravdepodobne ste už počuli o nástroji príkazového riadka OpenShift s názvom OC. Je plne príkazovo kompatibilný s kubectl a navyše ponúka niekoľko užitočných pomocníkov, ktorí sa budú hodiť pri vykonávaní množstva úloh. Najprv však trochu viac o kompatibilite OC a kubectl:

príkazy kubectl
OC tímy

kubectl dostať struky
oc dostať struky

kubectl získať menné priestory
oc získať menné priestory

kubectl create -f deployment.yaml
oc create -f deployment.yaml

Takto vyzerajú výsledky používania kubectl na OpenShift API:

• kubectl get pods – vráti pody podľa očakávania.

OpenShift ako podniková verzia Kubernetes. Časť 1

• kubectl get namespaces – vráti menné priestory podľa očakávania.

OpenShift ako podniková verzia Kubernetes. Časť 1
Príkaz kubectl create -f mydeployment.yaml vytvorí prostriedky kubernetes rovnako ako na akejkoľvek inej platforme Kubernetes, ako je znázornené na videu nižšie:


Inými slovami, všetky Kubernetes API sú plne dostupné v OpenShift pri zachovaní 100% kompatibility. Preto OpenShift je uznaný ako certifikovaná platforma Kubernetes nadáciou Cloud Native Computing Foundation (CNCF). 

OpenShift pridáva do Kubernetes užitočné funkcie

Rozhrania API Kubernetes sú 100% dostupné v OpenShift, ale štandardnému nástroju Kubernetes kubectl zjavne chýba funkčnosť a pohodlie. Preto Red Hat pridal do Kubernetes užitočné funkcie a nástroje príkazového riadku, ako napríklad OC (skratka pre klienta OpenShift) a ODO (OpenShift DO, tento nástroj je určený pre vývojárov).

1. OC utility - výkonnejšia a pohodlnejšia verzia Kubectl

Na rozdiel od kubectl vám napríklad umožňuje vytvárať nové menné priestory a jednoducho prepínať kontexty a ponúka aj množstvo užitočných príkazov pre vývojárov, ako je vytváranie obrázkov kontajnerov a nasadzovanie aplikácií priamo zo zdrojového kódu alebo binárnych súborov (Source-to-image, s2i).

Pozrime sa na príklady toho, ako vstavaní pomocníci a pokročilá funkcionalita pomôcky OC pomáhajú zjednodušiť každodennú prácu.

Prvým príkladom je správa menného priestoru. Každý klaster Kubernetes má vždy viacero menných priestorov. Zvyčajne sa používajú na vytváranie vývojových a produkčných prostredí, ale môžu sa použiť napríklad aj na poskytnutie osobného sandboxu každému vývojárovi. V praxi to vedie k tomu, že vývojár musí často prepínať medzi mennými priestormi, keďže kubectl beží v kontexte aktuálneho priestoru. Preto v prípade kubectl ľudia na to aktívne využívajú pomocné skripty. Ale keď používate OC, na prepnutie do požadovaného priestoru stačí povedať „oc project namespace“.

Nepamätáte si, ako sa volá menný priestor, ktorý potrebujete? Žiadny problém, stačí zadať „oc get projects“ a zobrazí sa úplný zoznam. Skepticky sa pýtate, ako to bude fungovať, ak budete mať prístup iba k obmedzenej podmnožine menných priestorov v klastri? No, pretože kubectl to robí správne iba vtedy, ak vám RBAC umožňuje vidieť všetky medzery v klastri a vo veľkých klastroch nie každý dostane takéto povolenia. Takže odpovedáme: pre OC to vôbec nie je problém a v takejto situácii ľahko vytvorí kompletný zoznam. Sú to tieto maličkosti, ktoré tvoria firemnú orientáciu Openshift a dobrú škálovateľnosť tejto platformy z hľadiska používateľov a aplikácií.

2. ODO - vylepšená verzia kubectl pre vývojárov

Ďalším príkladom vylepšení Red Hat OpenShift oproti Kubernetes je nástroj príkazového riadka ODO. Je určený pre vývojárov a umožňuje rýchle nasadenie lokálneho kódu do vzdialeného klastra OpenShift. Môže tiež zefektívniť interné procesy a okamžite synchronizovať všetky zmeny kódu do kontajnerov na vzdialenom klastri OpenShift bez toho, aby ste museli znova zostavovať, registrovať a nasadzovať obrázky.

Pozrime sa, ako OC a ODO uľahčujú prácu s kontajnermi a Kubernetemi.

Stačí porovnať pár pracovných postupov, keď sú postavené na báze kubectl a keď sa používajú OC alebo ODO.

• Nasadenie kódu na OpenShift pre tých, ktorí neovládajú YAML:

Kubernetes/kubectl
$>git klon github.com/sclorg/nodejs-ex.git
1- Vytvorte Dockerfile, ktorý vytvorí obrázok z kódu
-----
Z uzla
WORKDIR /usr/src/app
KOPÍROVAŤ balík*.json ./
KOPÍROVAŤ index.js ./
KOPÍROVAŤ ./app ./app
SPUSTITE inštaláciu npm
EXPOZÍCIA 3000
CMD [ “npm”, “štart” ] ————–
2- Budujeme imidž
$>podman stavať...
3- Prihláste sa do registra
prihlásenie podman...
4- Umiestnite obrázok do registra
podman tlačiť
5- Vytvorte súbory yaml pre nasadenie aplikácie (deployment.yaml, service.yaml, ingress.yaml) - toto je absolútne minimum
6- Nasaďte súbory manifestu:
Kubectl použiť -f .

OpenShift/oc
$> oc nová aplikácia github.com/sclorg/nodejs-ex.git – názov našej_aplikácie

OpenShift/odo
$>git klon github.com/sclorg/nodejs-ex.git
$> odo vytvorte komponent nodejs myapp
$>odo push

• Kontextový prepínač: zmena pracovného priestoru názvov alebo pracovného klastra.

Kubernetes/kubectl
1- Vytvorte kontext v kubeconfig pre projekt „myproject“
2- kubectl set-context…

OpenShift/oc
oc projekt „myproject“

Kontrola kvality: „Objavila sa tu jedna zaujímavá funkcia, ešte v alfa verzii. Možno to dáme do výroby?"

Predstavte si, že sedíte v pretekárskom aute a poviete: „Nainštalovali sme nový typ bŕzd a úprimne povedané, ich spoľahlivosť ešte nie je v poriadku... Ale nebojte sa, počas kurzu ich budeme aktívne zlepšovať šampionátu." Ako sa vám páči táto vyhliadka? My v Red Hat akosi nie sme veľmi spokojní. 🙂

Preto sa snažíme s alfa verziami odložiť, kým nie sú dostatočne zrelé a kým sme nevykonali dôkladné bojové testovanie a nepocítili sme, že ich používanie je bezpečné. Zvyčajne všetko najskôr prechádza fázou Dev Preview a potom Technický náhľad a až potom vyjde ako verejné vydanie Všeobecná dostupnosť (GA), ktorý je už natoľko stabilný, že je vhodný na výrobu.

prečo je to tak? Pretože, rovnako ako pri vývoji akéhokoľvek iného softvéru, nie všetky počiatočné nápady v Kubernetes sa dostanú do konečného vydania. Alebo ju dosiahnu a dokonca si zachovajú zamýšľanú funkcionalitu, ale ich implementácia je radikálne odlišná od tej v alfa verzii. S tisíckami a tisíckami zákazníkov Red Hat, ktorí používajú OpenShift na podporu kritických úloh, kladieme osobitný dôraz na stabilitu našej platformy a dlhodobú podporu.

Red Hat sa zaviazal často vydávať OpenShift a aktualizovať verziu Kubernetes, ktorá je s ním dodávaná. Napríklad aktuálne vydanie GA OpenShift 4.3 v čase písania tohto článku obsahuje Kubernetes 1.16, čo je len jedna jednotka za upstream verziou Kubernetes s číslom 1.17. Preto sa snažíme poskytnúť zákazníkovi Kubernetes podnikovej triedy a poskytnúť dodatočnú kontrolu kvality pri vydávaní nových verzií OpenShift.

Opravy softvéru: „Vo verzii Kubernetes, ktorú máme vo výrobe, bola diera. A môžete ho zatvoriť iba aktualizáciou troch verzií. Alebo sú nejaké možnosti?

V projekte Kubernetes s otvoreným zdrojovým kódom sa opravy softvéru zvyčajne vydávajú ako súčasť nasledujúceho vydania, pričom niekedy pokrývajú jedno alebo dve predchádzajúce míľnikové vydania, čím sa pokrytie vráti až o 6 mesiacov.

Red Hat sa pýši tým, že kritické opravy vydáva skôr ako ostatní a poskytuje podporu oveľa dlhšie. Vezmime si napríklad chybu zabezpečenia eskalácie privilégií Kubernetes (CVE-2018 1002105,): bol objavený v Kubernetes 1.11 a opravy pre predchádzajúce vydania boli vydané iba do verzie 1.10.11, pričom táto zostala v diere vo všetkých predchádzajúcich vydaniach Kubernetes, od 1.x do 1.9.

Na druhej strane, Red Hat opravil OpenShift späť na verziu 3.2 (Kubernetes 1.2 je k dispozícii), zachytáva deväť vydaní OpenShift a jasne demonštruje starostlivosť o zákazníkov (viac podrobností tu).

Ako OpenShift a Red Hat posúvajú Kubernetes vpred

Red Hat je druhým najväčším softvérovým prispievateľom do projektu Kubernetes s otvoreným zdrojovým kódom, len za Google, pričom 3 z 5 najplodnejších vývojárov pochádzajú z Red Hat. Ďalší málo známy fakt: veľa kritických funkcií sa objavilo v Kubernetes práve z iniciatívy Red Hat, najmä:

  • RBAC. Kubernetes nemal funkcie RBAC (ClusterRole, ClusterRoleBinding), kým sa ich inžinieri Red Hat nerozhodli implementovať ako súčasť samotnej platformy, a nie ako dodatočnú funkcionalitu OpenShift. Bojí sa Red Hat vylepšovať Kubernetes? Samozrejme, že nie, pretože Red Hat striktne dodržiava princípy open source a nehrá hry Open Core. Vylepšenia a inovácie, ktoré sú riadené vývojovými komunitami, a nie proprietárnymi, sú životaschopnejšie a širšie prijímané, čo je v súlade s naším hlavným cieľom urobiť softvér s otvoreným zdrojovým kódom užitočnejším pre našich zákazníkov.
  • Bezpečnostné zásady pre moduly (Zásady zabezpečenia pod). Tento koncept bezpečného spúšťania aplikácií vo vnútri modulov bol pôvodne implementovaný v OpenShift pod názvom SCC (Security Context Constraints). A ako v predchádzajúcom príklade, Red Hat sa rozhodol zaviesť tento vývoj do otvoreného projektu Kubernetes, aby ich mohol používať každý.

V tejto sérii príkladov by sa dalo pokračovať, ale chceli sme len ukázať, že Red Hat je skutočne odhodlaný vyvíjať Kubernetes a zlepšovať ho pre všetkých.

Je jasné, že OpenShift je Kubernetes. v čom sú rozdiely? 🙂

Dúfame, že čítaním až sem ste si uvedomili, že Kubernetes je základnou súčasťou OpenShift. Hlavný, no zďaleka nie jediný. Inými slovami, jednoduchá inštalácia Kubernetes vám nezíska platformu podnikovej triedy. Budete musieť pridať autentifikáciu, sieť, zabezpečenie, monitorovanie, správu protokolov a ďalšie. Navyše budete musieť urobiť niekoľko náročných rozhodnutí z veľkého množstva dostupných nástrojov (ak chcete oceniť rozmanitosť ekosystému, stačí sa pozrieť na CNCF graf) a nejakým spôsobom zabezpečiť konzistentnosť a súdržnosť, aby fungovali ako jeden celok. Okrem toho budete musieť pravidelne vykonávať aktualizácie a regresné testovanie vždy, keď vyjde nová verzia ktoréhokoľvek z komponentov, ktoré používate. To znamená, že okrem vytvárania a údržby samotnej platformy sa budete musieť zaoberať aj celým týmto softvérom. Je nepravdepodobné, že na riešenie obchodných problémov a dosiahnutie konkurenčných výhod zostane veľa času.

V prípade OpenShift však Red Hat berie všetky tieto zložitosti na seba a jednoducho vám poskytne funkčne kompletnú platformu, ktorá zahŕňa nielen samotný Kubernetes, ale aj celú sadu potrebných open source nástrojov, ktoré z Kubernetes spravia skutočnú podnikovú triedu. riešenie, ktoré môžete okamžite a úplne pokojne spustiť do výroby. A samozrejme, ak máte nejaké svoje vlastné technologické balíky, potom môžete OpenShift integrovať do existujúcich riešení.

OpenShift ako podniková verzia Kubernetes. Časť 1
OpenShift je inteligentná platforma Kubernetes

Pozrite sa na obrázok vyššie: všetko, čo je mimo obdĺžnika Kubernetes, je miesto, kde Red Hat pridáva funkcie, ktoré Kubernetes nemá, ako sa hovorí, podľa návrhu. A teraz sa pozrieme na hlavné z týchto oblastí.

1. Robustný OS ako základ: RHEL CoreOS alebo RHEL

Red Hat je už viac ako 20 rokov popredným poskytovateľom distribúcií Linuxu pre kritické obchodné aplikácie. Naše nahromadené a neustále aktualizované skúsenosti v tejto oblasti nám umožňujú ponúknuť skutočne spoľahlivý a dôveryhodný základ pre priemyselnú prevádzku kontajnerov. RHEL CoreOS používa rovnaké jadro ako RHEL, ale je optimalizovaný predovšetkým pre úlohy, ako je spustenie kontajnerov a spustenie klastrov Kubernetes: jeho menšia veľkosť a nemennosť uľahčujú nastavenie klastrov, automatické škálovanie, nasadzovanie opráv atď. Všetky tieto funkcie umožňujú Ideálny základ pre poskytovanie rovnakej používateľskej skúsenosti s OpenShift v širokej škále počítačových prostredí, od holého kovu až po súkromný a verejný cloud.

2. Automatizácia prevádzky IT

Automatizácia inštalačných procesov a operácií day-4 (teda každodenných operácií) je silnou stránkou OpenShift, vďaka čomu je oveľa jednoduchšie spravovať, aktualizovať a udržiavať výkon kontajnerovej platformy na najvyššej úrovni. Dosahuje sa to podporou operátorov Kubernetes na úrovni jadra OpenShift XNUMX.

OpenShift 4 je tiež celý ekosystém riešení založených na operátoroch Kubernetes, ktorý vyvinula samotná spoločnosť Red Hat a partneri tretích strán (pozri. adresár operátora Red Hat alebo operátor obchod operatorhub.io, vytvorený spoločnosťou Red Hat pre vývojárov tretích strán).

OpenShift ako podniková verzia Kubernetes. Časť 1
Integrovaný katalóg OpenShift 4 obsahuje viac ako 180 operátorov Kubernetes

3. Vývojárske nástroje

Od roku 2011 je OpenShift k dispozícii ako platforma PaaS (Platform-as-a-Service), ktorá výrazne uľahčuje život vývojárom, pomáha im sústrediť sa na kódovanie a ponúka natívnu podporu programovacích jazykov ako Java, Node.js. , PHP, Ruby, Python, Go, ako aj nepretržitú integráciu a doručovanie CI/CD, databázy atď. OpenShift 4 ponúka rozsiahly katalóg, ktorá zahŕňa viac ako 100 služieb založených na operátoroch Kubernetes vyvinutých spoločnosťou Red Hat a našimi partnermi.

Na rozdiel od Kubernetes má OpenShift 4 vyhradené GUI (Konzola pre vývojárov), ktorý pomáha vývojárom bez námahy nasadzovať aplikácie z rôznych zdrojov (git, externé registre, Dockerfile atď.) do ich menných priestorov a jasne vizualizuje vzťahy medzi komponentmi aplikácie.

OpenShift ako podniková verzia Kubernetes. Časť 1
Konzola pre vývojárov poskytuje jasný prehľad komponentov aplikácie a uľahčuje prácu s Kubernetes

Okrem toho OpenShift ponúka sadu vývojových nástrojov Codeready, medzi ktoré patrí najmä Pracovné priestory pripravené na kód, plne kontajnerované IDE s webovým rozhraním, ktoré beží priamo nad OpenShift a implementuje prístup IDE-as-a-service. Na druhej strane, pre tých, ktorí chcú pracovať striktne v lokálnom režime, je tu Codeready Containers, plne funkčná verzia OpenShift 4, ktorú možno nasadiť na notebook.

OpenShift ako podniková verzia Kubernetes. Časť 1
Integrované IDE ako služba pre efektívny vývoj na platforme Kubernetes/OpenShift

OpenShift ponúka úplný systém CI/CD hneď po vybalení, buď založený na kontajnerovom Jenkins a doplnku DSL pre prácu s potrubím alebo systémom CI/CD orientovaným na Kubernetes Tecton (momentálne v Tech preview verzii). Obe tieto riešenia sa plne integrujú s konzolou OpenShift, čo vám umožňuje spúšťať spúšťače potrubia, prezerať nasadenia, protokoly a ďalšie.

4. Aplikačné nástroje

OpenShift vám umožňuje nasadiť tradičné stavové aplikácie aj cloudové riešenia založené na nových architektúrach, ako sú mikroslužby alebo bezserverové. Riešenie OpenShift Service Mesh prichádza hneď po vybalení s kľúčovými nástrojmi na údržbu mikroslužieb, ako sú Istio, Kiali a Jaeger. Riešenie OpenShift Serverless zase zahŕňa nielen Knative, ale aj nástroje ako Keda vytvorené v rámci spoločnej iniciatívy s Microsoftom na poskytovanie funkcií Azure na platforme OpenShift.

OpenShift ako podniková verzia Kubernetes. Časť 1
Integrované riešenie OpenShift ServiceMesh (Istio, Kiali, Jaeger) bude užitočné pri vývoji mikroslužieb

Na preklenutie priepasti medzi staršími aplikáciami a kontajnermi teraz OpenShift umožňuje migráciu virtuálnych strojov na platformu OpenShift pomocou Container Native Virtualization (momentálne v TechPreview), čím sa hybridné aplikácie stávajú realitou a uľahčuje ich migrácia medzi rôznymi cloudmi, súkromnými aj verejnými.

OpenShift ako podniková verzia Kubernetes. Časť 1
Virtuálny virtuálny stroj Windows 2019 spustený na OpenShift cez Container Native Virtualization (momentálne vo verzii Tech preview)

5. Nástroje pre klastre

Každá platforma podnikovej triedy musí mať monitorovacie a centralizované protokolovacie služby, bezpečnostné mechanizmy, autentifikáciu a autorizáciu a nástroje na správu siete. A OpenShift to všetko poskytuje hneď po vybalení a je to všetko 100% open source, vrátane riešení ako ElasticSearch, Prometheus, Grafana. Všetky tieto riešenia prichádzajú s panelmi, metrikami a upozorneniami, ktoré sú už vytvorené a nakonfigurované pomocou rozsiahlych skúseností spoločnosti Red Hat v oblasti monitorovania klastrov, čo vám umožňuje efektívne riadiť a monitorovať vaše produkčné prostredie hneď od začiatku.

OpenShift tiež štandardne prichádza s takými dôležitými vecami pre firemných zákazníkov, ako je autentifikácia pomocou vstavaného poskytovateľa overenia, integrácia s poskytovateľmi poverení vrátane LDAP, ActiveDirectory, OpenID Connect a mnoho ďalších.

OpenShift ako podniková verzia Kubernetes. Časť 1
Vopred nakonfigurovaný prístrojový panel Grafana na monitorovanie klastra OpenShift

OpenShift ako podniková verzia Kubernetes. Časť 1
Viac ako 150 predkonfigurovaných metrík a upozornení Prometheus na monitorovanie klastra OpenShift

Ak sa chcete pokračovať

Bohatá funkcionalita riešenia a rozsiahle skúsenosti Red Hatu v oblasti Kubernetes sú dôvodom, prečo OpenShift dosiahol dominantné postavenie na trhu, ako ukazuje obrázok nižšie (čítaj viac tu).

OpenShift ako podniková verzia Kubernetes. Časť 1
„Red Hat v súčasnosti vedie na trhu s podielom 44 %.
Spoločnosť ťaží z výhod svojej predajnej stratégie zameranej na zákazníka, kde najprv konzultuje a školí podnikových vývojárov a potom prejde na monetizáciu, keď podnik začne nasadzovať kontajnery do výroby.“

(Zdroj: www.lightreading.com/nfv/containers/ihs-red-hat-container-strategy-is-paying-off/d/d-id/753863)

Dúfame, že sa vám tento článok páčil. V budúcich príspevkoch v tejto sérii sa bližšie pozrieme na výhody OpenShift oproti Kubernetes v každej z tu diskutovaných kategórií.

Zdroj: hab.com

Pridať komentár