OpenShift jako podniková verze Kubernetes. Část 1

"Jaký je rozdíl mezi Kubernetes a OpenShift?" – tato otázka vyvstává se záviděníhodnou důsledností. I když ve skutečnosti je to jako ptát se, jak se auto liší od motoru. Pokud budeme pokračovat v přirovnání, pak auto je hotový produkt, můžete ho okamžitě použít, doslova: nasedněte a jeďte. Na druhou stranu, aby vás motor někam odvezl, musí být nejprve doplněn o spoustu dalších věcí, abyste nakonec dostali stejné auto.

OpenShift jako podniková verze Kubernetes. Část 1

Kubernetes je tedy motor, kolem kterého je sestaven vůz (platforma) značky OpenShift, který vás dovede k cíli.

V tomto článku vám chceme připomenout a prozkoumat následující klíčové body trochu podrobněji:

  • Kubernetes je srdcem platformy OpenShift a je to 100% certifikovaný Kubernetes, zcela open source a bez sebemenší proprietární povahy. Krátce:
    • Rozhraní API clusteru OpenShift je XNUMX% Kubernetes.
    • Pokud kontejner běží na jakémkoli jiném systému Kubernetes, poběží na OpenShift bez jakýchkoli změn. V aplikacích není třeba provádět změny.
  • OpenShift nejen přidává užitečné funkce a funkce do Kubernetes. Stejně jako auto je OpenShift vybalený z krabice, může být okamžitě uveden do výroby, a jak si ukážeme níže, výrazně usnadňuje život vývojářů. Proto je OpenShift sjednocen ve dvou osobách. Jde o úspěšnou a z pohledu vývojáře dobře známou platformu PaaS podnikové třídy. A zároveň jde o superspolehlivé řešení Container-as-a-Service z pohledu průmyslového provozu.

OpenShift je Kubernetes se 100% certifikací CNCF

OpenShift je založen na Certifikováno Kubernetes. Proto jsou uživatelé po řádném zaškolení ohromeni silou kubectl. A ti, kteří přešli na OpenShift z Kubernetes Cluster, často říkají, jak moc se jim líbí, že po přesměrování kubeconfigu do OpenShift clusteru všechny existující skripty fungují bezchybně.

Pravděpodobně jste slyšeli o nástroji příkazového řádku OpenShift s názvem OC. Je plně příkazově kompatibilní s kubectl a navíc nabízí několik užitečných pomocníků, kteří se budou hodit při plnění řady úkolů. Nejprve ale trochu více o kompatibilitě OC a kubectl:

příkazy kubectl
OC týmy

kubectl si lusky
oc získat lusky

kubectl získat jmenné prostory
oc získat jmenné prostory

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

Takto vypadají výsledky použití kubectl na OpenShift API:

• kubectl get pods – vrátí pody podle očekávání.

OpenShift jako podniková verze Kubernetes. Část 1

• kubectl get namespaces – vrátí jmenné prostory podle očekávání.

OpenShift jako podniková verze Kubernetes. Část 1
Příkaz kubectl create -f mydeployment.yaml vytvoří prostředky kubernetes stejně jako na jakékoli jiné platformě Kubernetes, jak je ukázáno ve videu níže:


Jinými slovy, všechna rozhraní Kubernetes API jsou plně dostupná v OpenShift při zachování 100% kompatibility. To je proč OpenShift je uznáván jako certifikovaná platforma Kubernetes organizací Cloud Native Computing Foundation (CNCF). 

OpenShift přidává do Kubernetes užitečné funkce

Rozhraní API Kubernetes jsou v OpenShift 100% dostupná, ale standardní utilita Kubernetes kubectl zjevně postrádá funkčnost a pohodlí. Red Hat proto přidal do Kubernetes užitečné funkce a nástroje příkazového řádku, jako je OC (zkratka pro klienta OpenShift) a ODO (OpenShift DO, tato utilita je zaměřena na vývojáře).

1. OC utility - výkonnější a pohodlnější verze Kubectl

Na rozdíl od kubectl například umožňuje vytvářet nové jmenné prostory a snadno přepínat kontexty a také nabízí řadu užitečných příkazů pro vývojáře, jako je vytváření obrázků kontejnerů a nasazování aplikací přímo ze zdrojového kódu nebo binárních souborů (Source-to-image, s2i).

Podívejme se na příklady, jak vestavění pomocníci a pokročilá funkčnost OC utility pomáhají zjednodušit každodenní práci.

