OpenShift kao poslovna verzija Kubernetesa. Dio 1

“Koja je razlika između Kubernetesa i OpenShift-a?” – postavlja se ovo pitanje sa zavidnom doslednošću. Iako je u stvarnosti ovo kao da se pitate po čemu se automobil razlikuje od motora. Ako nastavimo analogiju, onda je automobil gotov proizvod, možete ga koristiti odmah, doslovno: uđite i idite. S druge strane, da bi vas motor negdje odveo, prvo ga morate dopuniti sa puno drugih stvari da biste u konačnici dobili isti automobil.

OpenShift kao poslovna verzija Kubernetesa. Dio 1

Stoga je Kubernetes motor oko kojeg se sklapa (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% certificiran Kubernetes, potpuno otvoren izvor i bez imalo vlasničke prirode. ukratko:
    • API klastera OpenShift je XNUMX% Kubernetes.
    • Ako kontejner radi na bilo kojem drugom Kubernetes sistemu, tada će se raditi na OpenShift-u bez ikakvih promjena. Nema potrebe za mijenjanjem aplikacija.
  • OpenShift ne samo da dodaje korisne karakteristike i funkcionalnost Kubernetesu. Poput automobila, OpenShift je izvan kutije, može se odmah staviti u proizvodnju i, kao što ćemo pokazati u nastavku, čini život programera mnogo lakšim. Zato je OpenShift ujedinjen u dvije osobe. To je i uspješna i dobro poznata PaaS platforma poslovne klase iz perspektive programera. A u isto vrijeme, to je super-pouzdano rješenje Container-as-a-Service sa stanovišta industrijskog rada.

OpenShift je Kubernetes sa 100% CNCF certifikatom

OpenShift je zasnovan na Kubernetes certificiran. Stoga, nakon odgovarajuće obuke, korisnici su zadivljeni snagom kubectl-a. A oni koji su prešli na OpenShift sa Kubernetes klastera često kažu kako im se zaista sviđa da nakon preusmjeravanja kubeconfiga na OpenShift klaster, sve postojeće skripte rade besprijekorno.

Verovatno ste čuli za OpenShiftov uslužni program komandne linije koji se zove OC. Potpuno je kompatibilan sa komandama sa kubectl-om, plus nudi nekoliko korisnih pomoćnika koji će vam dobro doći prilikom obavljanja brojnih zadataka. Ali prvo, malo više o kompatibilnosti OC-a i kubectl-a:

kubectl komande
OC Teams

kubectl dobiti pods
oc dobiti mahune

kubectl get namespaces
oc dobiti prostore imena

kubectl kreirati -f deployment.yaml
oc kreirati -f deployment.yaml

Evo kako izgledaju rezultati korištenja kubectl-a na OpenShift API-ju:

• kubectl get pods – vraća podove prema očekivanjima.

OpenShift kao poslovna verzija Kubernetesa. Dio 1

• kubectl get namespaces – vraća prostore imena prema očekivanjima.

OpenShift kao poslovna verzija Kubernetesa. Dio 1
Naredba kubectl create -f mydeployment.yaml kreira kubernetes resurse baš kao na bilo kojoj drugoj Kubernetes platformi, kao što je prikazano u videu ispod:


Drugim riječima, svi Kubernetes API-ji su u potpunosti dostupni u OpenShift-u uz održavanje 100% kompatibilnosti. Zato OpenShift je priznat kao certificirana Kubernetes platforma od strane Cloud Native Computing Foundation (CNCF). 

OpenShift dodaje korisne funkcije Kubernetesu

Kubernetes API-ji su 100% dostupni u OpenShift-u, ali standardnom Kubernetes uslužnom programu kubectl očito nedostaje funkcionalnost i praktičnost. Zbog toga je Red Hat dodao korisne funkcije i alate komandne linije u Kubernetes, kao što su OC (skraćeno od OpenShift klijent) i ODO (OpenShift DO, ovaj uslužni program je namenjen programerima).

1. OC uslužni program - moćnija i praktičnija verzija Kubectl-a

Na primjer, za razliku od kubectl-a, on vam omogućava da kreirate nove prostore imena i lako mijenjate kontekste, a također nudi niz korisnih komandi za programere, kao što je pravljenje slika kontejnera i implementacija aplikacija direktno iz izvornog koda ili binarnih datoteka (izvor-slika, s2i).

Pogledajmo primjere kako ugrađeni pomoćnici i napredna funkcionalnost OC uslužnog programa pomažu u pojednostavljenju svakodnevnog rada.

Prvi primjer je upravljanje prostorom imena. Svaki Kubernetes klaster uvijek ima više imenskih prostora. Obično se koriste za kreiranje razvojnih i proizvodnih okruženja, ali se mogu koristiti i da, na primjer, svakom programeru daju lični sandbox. U praksi, ovo rezultira time da programer mora često da se prebacuje između prostora imena, pošto se kubectl izvodi u kontekstu trenutnog prostora. Stoga, u slučaju kubectl-a, ljudi aktivno koriste pomoćne skripte za ovo. Ali kada koristite OC, da biste se prebacili na željeni prostor, samo recite “oc project namespace”.

Ne sjećate se kako se zove prostor imena koji vam je potreban? Nema problema, samo upišite “oc get projects” da prikažete potpunu listu. Skeptično se pitate kako će ovo funkcionirati ako imate pristup samo ograničenom podskupu imenskih prostora u klasteru? Pa, zato što kubectl to radi ispravno samo ako vam RBAC dozvoljava da vidite sve prostore na klasteru, a u velikim klasterima nisu svima date takve dozvole. Dakle, odgovaramo: za OC to uopće nije problem i lako će napraviti kompletnu listu u takvoj situaciji. Upravo te male stvari čine korporativnu orijentaciju Openshifta i dobru skalabilnost ove platforme u smislu korisnika i aplikacija

2. ODO - poboljšana verzija kubectl-a za programere

Još jedan primjer poboljšanja Red Hat OpenShift-a u odnosu na Kubernetes je uslužni program ODO komandne linije. Dizajniran je za programere i omogućava vam brzo postavljanje lokalnog koda na udaljeni OpenShift klaster. Takođe može da pojednostavi interne procese za trenutnu sinhronizaciju svih promena koda sa kontejnerima na udaljenom OpenShift klasteru bez potrebe za ponovnom izgradnjom, registracijom i ponovnim postavljanjem slika.

Pogledajmo kako OC i ODO olakšavaju rad sa kontejnerima i Kubernetes-om.

Samo uporedite nekoliko tokova rada kada su izgrađeni na bazi kubectl-a i kada se koriste OC ili ODO.

• Postavljanje koda na OpenShift za one koji ne govore YAML:

Kubernetes/kubectl
$>git klon github.com/sclorg/nodejs-ex.git
1- Kreirajte Dockerfile koji gradi sliku iz koda
-----
FROM čvor
WORKDIR /usr/src/app
KOPIRAJ paket*.json ./
KOPIRAJ index.js ./
KOPIRAJ ./app ./app
POKRENI npm instalaciju
EXPOSE 3000
CMD [ “npm”, “start” ] ————–
2- Gradimo imidž
$>podman build...
3- Prijavite se u registar
podman prijava...
4- Postavite sliku u registar
podman push
5- Kreirajte yaml datoteke za implementaciju aplikacije (deployment.yaml, service.yaml, ingress.yaml) - ovo je apsolutni minimum
6- Postavite fajlove manifesta:
Kubectl primijeniti -f .

OpenShift/oc
$> oc nova aplikacija github.com/sclorg/nodejs-ex.git – naziv naše_aplikacije

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

• Prebacivanje konteksta: promijenite radni nazivni prostor ili radni klaster.

Kubernetes/kubectl
1- Kreirajte kontekst u kubeconfig za projekat “myproject”
2- kubectl set-context…

OpenShift/oc
oc projekat “myproject”

Kontrola kvaliteta: „Ovdje se pojavila jedna zanimljiva karakteristika, 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 budemo iskreni, njihova pouzdanost još nije u redu... Ali ne brinite, aktivno ćemo ih poboljšati tokom staze prvenstva.” Kako vam se sviđa ova perspektiva? Mi u Red Hatu nekako nismo baš sretni. 🙂

Stoga pokušavamo da zadržimo alfa verzije dok ne budu dovoljno zrele i dok ne obavimo temeljno testiranje u borbi i smatramo da su bezbedne za upotrebu. Obično sve prvo prođe kroz Dev Preview fazu, a zatim kroz Tech Preview i tek onda izlazi kao javno saopštenje Opća dostupnost (GA), koji je već toliko stabilan da je pogodan za proizvodnju.

Žašto je to? Jer, kao i kod razvoja bilo kog drugog softvera, ne dolaze sve početne ideje u Kubernetesu do konačnog izdanja. Ili ga dostignu i čak zadrže predviđenu funkcionalnost, ali se njihova implementacija radikalno razlikuje od one u alfa verziji. Sa hiljadama i hiljadama Red Hat kupaca 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 posvećen čestom izdavanju OpenShift-a 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 jedna jedinica iza upstream verzije Kubernetesa pod brojem 1.17. Stoga se trudimo da kupcu ponudimo Kubernetes poslovne klase i pružimo dodatnu kontrolu kvaliteta kako objavljujemo nove verzije OpenShift-a.

Softverski popravci: „Postojala je rupa u verziji Kubernetesa koju imamo u proizvodnji. A možete ga zatvoriti samo ažuriranjem tri verzije. Ili postoje neke opcije?

U projektu otvorenog koda Kubernetes, softverski popravci se obično objavljuju kao dio sljedećeg izdanja, ponekad pokrivajući jedno ili dva prethodna prekretnica izdanja, dajući pokrivenost unatrag samo 6 mjeseci.

Red Hat se ponosi time što objavljuje kritične popravke ranije od drugih i pruža podršku mnogo duže. Uzmimo za primjer ranjivost Kubernetes eskalacije privilegija (CVE-2018-1002105): otkriven je u Kubernetes 1.11, a popravci za prethodna izdanja objavljeni su samo do verzije 1.10.11, ostavljajući ovo u rupi u svim prethodnim izdanjima Kubernetesa, od 1.x do 1.9.

Zauzvrat, Red Hat je zakrpio OpenShift nazad na verziju 3.2 (Kubernetes 1.2 je tu), snima devet OpenShift izdanja i jasno pokazuje brigu za kupce (više detalja ovdje).

Kako OpenShift i Red Hat pokreću Kubernetes naprijed

Red Hat je drugi najveći softver koji doprinosi projektu otvorenog koda Kubernetes, iza samo Googlea, sa 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, posebno, kao što su:

  • RBAC. Kubernetes nije imao RBAC funkcije (ClusterRole, ClusterRoleBinding) sve dok Red Hat inženjeri nisu odlučili da ih implementiraju kao dio same platforme, a ne kao dodatnu OpenShift funkcionalnost. Plaši li se Red Hat poboljšati Kubernetes? Naravno da ne, jer Red Hat striktno slijedi principe otvorenog koda i ne igra Open Core igre. Poboljšanja i inovacije koje pokreću razvojne zajednice, a ne vlasničke, su održivije i šire prihvaćene, što je u skladu s našim osnovnim ciljem da softver otvorenog koda učinimo korisnijim našim klijentima.
  • Sigurnosne politike za podove (Pod Security Policies). Ovaj koncept sigurnog pokretanja aplikacija unutar podova prvobitno je implementiran u OpenShift pod nazivom SCC (Security Context Constraints). I kao u prethodnom primjeru, Red Hat je odlučio da ove razvojne aktivnosti uvede u otvoreni Kubernetes projekat kako bi ih svi mogli koristiti.

Ovaj niz primjera mogao bi se nastaviti, ali samo smo željeli pokazati da je Red Hat zaista posvećen razvoju Kubernetesa i da ga učini boljim za sve.

Jasno je da je OpenShift Kubernetes. Koje su razlike? 🙂

Nadamo se da ste čitajući ovo daleko shvatili da je Kubernetes osnovna 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 dnevnikom i još mnogo toga. Osim toga, morat ćete napraviti neke teške izbore iz velikog broja dostupnih alata (da biste cijenili raznolikost ekosistema, samo pogledajte CNCF grafikon) i nekako osiguravaju konzistentnost i koherentnost tako da rade kao jedno. Osim toga, morat ćete redovno izvoditi ažuriranja i regresijsko testiranje kad god se objavi nova verzija bilo koje komponente koju koristite. Odnosno, osim kreiranja i održavanja same platforme, morat ćete se baviti i svim ovim softverom. Malo je vjerovatno da će ostati mnogo vremena za rješavanje poslovnih problema i postizanje konkurentskih prednosti.

Ali u slučaju OpenShift-a, Red Hat preuzima sve ove složenosti na sebe i jednostavno vam daje funkcionalno kompletnu platformu, koja uključuje ne samo sam Kubernetes, već i cijeli skup potrebnih alata otvorenog koda koji pretvaraju Kubernetes u pravu klasu preduzeća. rješenje koje možete odmah i potpuno mirno pustiti u proizvodnju. I naravno, ako imate neke od vlastitih tehnoloških stekova, onda možete integrirati OpenShift u postojeća rješenja.

OpenShift kao poslovna verzija Kubernetesa. Dio 1
OpenShift je pametna Kubernetes platforma

Pogledajte gornju sliku: sve što je izvan Kubernetes pravougaonika 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. Robustan OS kao osnova: RHEL CoreOS ili RHEL

Red Hat je vodeći dobavljač Linux distribucija za poslovne kritične aplikacije više od 20 godina. Naše akumulirano i stalno ažurirano iskustvo u ovoj oblasti omogućava nam da ponudimo zaista pouzdanu i pouzdanu osnovu za industrijski rad kontejnera. RHEL CoreOS koristi isto jezgro kao RHEL, ali je optimiziran prvenstveno za zadatke kao što su pokretanje kontejnera i pokretanje Kubernetes klastera: njegova smanjena veličina i nepromjenjivost olakšavaju postavljanje klastera, automatsko skaliranje, postavljanje zakrpa, itd. Sve ove karakteristike ga čine idealna osnova za pružanje istog korisničkog iskustva sa OpenShift-om u širokom spektru računarskih okruženja, od golog metala do privatnog i javnog oblaka.

2. Automatizacija IT operacija

Automatizacija instalacionih procesa i operacija dana 4 (to jest, svakodnevne operacije) je jača strana OpenShift-a, koja čini mnogo lakšim administriranje, ažuriranje i održavanje performansi platforme kontejnera na najvišem nivou. Ovo se postiže podrškom za Kubernetes operatere na nivou jezgra OpenShift XNUMX.

OpenShift 4 je takođe čitav ekosistem rešenja zasnovanih na Kubernetes operaterima, koje je razvio i sam Red Hat i partneri treće strane (vidi. direktorij operatera Red Hat, ili prodavnica operatera operatorhub.io, koju je kreirao Red Hat za programere trećih strana).

OpenShift kao poslovna verzija Kubernetesa. Dio 1
Integrisani OpenShift 4 katalog uključuje više od 180 Kubernetes operatera

3. Alati za programere

Od 2011. godine OpenShift je dostupan kao PaaS (Platform-as-a-Service) platforma koja olakšava život programerima, pomaže im da se fokusiraju na kodiranje i nudi izvornu podršku za programske jezike kao što su Java, Node.js , PHP, Ruby, Python, Go, kao i CI/CD usluge kontinuirane integracije i isporuke, baze podataka itd. OpenShift 4 nudi opsežan katalog, koji uključuje više od 100 usluga baziranih na Kubernetes operaterima koje su razvili Red Hat i naši partneri.

Za razliku od Kubernetesa, OpenShift 4 ima namjenski GUI (Konzola za programere), koji pomaže programerima da bez napora implementiraju aplikacije iz različitih izvora (git, eksterni registri, Dockerfile, itd.) u svoje imenske prostore i jasno vizualizira odnose između komponenti aplikacije.

OpenShift kao poslovna verzija Kubernetesa. Dio 1
Konzola za programere pruža jasan pregled komponenti aplikacije i čini rad sa Kubernetes lakim

Osim toga, OpenShift nudi skup Codeready razvojnih alata, koji posebno uključuje Codeready Workspaces, potpuno kontejnerski IDE sa web interfejsom koji radi direktno na vrhu OpenShift-a i implementira pristup IDE-kao-usluge. S druge strane, za one koji žele da rade striktno u lokalnom režimu, tu su Codeready Containers, potpuno funkcionalna verzija OpenShift 4 koja se može postaviti na laptop.

OpenShift kao poslovna verzija Kubernetesa. Dio 1
Integrisan IDE kao servis za efikasan razvoj na Kubernetes/OpenShift platformi

OpenShift nudi kompletan CI/CD sistem odmah iz kutije, bilo na osnovu Jenkins-a u kontejnerima i dodatka DSL za rad sa cevovodima ili Kubernetes orijentisanim CI/CD sistemom Tecton (trenutno u verziji Tech preview). Oba ova rješenja se u potpunosti integriraju s OpenShift konzolom, omogućavajući vam da pokrenete okidače cjevovoda, pregledate implementacije, dnevnike i još mnogo toga.

4. Aplikacioni alati

OpenShift vam omogućava da implementirate i tradicionalne aplikacije sa statusom i rješenja zasnovana na oblaku zasnovana na novim arhitekturama, kao što su mikroservis ili bez servera. OpenShift Service Mesh rješenje 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 Keda stvorene kao dio zajedničke inicijative s Microsoftom za pružanje Azure funkcija na OpenShift platformi.

OpenShift kao poslovna verzija Kubernetesa. Dio 1
Integrirano rješenje OpenShift ServiceMesh (Istio, Kiali, Jaeger) bit će korisno pri razvoju mikroservisa

Kako bi premostio jaz između naslijeđenih aplikacija i kontejnera, OpenShift sada omogućava migraciju virtuelnih mašina na OpenShift platformu koristeći Container Native Virtualization (trenutno u TechPreviewu), čineći hibridne aplikacije stvarnošću i olakšavajući njihovu migraciju između različitih oblaka, privatnih i javnih.

OpenShift kao poslovna verzija Kubernetesa. Dio 1
Windows 2019 Virtuelna virtuelna mašina koja radi na OpenShift preko Container Native Virtualization (trenutno u verziji Tech preview)

5. Alati za klastere

Svaka platforma poslovne klase mora imati usluge nadzora i centraliziranog evidentiranja, sigurnosne mehanizme, autentifikaciju i autorizaciju i alate za upravljanje mrežom. A OpenShift pruža sve ovo iz kutije, i sve je 100% otvorenog koda, uključujući rješenja kao što su ElasticSearch, Prometheus, Grafana. Sva ova rješenja dolaze s kontrolnim pločama, metričkim podacima i upozorenjima koji su već izgrađeni i konfigurisani koristeći Red Hat-ovu opsežnu ekspertizu za praćenje klastera, omogućavajući vam da efikasno kontrolišete i nadgledate svoje proizvodno okruženje od samog početka.

OpenShift takođe standardno dolazi sa tako važnim stvarima za korporativne klijente kao što je autentifikacija sa ugrađenim oauth provajderom, integracija sa dobavljačima akreditiva, uključujući LDAP, ActiveDirectory, OpenID Connect i još mnogo toga.

OpenShift kao poslovna verzija Kubernetesa. Dio 1
Unaprijed konfigurirana Grafana kontrolna ploča za OpenShift nadzor klastera

OpenShift kao poslovna verzija Kubernetesa. Dio 1
Preko 150 unaprijed konfiguriranih Prometheus metrika i upozorenja za OpenShift praćenje klastera

Nastaviti

Bogata funkcionalnost rješenja i veliko iskustvo Red Hata na polju 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 ovdje).

OpenShift kao poslovna verzija Kubernetesa. Dio 1
“Red Hat trenutno vodi na tržištu sa 44% udjela.
Kompanija ubire prednosti svoje prodajne strategije usmjerene na kupca, gdje prvo konsultuje i obučava programere preduzeća, a zatim prelazi na monetizaciju kako preduzeće počinje da postavlja kontejnere u proizvodnju.”

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

Nadamo se da ste uživali u ovom članku. U budućim objavama u ovoj seriji, pobliže ćemo pogledati prednosti OpenShift-a u odnosu na Kubernetes u svakoj od kategorija o kojima se ovdje raspravlja.

izvor: www.habr.com

Dodajte komentar