"Koja je razlika između Kubernetesa i OpenShifta?" – postavlja se ovo pitanje sa zavidnom dosljednošću. Iako je to u stvarnosti kao da pitate po čemu se auto razlikuje od motora. Ako nastavimo analogiju, onda je automobil gotov proizvod, možete ga koristiti odmah, doslovno: uđite i krenite. S druge strane, da bi te neki motor negdje odveo, mora se prvo nadopuniti s puno drugih stvari da bi se u konačnici dobio isti auto.
Dakle, Kubernetes je motor oko kojeg je sastavljen automobil (platforma) marke OpenShift koji vas vodi do vašeg cilja.
U ovom članku želimo vas podsjetiti i malo detaljnije ispitati sljedeće ključne točke:
- Kubernetes je srce OpenShift platforme i to je 100% certificirani Kubernetes, potpuno otvorenog koda i bez imalo vlasničke prirode. Kratko:
- API klastera OpenShift je XNUMX% Kubernetes.
- Ako spremnik radi na bilo kojem drugom sustavu Kubernetes, tada će se izvoditi na OpenShiftu bez ikakvih promjena. Nema potrebe mijenjati aplikacije.
- OpenShift ne samo da dodaje korisne značajke i funkcionalnost Kubernetesu. Kao i automobil, OpenShift je izvan kutije, može se odmah staviti u proizvodnju i, kao što ćemo pokazati u nastavku, čini život programera puno lakšim. Zato je OpenShift ujedinjen u dvije osobe. To je i uspješna i dobro poznata PaaS platforma poslovne klase iz perspektive programera. U isto vrijeme, to je super-pouzdano rješenje kontejnera kao usluge sa stajališta industrijskog rada.
OpenShift je Kubernetes sa 100% CNCF certifikatom
OpenShift se temelji na
Vjerojatno ste čuli za OpenShiftov pomoćni program naredbenog retka koji se zove OC. U potpunosti je kompatibilan s naredbama s kubectl, plus nudi nekoliko korisnih pomoćnika koji će vam dobro doći pri obavljanju niza zadataka. Ali prvo, nešto više o kompatibilnosti OC-a i kubectla:
kubectl naredbe
OC timovi
kubectl dobiti pods
oc dobiti mahune
kubectl dobiti prostore imena
oc dobiti prostore imena
kubectl create -f deployment.yaml
oc stvoriti -f implementacija.yaml
Evo kako izgledaju rezultati korištenja kubectla na OpenShift API-ju:
• kubectl get pods – vraća pods prema očekivanjima.
• kubectl get namespaces – vraća imenske prostore prema očekivanjima.
Naredba kubectl create -f mydeployment.yaml stvara kubernetes resurse baš kao na bilo kojoj drugoj Kubernetes platformi, kao što je prikazano u videu ispod:
Drugim riječima, svi Kubernetes API-ji u potpunosti su dostupni u OpenShiftu uz zadržavanje 100% kompatibilnosti. Iz tog razloga
OpenShift dodaje korisne značajke Kubernetesu
Kubernetes API-ji su 100% dostupni u OpenShiftu, ali standardnom Kubernetes uslužnom programu kubectl očito nedostaje funkcionalnost i praktičnost. Zato je Red Hat Kubernetesu dodao korisne značajke i alate naredbenog retka, kao što su OC (skraćenica za OpenShift klijent) i ODO (OpenShift DO, ovaj uslužni program namijenjen je programerima).
1. OC uslužni program - moćnija i praktičnija verzija Kubectla
Na primjer, za razliku od kubectl-a, omogućuje vam stvaranje novih imenskih prostora i jednostavno mijenjanje konteksta, a također nudi niz korisnih naredbi za programere, kao što je izrada slika spremnika i implementacija aplikacija izravno iz izvornog koda ili binarnih datoteka (izvor-na-sliku, s2i).
Pogledajmo primjere kako ugrađeni pomagači i napredna funkcionalnost uslužnog programa OC pomažu pojednostaviti svakodnevni rad.
Prvi primjer je upravljanje imenskim prostorom. Svaki Kubernetes klaster uvijek ima više imenskih prostora. Obično se koriste za stvaranje razvojnih i proizvodnih okruženja, ali se također mogu koristiti za, na primjer, pružanje svakom programeru osobnog sandboxa. U praksi to rezultira time da se programer mora često prebacivati između prostora imena, budući da kubectl radi u kontekstu trenutnog prostora. Stoga, u slučaju kubectla, ljudi aktivno koriste pomoćne skripte za to. Ali kada koristite OC, da biste se prebacili na željeni prostor, samo recite "oc project namespace".
Ne sjećate se kako se zove imenski prostor koji vam je potreban? Nema problema, samo upišite "oc get projects" za prikaz cijelog popisa. Skeptični se pitate kako će to funkcionirati ako imate pristup samo ograničenom podskupu prostora imena na klasteru? Pa, zato što kubectl ovo radi ispravno samo ako vam RBAC dopušta da vidite sve prostore na klasteru, a u velikim klasterima nemaju svi takve dozvole. Dakle, odgovaramo: za OC to uopće nije problem i on će u takvoj situaciji lako izraditi potpuni popis. Upravo te male stvari čine korporativnu orijentaciju Openshifta i dobru skalabilnost ove platforme u smislu korisnika i aplikacija
2. ODO - poboljšana verzija kubectla za programere
Još jedan primjer poboljšanja Red Hat OpenShift-a u odnosu na Kubernetes je uslužni program ODO naredbenog retka. Dizajniran je za programere i omogućuje vam brzu implementaciju lokalnog koda na udaljeni OpenShift klaster. Također može pojednostaviti interne procese za trenutnu sinkronizaciju svih promjena koda u spremnike na udaljenom OpenShift klasteru bez potrebe za ponovnom izgradnjom, registracijom i ponovnim postavljanjem slika.
Pogledajmo kako OC i ODO olakšavaju rad s kontejnerima i Kubernetesom.
Usporedite samo nekoliko tokova rada kada su izgrađeni na temelju kubectla i kada se koriste OC ili ODO.
• Implementacija koda na OpenShiftu za one koji ne govore YAML:
Kubernetes / kubectl
$>git klon
1- Napravite Dockerfile koji gradi sliku iz koda
-----
FROM čvor
RADNI DIR /usr/src/app
KOPIRAJ paket*.json ./
KOPIRAJ index.js ./
KOPIRAJ ./app ./app
POKRENI npm instalaciju
IZLOŽENOST 3000
CMD [ “npm”, “start” ] ————–
2- Gradimo imidž
$>podman build...
3- Prijavite se u registar
podman prijava...
4- Postavite sliku u registar
podman gurati
5- Stvorite yaml datoteke za implementaciju aplikacije (deployment.yaml, service.yaml, ingress.yaml) - ovo je apsolutni minimum
6- Implementirajte datoteke manifesta:
Kubectl primijeniti -f .
OpenShift/oc
$> oc nova aplikacija
OpenShift/odo
$>git klon
$> odo stvori komponentu nodejs myapp
$>odo guranje
• Promjena konteksta: promijenite radni prostor imena ili radni klaster.
Kubernetes / kubectl
1- Stvorite kontekst u kubeconfig za projekt “myproject”
2- kubectl set-context…
OpenShift/oc
oc projekt “mojprojekt”
Kontrola kvalitete: “Ovdje se pojavila jedna zanimljiva značajka, još uvijek u alfa verziji. Možda ga možemo staviti u proizvodnju?”
Zamislite da sjedite u trkaćem automobilu i da vam kažu: "Ugradili smo novu vrstu kočnica i, da budem iskren, njihova pouzdanost još nije u redu... Ali ne brinite, aktivno ćemo ih poboljšavati tijekom tečaja prvenstva.” Kako vam se sviđa ova perspektiva? Mi u Red Hatu nekako nismo baš sretni. 🙂
Stoga pokušavamo odgoditi alfa verzije dok ne budu dovoljno zrele i dok ne obavimo temeljito testiranje u borbi i smatramo da su sigurne za upotrebu. Obično sve prvo prolazi kroz fazu Dev Preview, a zatim kroz
Zašto je to? Jer, kao i kod razvoja bilo kojeg drugog softvera, sve početne ideje u Kubernetesu ne dolaze do konačnog izdanja. Ili ga dosegnu i čak zadrže predviđenu funkcionalnost, ali im se implementacija radikalno razlikuje od one u alfa verziji. Uz tisuće i tisuće korisnika Red Hata koji koriste OpenShift za podršku kritičnim radnim opterećenjima, poseban naglasak stavljamo na stabilnost naše platforme i dugoročnu podršku.
Red Hat je predan čestom izdavanju OpenShifta i ažuriranju verzije Kubernetesa koja dolazi s njim. Na primjer, trenutno GA izdanje OpenShift 4.3 u vrijeme pisanja ovog teksta uključuje Kubernetes 1.16, koji je samo jednu jedinicu iza gornje verzije Kubernetesa pod brojem 1.17. Stoga nastojimo klijentu pružiti Kubernetes poslovne klase i osigurati dodatnu kontrolu kvalitete dok izdajemo nove verzije OpenShifta.
Softverski popravci: “Postojala je rupa u verziji Kubernetesa koju imamo u proizvodnji. I možete ga zatvoriti samo ažuriranjem tri verzije. Ili postoje neke opcije?
U projektu otvorenog koda Kubernetes, softverski popravci obično se objavljuju kao dio sljedećeg izdanja, ponekad pokrivajući jedno ili dva prethodna izdanja, dajući pokrivenost za samo 6 mjeseci.
Red Hat se ponosi objavljivanjem kritičnih popravaka ranije od ostalih i pružanjem podrške mnogo dulje. Uzmimo za primjer ranjivost Kubernetes eskalacije privilegija (
S druge strane,
Kako OpenShift i Red Hat pokreću Kubernetes naprijed
Red Hat je drugi najveći softverski doprinos projektu Kubernetes otvorenog koda, iza samo Googlea, s 3 od 5 najplodnijih programera koji dolaze iz Red Hata. Još jedna malo poznata činjenica: mnoge kritične funkcije pojavile su se u Kubernetesu upravo na inicijativu Red Hata, posebice, kao što su:
- RBAC. Kubernetes nije imao RBAC funkcije (ClusterRole, ClusterRoleBinding) sve dok ih inženjeri Red Hata nisu odlučili implementirati kao dio same platforme, a ne kao dodatnu OpenShift funkcionalnost. Boji li se Red Hat poboljšati Kubernetes? Naravno da ne, jer Red Hat striktno slijedi načela otvorenog koda i ne igra Open Core igre. Poboljšanja i inovacije koje pokreću razvojne zajednice, a ne one vlasničke, održivije su i šire prihvaćene, što je u skladu s našim temeljnim ciljem da softver otvorenog koda učinimo korisnijim našim klijentima.
- Sigurnosna pravila za mahune (Pod Security Policies). Ovaj koncept sigurnog pokretanja aplikacija unutar mahuna izvorno je implementiran u OpenShiftu pod nazivom SCC (Security Context Constraints). I kao u prethodnom primjeru, Red Hat je odlučio uvesti ove razvoje u otvoreni Kubernetes projekt kako bi ih svi mogli koristiti.
Ovaj niz primjera mogao bi se nastaviti, ali samo smo htjeli pokazati da je Red Hat stvarno predan razvoju Kubernetesa i da ga učini boljim za sve.
Jasno je da je OpenShift Kubernetes. Koje su razlike? 🙂
Nadamo se da ste čitanjem do sada shvatili da je Kubernetes ključna komponenta OpenShift-a. Glavni, ali daleko od jedinog. Drugim riječima, jednostavno instaliranje Kubernetesa neće vam dati platformu poslovne klase. Morat ćete dodati autentifikaciju, umrežavanje, sigurnost, nadzor, upravljanje zapisima i više. Osim toga, morat ćete napraviti neke teške odluke iz velikog broja dostupnih alata (da biste cijenili raznolikost ekosustava, samo pogledajte
Ali u slučaju OpenShift-a, Red Hat preuzima sve te složenosti na sebe i jednostavno vam daje funkcionalno cjelovitu platformu, koja uključuje ne samo sam Kubernetes, već i cijeli skup potrebnih alata otvorenog koda koji Kubernetes pretvaraju u pravu poduzeću. rješenje koje možete odmah i potpuno mirno pustiti u proizvodnju. I naravno, ako imate neke svoje vlastite tehnološke skupove, tada možete integrirati OpenShift u postojeća rješenja.
Pogledajte gornju sliku: sve što je izvan Kubernetes pravokutnika je mjesto gdje Red Hat dodaje funkcionalnost koju Kubernetes nema, kako kažu, po dizajnu. A sada ćemo pogledati glavna od ovih područja.
1. Robusni OS kao baza: RHEL CoreOS ili RHEL
Red Hat je vodeći pružatelj distribucija Linuxa za poslovne aplikacije već više od 20 godina. Naše akumulirano i stalno ažurirano iskustvo u ovom području omogućuje nam da ponudimo istinski pouzdanu i pouzdanu osnovu za industrijski rad kontejnera. RHEL CoreOS koristi istu jezgru kao RHEL, ali je optimiziran prvenstveno za zadatke kao što su pokretanje spremnika i pokretanje Kubernetes klastera: njegova smanjena veličina i nepromjenjivost olakšavaju postavljanje klastera, automatsko skaliranje, postavljanje zakrpa itd. Sve te značajke čine idealan temelj za pružanje istog korisničkog iskustva s OpenShift-om u širokom rasponu računalnih okruženja, od golog metala do privatnog i javnog oblaka.
2. Automatizacija IT operacija
Automatizacija instalacijskih procesa i operacija dan-4 (to jest, svakodnevne operacije) je jaka strana OpenShift-a, što olakšava administraciju, ažuriranje i održavanje performansi kontejnerske platforme na najvišoj razini. To se postiže podrškom za Kubernetes operatore na razini jezgre OpenShift XNUMX.
OpenShift 4 također je cijeli ekosustav rješenja temeljen na Kubernetes operatorima, razvijen od strane samog Red Hata i partnera trećih strana (vidi.
Integrirani OpenShift 4 katalog uključuje više od 180 Kubernetes operatora
3. Alati za razvojne programere
Od 2011. OpenShift je dostupan kao platforma PaaS (Platform-as-a-Service) koja uvelike olakšava život programerima, pomaže im da se usredotoče na kodiranje i nudi izvornu podršku za programske jezike kao što su Java, Node.js , PHP, Ruby, Python, Go, kao i usluge kontinuirane integracije i isporuke CI/CD, baze podataka itd. OpenShift 4 nudi
Za razliku od Kubernetesa, OpenShift 4 ima namjenski GUI (
Osim toga, OpenShift nudi skup alata za razvoj Codeready, koji posebno uključuje
Integrirani IDE kao servis za učinkovit razvoj na Kubernetes/OpenShift platformi
OpenShift nudi potpuni CI/CD sustav odmah po vađenju iz kutije, bilo temeljen na kontejnerskom Jenkinsu i dodatku
4. Alati za primjenu
OpenShift vam omogućuje implementaciju tradicionalnih aplikacija s praćenjem stanja i rješenja temeljenih na oblaku temeljenih na novim arhitekturama, kao što su mikroservisi ili serverless. Rješenje OpenShift Service Mesh dolazi odmah iz kutije s ključnim alatima za održavanje mikroservisa, kao što su Istio, Kiali i Jaeger. Zauzvrat, OpenShift Serverless rješenje uključuje ne samo Knative, već i alate poput Kede stvorene kao dio zajedničke inicijative s Microsoftom za pružanje Azure funkcija na OpenShift platformi.
Integrirano rješenje OpenShift ServiceMesh (Istio, Kiali, Jaeger) bit će korisno pri razvoju mikroservisa
Kako bi se premostio jaz između naslijeđenih aplikacija i spremnika, OpenShift sada omogućuje migraciju virtualnog stroja na platformu OpenShift pomoću izvorne virtualizacije spremnika (trenutačno u TechPreviewu), čineći hibridne aplikacije stvarnošću i olakšavajući njihovu migraciju između različitih oblaka, privatnih i javnih.
Windows 2019 Virtualni virtualni stroj koji radi na OpenShiftu putem izvorne virtualizacije spremnika (trenutačno u verziji tehničkog pregleda)
5. Alati za klastere
Svaka platforma poslovne klase mora imati usluge nadzora i centraliziranog zapisivanja, sigurnosne mehanizme, autentifikaciju i autorizaciju te alate za upravljanje mrežom. I OpenShift pruža sve to iz kutije, i sve je to 100% open source, uključujući rješenja kao što su ElasticSearch, Prometheus, Grafana. Sva ova rješenja dolaze s nadzornim pločama, metrikama i upozorenjima koja su već izgrađena i konfigurirana korištenjem opsežne Red Hatove stručnosti u praćenju klastera, što vam omogućuje da učinkovito kontrolirate i nadzirete svoje proizvodno okruženje od samog početka.
OpenShift također standardno dolazi s tako važnim stvarima za korporativne korisnike kao što je autentifikacija s ugrađenim oauth providerom, integracija s pružateljima vjerodajnica, uključujući LDAP, ActiveDirectory, OpenID Connect i još mnogo toga.
Unaprijed konfigurirana nadzorna ploča Grafana za nadzor OpenShift klastera
Preko 150 unaprijed konfiguriranih Prometheus metrika i upozorenja za nadgledanje OpenShift klastera
Da bi se nastavila
Bogata funkcionalnost rješenja i veliko iskustvo Red Hata na području Kubernetesa razlozi su zašto je OpenShift postigao dominantnu poziciju na tržištu, kao što je prikazano na slici ispod (pročitajte više
“Red Hat trenutno vodi na tržištu s udjelom od 44%.
Tvrtka ubire prednosti svoje prodajne strategije usmjerene na kupca, gdje prvo konzultira i obučava razvojne programere poduzeća, a zatim prelazi na monetizaciju kada poduzeće počne uvoditi spremnike u proizvodnju.”
(Izvor:
Nadamo se da ste uživali u ovom članku. U budućim postovima u ovoj seriji pobliže ćemo pogledati prednosti OpenShift-a u odnosu na Kubernetes u svakoj od ovdje raspravljanih kategorija.
Izvor: www.habr.com