Prvním příkladem je správa jmenného prostoru. Každý cluster Kubernetes má vždy více jmenných prostorů. Obvykle se používají k vytváření vývojových a produkčních prostředí, ale lze je také použít například k tomu, aby každému vývojáři poskytli osobní sandbox. V praxi to vede k tomu, že vývojář musí často přepínat mezi jmennými prostory, protože kubectl běží v kontextu aktuálního prostoru. Proto v případě kubectl k tomu lidé aktivně využívají pomocné skripty. Ale když používáte OC, pro přepnutí na požadovaný prostor stačí říct „oc project namespace“.

Nepamatujete si, jak se jmenuje jmenný prostor, který potřebujete? Žádný problém, stačí zadat „oc get projects“ a zobrazí se úplný seznam. Skepticky se ptáte, jak to bude fungovat, pokud máte přístup pouze k omezené podmnožině jmenných prostorů v clusteru? No, protože kubectl to dělá správně pouze tehdy, pokud vám RBAC umožňuje vidět všechny mezery v clusteru a ve velkých clusterech nemají tato oprávnění každý. Takže odpovídáme: pro OC to není vůbec problém a v takové situaci snadno vytvoří kompletní seznam. Právě tyto maličkosti tvoří firemní orientaci Openshift a dobrou škálovatelnost této platformy z hlediska uživatelů a aplikací.

2. ODO - vylepšená verze kubectl pro vývojáře

Dalším příkladem vylepšení Red Hat OpenShift oproti Kubernetes je nástroj příkazového řádku ODO. Je určen pro vývojáře a umožňuje rychle nasadit místní kód do vzdáleného clusteru OpenShift. Může také zefektivnit interní procesy a okamžitě synchronizovat všechny změny kódu do kontejnerů na vzdáleném clusteru OpenShift, aniž by bylo nutné znovu sestavovat, registrovat a znovu nasazovat obrazy.

Podívejme se, jak OC a ODO usnadňují práci s kontejnery a Kubernetes.

Stačí porovnat pár pracovních postupů, když jsou postaveny na bázi kubectl a když se používají OC nebo ODO.

• Nasazení kódu na OpenShift pro ty, kteří neovládají YAML:

Kubernetes/kubectl
$>git klon github.com/sclorg/nodejs-ex.git
1- Vytvořte Dockerfile, který vytvoří obrázek z kódu
-----
Z uzlu
WORKDIR /usr/src/app
ZKOPÍROVAT balíček*.json ./
KOPÍROVAT index.js ./
COPY ./app ./app
SPUSTIT instalaci npm
EXPOZICE 3000
CMD [ “npm”, “start” ] ————–
2- Vytváříme image
$>podman build...
3- Přihlaste se do registru
přihlášení podman...
4- Umístěte obrázek do registru
podman tlačit
5- Vytvořte soubory yaml pro nasazení aplikace (deployment.yaml, service.yaml, ingress.yaml) – to je naprosté minimum
6- Nasaďte soubory manifestu:
Kubectl použít -f .

OpenShift/oc
$> oc nová aplikace github.com/sclorg/nodejs-ex.git – název_naše_aplikace

OpenShift/odo
$>git klon github.com/sclorg/nodejs-ex.git
$> ode vytvořit komponentu nodejs myapp
$>odo push

• Kontextový přepínač: změna pracovního jmenného prostoru nebo pracovního clusteru.

Kubernetes/kubectl
1- Vytvořte kontext v kubeconfig pro projekt „myproject“
2- kubectl set-context…

OpenShift/oc
oc projekt „myproject“

Kontrola kvality: „Objevila se zde jedna zajímavá funkce, ještě v alfa verzi. Možná bychom to mohli dát do výroby?"

Představte si, že sedíte v závodním autě a je vám řečeno: „Nainstalovali jsme nový typ brzd a abych byl upřímný, jejich spolehlivost ještě není v pořádku... Ale nebojte se, v průběhu je budeme aktivně zlepšovat mistrovství." Jak se vám líbí tato vyhlídka? My v Red Hatu nějak moc spokojení nejsme. 🙂

Proto se snažíme alfa verze odložit, dokud nebudou dostatečně vyzrálé a neprovedeme důkladné bojové testování a nebudeme mít pocit, že je bezpečné je používat. Obvykle vše nejprve prochází fází Dev Preview a pak skrz Technický náhled a teprve potom vyjde jako veřejná verze Obecná dostupnost (GA), který je již natolik stabilní, že je vhodný pro výrobu.

