"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.
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
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í.
• kubectl get namespaces – vrátí jmenné prostory podle očekávání.
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 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
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
OpenShift/odo
$>git klon
$> 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
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 (
Na druhé straně,
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
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í.
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.
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í
Na rozdíl od Kubernetes má OpenShift 4 vyhrazené GUI (
OpenShift navíc nabízí sadu vývojářských nástrojů Codeready, mezi které patří zejména
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
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.
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.
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.
Předkonfigurovaný řídicí panel Grafana pro monitorování clusteru OpenShift
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
„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:
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