proč tomu tak je? Protože, stejně jako u vývoje jakéhokoli jiného softwaru, ne všechny počáteční nápady v Kubernetes dosáhnou konečného vydání. Nebo toho dosáhnou a dokonce si zachovají zamýšlenou funkcionalitu, ale jejich implementace je radikálně odlišná od té v alfa verzi. Vzhledem k tomu, že tisíce a tisíce zákazníků Red Hat používají OpenShift k podpoře kritických pracovních zátěží, klademe zvláštní důraz na stabilitu naší platformy a dlouhodobou podporu.

Red Hat se zavázal často vydávat OpenShift a aktualizovat verzi Kubernetes, která je s ním dodávána. Například aktuální verze GA OpenShift 4.3 v době psaní tohoto článku zahrnuje Kubernetes 1.16, což je pouze jedna jednotka za upstream verzí Kubernetes s číslem 1.17. Snažíme se proto poskytnout zákazníkovi Kubernetes podnikové třídy a poskytnout další kontrolu kvality při vydávání nových verzí OpenShift.

Opravy softwaru: „Ve verzi Kubernetes, kterou máme ve výrobě, byla díra. A můžete jej zavřít pouze aktualizací tří verzí. Nebo jsou nějaké možnosti?

V projektu Kubernetes s otevřeným zdrojovým kódem jsou softwarové opravy obvykle vydány jako součást příští verze, někdy pokrývají jednu nebo dvě předchozí milníková vydání, což poskytuje pokrytí až za 6 měsíců.

Red Hat se pyšní tím, že kritické opravy vydává dříve než ostatní a poskytuje podporu mnohem déle. Vezměte si například chybu zabezpečení eskalace oprávnění Kubernetes (CVE-2018-1002105): byl objeven v Kubernetes 1.11 a opravy pro předchozí vydání byly vydány pouze do verze 1.10.11, takže tato zůstala v díře ve všech předchozích vydáních Kubernetes, od 1.x do 1.9.

Na druhé straně, Red Hat opravil OpenShift zpět na verzi 3.2 (Kubernetes 1.2 je k dispozici), zachycující devět vydání OpenShift a jasně demonstrující péči o zákazníky (další podrobnosti zde).

Jak OpenShift a Red Hat posouvají Kubernetes kupředu

Red Hat je druhým největším softwarovým přispěvatelem do projektu Kubernetes s otevřeným zdrojovým kódem, za jediným Googlem, přičemž 3 z 5 nejplodnějších vývojářů pochází z Red Hatu. Další málo známá skutečnost: mnoho kritických funkcí se objevilo v Kubernetes právě z iniciativy Red Hat, jako například:

  • RBAC. Kubernetes neměl funkce RBAC (ClusterRole, ClusterRoleBinding), dokud se inženýři Red Hat nerozhodli implementovat je jako součást samotné platformy, a nikoli jako další funkce OpenShift. Bojí se Red Hat vylepšovat Kubernetes? Samozřejmě ne, protože Red Hat striktně dodržuje principy open source a nehraje hry s Open Core. Vylepšení a inovace, které jsou řízeny vývojářskými komunitami, spíše než proprietárními komunitami, jsou životaschopnější a šířeji přijaté, což je v souladu s naším hlavním cílem učinit open source software užitečnějším pro naše zákazníky.
  • Bezpečnostní zásady pro pody (Zásady zabezpečení podů). Tento koncept bezpečného spouštění aplikací uvnitř modulů byl původně implementován v OpenShift pod názvem SCC (Security Context Constraints). A stejně jako v předchozím příkladu se Red Hat rozhodl zavést tento vývoj do otevřeného projektu Kubernetes, aby je mohl používat každý.

V této sérii příkladů by se dalo pokračovat, ale chtěli jsme jen ukázat, že Red Hat je skutečně odhodlána vyvíjet Kubernetes a zlepšovat jej pro všechny.

Je jasné, že OpenShift je Kubernetes. jaké jsou rozdíly? 🙂

Doufáme, že přečtením až sem jste si uvědomili, že Kubernetes je základní součástí OpenShift. Ten hlavní, ale zdaleka ne jediný. Jinými slovy, pouhá instalace Kubernetes vám nezíská platformu podnikové třídy. Budete muset přidat ověřování, sítě, zabezpečení, monitorování, správu protokolů a další. Navíc budete muset udělat několik obtížných rozhodnutí z velkého množství dostupných nástrojů (abyste ocenili rozmanitost ekosystému, stačí se podívat CNCF graf) a nějakým způsobem zajistit konzistenci a koherenci, aby fungovaly jako jeden celek. Kromě toho budete muset pravidelně provádět aktualizace a regresní testování, kdykoli bude vydána nová verze kterékoli z komponent, které používáte. To znamená, že kromě vytváření a údržby samotné platformy se budete muset vypořádat i se vším tímto softwarem. Je nepravděpodobné, že na řešení obchodních problémů a dosažení konkurenčních výhod zbude mnoho času.

V případě OpenShift však Red Hat vezme všechny tyto složitosti na sebe a jednoduše vám poskytne funkčně kompletní platformu, která zahrnuje nejen samotný Kubernetes, ale také celou sadu nezbytných nástrojů s otevřeným zdrojovým kódem, které promění Kubernetes ve skutečnou podnikovou třídu. řešení, které můžete okamžitě a zcela v klidu spustit do výroby. A samozřejmě, pokud máte nějaké své vlastní technologické zásobníky, můžete OpenShift integrovat do stávajících řešení.

OpenShift jako podniková verze Kubernetes. Část 1
OpenShift je chytrá platforma Kubernetes

Podívejte se na obrázek výše: vše, co je mimo obdélník Kubernetes, je místo, kde Red Hat přidává funkce, které Kubernetes nemá, jak se říká, podle návrhu. A nyní se podíváme na hlavní z těchto oblastí.

1. Robustní OS jako základ: RHEL CoreOS nebo RHEL

Red Hat je již více než 20 let předním poskytovatelem linuxových distribucí pro kritické obchodní aplikace. Naše nashromážděné a neustále aktualizované zkušenosti v této oblasti nám umožňují nabídnout skutečně spolehlivý a důvěryhodný základ pro průmyslový provoz kontejnerů. RHEL CoreOS používá stejné jádro jako RHEL, ale je optimalizováno především pro úlohy, jako je spouštění kontejnerů a spouštění clusterů Kubernetes: jeho zmenšená velikost a neměnnost usnadňují nastavení clusterů, automatické škálování, nasazování oprav atd. Všechny tyto funkce umožňují ideální základ pro poskytování stejné uživatelské zkušenosti s OpenShift v celé řadě výpočetních prostředí, od holého kovu až po soukromý a veřejný cloud.

2. Automatizace provozu IT

Automatizace instalačních procesů a operací day-4 (tedy každodenních operací) je silnou stránkou OpenShift, díky níž je mnohem snazší spravovat, aktualizovat a udržovat výkon kontejnerové platformy na nejvyšší úrovni. Toho je dosaženo podporou operátorů Kubernetes na úrovni jádra OpenShift XNUMX.

OpenShift 4 je také celý ekosystém řešení založených na operátorech Kubernetes, vyvinutý jak samotným Red Hatem, tak partnery třetích stran (viz. adresář operátora Red Hat nebo operátor obchod operatorhub.io, vytvořený společností Red Hat pro vývojáře třetích stran).

OpenShift jako podniková verze Kubernetes. Část 1
Integrovaný katalog OpenShift 4 zahrnuje více než 180 operátorů Kubernetes

3. Nástroje pro vývojáře

Od roku 2011 je OpenShift k dispozici jako platforma PaaS (Platform-as-a-Service), která výrazně usnadňuje život vývojářům, pomáhá jim soustředit se na kódování a nabízí nativní podporu programovacích jazyků, jako je Java, Node.js. , PHP, Ruby, Python, Go, stejně jako služby průběžné integrace a doručování CI/CD, databáze atd. OpenShift 4 nabízí rozsáhlý katalog, která zahrnuje více než 100 služeb založených na operátorech Kubernetes vyvinutých společností Red Hat a našimi partnery.

Na rozdíl od Kubernetes má OpenShift 4 vyhrazené GUI (Konzole pro vývojáře), který vývojářům pomáhá bez námahy nasazovat aplikace z různých zdrojů (git, externí registry, Dockerfile atd.) do jejich jmenných prostorů a jasně vizualizuje vztahy mezi komponentami aplikace.

OpenShift jako podniková verze Kubernetes. Část 1
Vývojářská konzole poskytuje jasný pohled na součásti aplikace a usnadňuje práci s Kubernetes

OpenShift navíc nabízí sadu vývojářských nástrojů Codeready, mezi které patří zejména Pracovní prostory připravené na kód, plně kontejnerizované IDE s webovým rozhraním, které běží přímo nad OpenShift a implementuje přístup IDE-as-a-service. Na druhou stranu, pro ty, kteří chtějí pracovat striktně v lokálním režimu, je tu Codeready Containers, plně funkční verze OpenShift 4, kterou lze nasadit na notebook.

OpenShift jako podniková verze Kubernetes. Část 1
Integrované IDE jako služba pro efektivní vývoj na platformě Kubernetes/OpenShift

OpenShift nabízí úplný systém CI/CD hned po vybalení, buď založený na kontejnerovém Jenkinsovi a pluginu DSL pro práci s potrubím nebo systémem CI/CD orientovaným na Kubernetes Tekton (aktuálně v Tech preview verzi). Obě tato řešení se plně integrují s konzolou OpenShift, což vám umožní spouštět spouštěče kanálu, prohlížet nasazení, protokoly a další.

4. Aplikační nástroje

OpenShift vám umožňuje nasazovat jak tradiční stavové aplikace, tak cloudová řešení založená na nových architekturách, jako jsou mikroslužby nebo bezserverové. Řešení OpenShift Service Mesh přichází hned po vybalení s klíčovými nástroji pro údržbu mikroslužeb, jako jsou Istio, Kiali a Jaeger. Řešení OpenShift Serverless zase zahrnuje nejen Knative, ale také nástroje jako Keda vytvořené v rámci společné iniciativy s Microsoftem k poskytování funkcí Azure na platformě OpenShift.

OpenShift jako podniková verze Kubernetes. Část 1
Integrované řešení OpenShift ServiceMesh (Istio, Kiali, Jaeger) bude užitečné při vývoji mikroslužeb

K překlenutí propasti mezi staršími aplikacemi a kontejnery nyní OpenShift umožňuje migraci virtuálních strojů na platformu OpenShift pomocí Container Native Virtualization (aktuálně v TechPreview), čímž se hybridní aplikace stávají realitou a usnadňuje jejich migrace mezi různými cloudy, soukromými i veřejnými.

OpenShift jako podniková verze Kubernetes. Část 1
Virtuální stroj Windows 2019 běžící na OpenShift prostřednictvím Container Native Virtualization (aktuálně ve verzi Tech Preview)

5. Nástroje pro clustery

Každá platforma podnikové třídy musí mít monitorovací a centralizované protokolovací služby, bezpečnostní mechanismy, ověřování a autorizaci a nástroje pro správu sítě. A OpenShift to vše poskytuje hned po vybalení a je to vše 100% open source, včetně řešení jako ElasticSearch, Prometheus, Grafana. Všechna tato řešení jsou dodávána s řídicími panely, metrikami a výstrahami, které jsou již vytvořeny a nakonfigurovány pomocí rozsáhlých zkušeností společnosti Red Hat v oblasti monitorování clusterů, což vám umožní efektivně řídit a monitorovat vaše produkční prostředí hned od začátku.

OpenShift také standardně přichází s tak důležitými věcmi pro firemní zákazníky, jako je ověřování pomocí vestavěného poskytovatele oauth, integrace s poskytovateli pověření, včetně LDAP, ActiveDirectory, OpenID Connect a mnoho dalšího.

OpenShift jako podniková verze Kubernetes. Část 1
Předkonfigurovaný řídicí panel Grafana pro monitorování clusteru OpenShift

OpenShift jako podniková verze Kubernetes. Část 1
Více než 150 předem nakonfigurovaných metrik a výstrah Prometheus pro monitorování clusteru OpenShift

Chcete-li se pokračovat

Bohatá funkčnost řešení a rozsáhlé zkušenosti Red Hatu v oblasti Kubernetes jsou důvody, proč OpenShift dosáhl dominantního postavení na trhu, jak ukazuje obrázek níže (čtěte více zde).

OpenShift jako podniková verze Kubernetes. Část 1
„Red Hat v současnosti vede na trhu s 44% podílem.
Společnost těží z výhod své prodejní strategie zaměřené na zákazníky, kde nejprve konzultuje a školí podnikové vývojáře a poté přechází na monetizaci, když podnik začíná nasazovat kontejnery do výroby.“

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

Doufáme, že se vám tento článek líbil. V budoucích příspěvcích v této sérii se blíže podíváme na výhody OpenShift oproti Kubernetes v každé ze zde diskutovaných kategorií.

Zdroj: www.habr.com

Přidat komentář