Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Poso ena e ngotsoe hobane basebetsi ba rona ba bile le lipuisano tse ngata le bareki mabapi le nts'etsopele ea kopo ho Kubernetes le lintlha tsa nts'etsopele e joalo ho OpenShift.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Hangata re qala ka khopolo-taba ea hore Kubernetes ke Kubernetes feela, mme OpenShift e se e ntse e le sethala sa Kubernetes, joalo ka Microsoft AKS kapa Amazon EKS. E 'ngoe le e' ngoe ea liforomo tsena e na le melemo ea eona, e lebisitsoeng ho bamameli ba itseng. 'Me ka mor'a sena, moqoqo o fetoha ho bapisa matla le mefokolo ea liforomo tse itseng.

Ka kakaretso, re nahanne ho ngola poso ena ka sephetho se kang "Mamela, ha ho na taba hore na khoutu e tsamaisitsoe hokae, ho OpenShift kapa ho AKS, ho EKS, ho Kubernetes e itseng, kapa ho eng kapa eng e Kubernetes. (bakeng sa bokhutšoanyane ha re e bitse KUK) "Ho bonolo haholo, moo le mane."

Eaba re rera ho nka "Hello World" e bonolo ka ho fetisisa le ho sebelisa mohlala oa eona ho bontša se tloaelehileng le hore na phapang ke efe pakeng tsa KUC le Red Hat OpenShift Container Platform (kamora mona, OCP kapa OpenShift feela).

Leha ho le joalo, ha re ntse re ngola poso ena, re ile ra hlokomela hore re ne re tloaetse ho sebelisa OpenShift ka nako e telele hoo re neng re sa hlokomele hore na e se e hōlile joang 'me e fetohile sethala se tsotehang se ileng sa fetoha ho feta feela kabo ea Kubernetes. Re atisa ho nka kholo le bonolo ba OpenShift habobebe, 'me re lahleheloa ke pono ea bohlale ba eona.

Ka kakaretso, nako e se e fihlile ea pako e matla, 'me joale re tla bapisa mohato ka mohato ho bapisa "Hello World" ea rona ho KUK le OpenShift,' me re tla etsa sena ka mokhoa o hlakileng kamoo ho ka khonehang (hantle, ntle le ka linako tse ling ho bontša maikutlo a motho ka moqoqo). Haeba u thahasella maikutlo a ikemetseng tabeng ena, u ka e bala mona (EN). 'Me posong ena re tla khomarela lintlha le lintlha feela.

Lihlopha

Kahoo, "Hello World" ea rona e hloka lihlopha. Hang-hang re tla re "che" ho maru leha e le afe a sechaba, e le hore re se ke ra lefella li-server, li-registries, marang-rang, phetisetso ea data, joalo-joalo. Ka hona, re khetha sehlopha se bonolo sa node e le 'ngoe Minikube (bakeng sa KUK) le Lijana tse Loketseng tsa Khoutu (bakeng sa sehlopha sa OpenShift). Likhetho tsena ka bobeli li bonolo ho li kenya, empa li tla hloka lisebelisoa tse ngata ho laptop ea hau.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Kopano ka KUK-e

Joale a re eeng.

Mohato oa 1 - ho aha setšoantšo sa rona sa setshelo

Ha re qaleng ka ho tsamaisa "Hello World" ho minikube. Ho etsa sena o tla hloka:

  1. 1. Docker e kentsoe.
  2. 2. Git e kentsoe.
  3. 3. E kentse Maven (ha e le hantle, morero ona o sebelisa binary ea mvnw, kahoo u ka e etsa ntle le eona).
  4. 4. Ha e le hantle, mohloli ka boeona, ke hore. klone ea polokelo github.com/gcolman/quarkus-hello-world.git

Mohato oa pele ke ho theha morero oa Quarkus. Se ke oa tšoha haeba ha o so ka oa sebetsa le Quarkus.io - ho bonolo. U khetha feela likarolo tseo u batlang ho li sebelisa morerong (RestEasy, Hibernate, Amazon SQS, Camel, joalo-joalo), ebe Quarkus ka boeona, ntle le karolo ea hau, e hlophisa maven archetype mme e beha tsohle ho github. Ka mantsoe a mang, ho tobetsa konopo e le 'ngoe feela ebe u qetile. Ke ka lebaka leo re ratang Quarkus.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Tsela e bonolo ka ho fetisisa ea ho aha "Hello World" ea rona ho setšoantšo sa setshelo ke ho sebelisa li-extensions tsa quarkus-maven bakeng sa Docker, tse tla etsa mosebetsi oohle o hlokahalang. Ka ho fihla ha Quarkus, sena se se se le bonolo ebile se le bonolo: eketsa katoloso ea sets'oants'o sa sets'oants'o mme o ka etsa litšoantšo o sebelisa litaelo tsa maven.

./mvnw quarkus:add-extension -Dextensions=”container-image-docker”

Qetellong, re theha setšoantšo sa rona re sebelisa Maven. Ka lebaka leo, khoutu ea rona ea mohloli e fetoha sets'oants'o sa sets'oants'o se seng se ntse se ka tsamaisoa sebakeng sa nako ea ho sebetsa ea setshelo.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

./mvnw -X clean package -Dquarkus.container-image.build=true

Ke phetho, joale o ka qala setshelo ka taelo ea docker, o etsa 'mapa oa ts'ebeletso ea rona ho port 8080 e le hore e ka fihlelleha.

docker run -i — rm -p 8080:8080 gcolman/quarkus-hello-world

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Kamora hore mohlala oa setshelo o qale, se setseng ke ho sheba ka taelo ea curl hore ts'ebeletso ea rona e ntse e sebetsa:

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Kahoo ntho e 'ngoe le e' ngoe e sebetsa 'me e ne e le bonolo ebile e le bonolo.

Mohato oa 2 - romella setshelo sa rona sebakeng sa polokelo ea litšoantšo

Hajoale, setšoantšo seo re se entseng se bolokiloe sebakeng sa heno, polokelong ea rona ea lehae. Haeba re batla ho sebelisa setšoantšo sena sebakeng sa rona sa COOK, se tlameha ho beoa sebakeng se seng sa polokelo. Kubernetes ha e na likarolo tse joalo, kahoo re tla sebelisa dockerhub. Hobane, pele, ke mahala, 'me ea bobeli, (hoo e batlang e le) bohle ba e etsa.

Sena le sona se bonolo haholo, 'me sohle seo u se hlokang ke ak'haonte ea dockerhub.

Kahoo, re kenya dockerhub mme re romella setšoantšo sa rona moo.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Mohato oa 3 - qala Kubernetes

Ho na le mekhoa e mengata ea ho bokella tlhophiso ea kubernetes ho tsamaisa "Hello World", empa re tla sebelisa tse bonolo ho tsona, ke tsela eo re leng ka eona ...

Taba ea pele, ha re qaleng sehlopha sa minikube:

minikube start

Mohato oa 4 - sebelisa setšoantšo sa rona sa setshelo

Joale re hloka ho fetolela khoutu ea rona le setšoantšo sa setshelo hore e be litlhophiso tsa kubernetes. Ka mantsoe a mang, re hloka tlhaloso ea pod le deployment e supang setšoantšo sa setshelo sa rona ho dockerhub. E 'ngoe ea litsela tse bonolo ka ho fetisisa tsa ho etsa sena ke ho tsamaisa taelo ea "deployment" e bontšang setšoantšo sa rona:

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

kubectl create deployment hello-quarkus — image =gcolman/quarkus-hello-world:1.0.0-SNAPSHOT

Ka taelo ena re ile ra bolella COO ea rona hore e thehe tlhophiso ea phepelo, e lokelang ho ba le lintlha tsa pod bakeng sa setšoantšo sa setshelo sa rona. Taelo ena e tla sebelisa tlhophiso ena ho sehlopha sa rona sa minikube, 'me e thehe phepelo e tla khoasolla setšoantšo sa setshelo sa rona ebe e tsebisa pod ka har'a sehlopha.

Mohato oa 5 - bula monyetla oa ho fumana litšebeletso tsa rona

Kaha joale re na le setšoantšo sa setshelo se kentsoeng, ke nako ea ho nahana ka mokhoa oa ho lokisa phihlello ea kantle ho ts'ebeletso ena ea Phomolo, eo, ha e le hantle, e hlophisitsoeng ka khoutu ea rona.

Ho na le mekhoa e mengata mona. Mohlala, o ka sebelisa taelo ea pepenene ho iketsetsa likarolo tse loketseng tsa Kubernetes, joalo ka lits'ebeletso le lintlha tsa ho qetela. Ha e le hantle, sena ke seo re tla se etsa ka ho phethahatsa taelo ea pepenene bakeng sa ntho ea rona ea ho romelloa:

kubectl expose deployment hello-quarkus — type=NodePort — port=8080

Ha re nke nakoana ho sheba khetho ea "-type" ea taelo ea pepenene.

Ha re pepesa le ho theha likarolo tse hlokahalang bakeng sa ho tsamaisa tšebeletso ea rona, rona, har'a lintho tse ling, re hloka ho khona ho hokahanya ho tsoa ka ntle ho tšebeletso ea hello-quarkus, e lutseng ka har'a marang-rang a rona a hlalositsoeng ke software. Le parameter mofuta e re lumella ho theha le ho hokahanya lintho tse kang li-load balancers ho tsamaisa sephethephethe ho ea marang-rang ana.

Ka mohlala, ka ho ngola mofuta=Moroalo-kakaretso, re fana ka mokhoa o itekanetseng oa ho leka-lekanya mojaro marung a sechaba ho hokela ho sehlopha sa rona sa Kubernetes. Sena, ehlile, se setle, empa o hloka ho utloisisa hore tlhophiso e joalo e tla tlamelloa ka thata lerung le itseng la sechaba mme ho tla ba thata ho fetisa lipakeng tsa maemo a Kubernetes libakeng tse fapaneng.

Mohlala oa rona mofuta=NodePort, ke hore, tšebeletso ea rona e fumanoa ka aterese ea IP ea node le nomoro ea boema-kepe. Khetho ena e u lumella hore u se ke ua sebelisa maru leha e le afe a sechaba, empa e hloka mehato e mengata e eketsehileng. Taba ea mantlha, o hloka sekala sa hau sa mojaro, kahoo re tla tsamaisa NGINX load balancer sehlopheng sa rona.

Mohato oa 6 - kenya mochine o lekanyang mojaro

minikube e na le mesebetsi e mengata ea sethala e etsang hore ho be bonolo ho theha likarolo tse fumanehang kantle, joalo ka balaoli ba ingress. Minikube e tla e kopantsoe le molaoli oa ingress oa Nginx, 'me sohle seo re lokelang ho se etsa ke ho e nolofalletsa le ho e hlophisa.

minikube addons enable ingress

Joale re tla theha "Nginx ingress controller" ka taelo e le 'ngoe feela, e tla sebetsa ka har'a sehlopha sa rona sa minikube:

ingress-nginx-controller-69ccf5d9d8-j5gs9 1/1 Running 1 33m

Mohato oa 7 - Ho theha ingress

Hona joale re hloka ho lokisa Nginx ingress controller e le hore e amohele likopo tsa hello-quarkus.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

'Me qetellong, re hloka ho sebelisa tlhophiso ena.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

kubectl apply -f ingress.yml

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Kaha re etsa tsena tsohle komporong ea rona, re kenyelletsa aterese ea IP ea node ho file / joalo-joalo/ hosts ho tsamaisa likopo tsa http ho minikube ea rona ho NGINX load balancer.

192.168.99.100 hello-quarkus.info

Ke eona, joale ts'ebeletso ea rona ea minikube e fumaneha kantle ho molaoli oa Nginx ingress.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Ho ne ho le bonolo, na? Kapa ha ho joalo?

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

E sebetsa ho OpenShift (Code Ready Containers)

Joale ha re boneng hore na sena sohle se etsoa joang ho Red Hat OpenShift Container Platform (OCP).

Joalo ka minikube, re khetha moralo o le mong oa sehlopha sa OpenShift ka sebopeho sa Code Ready Containers (CRC). Pejana, e ne e bitsoa minishift mme e ne e ipapisitse le projeke ea OpenShift Origin, empa joale e se e le CRC mme e hahiloe ho Red Hat's OpenShift Container Platform.

Ka masoabi, mona re re: "OpenShift e ntle haholo!"

Qalong, re ne re nahana ho ngola hore nts'etsopele ho OpenShift ha e fapane le nts'etsopele ea Kubernetes. 'Me ha e le hantle ke kamoo ho leng kateng. Empa ha re ntse re ngola poso ena, re ile ra hopola hore na u tlameha ho etsa metsamao e mengata hakae ha u sena OpenShift, ke ka lebaka leo, hape, e leng ntho e ntle. Rea e rata ha ntho e 'ngoe le e' ngoe e etsoa habonolo, 'me mohlala oa rona o bonolo hakaakang ho o sebelisa le ho sebelisa OpenShift ha o bapisoa le minikube ke oona o re susumelitseng ho ngola poso ena.

Ha re feteleng ka tšebetso 'me re bone seo re lokelang ho se etsa.

Kahoo, mohlaleng oa minikube, re qalile ka Docker ... Ema, ha re sa hloka hore Docker e kenngoe mochine.

Ebile ha re hloke git ea lehae.
Mme Maven ha e hlokehe.
'Me ha ho hlokahale hore u thehe setšoantšo sa setshelo ka matsoho a hau.
'Me ha ua tlameha ho batla sebaka sa polokelo ea litšoantšo tsa setshelo.
'Me ha ho hlokahale ho kenya ingress controller.
Hape ha ho hlokahale hore u lokise ingress hape.

Ua utloisisa, na? Ho tsamaisa le ho tsamaisa ts'ebeliso ea rona ho OpenShift, ha u hloke leha e le efe ea tse ka holimo. 'Me ts'ebetso ka boeona e shebahala tjena.

Mohato oa 1 - Qala sehlopha sa hau sa OpenShift

Re sebelisa Code Ready Containers ho tsoa ho Red Hat, eo ha e le hantle e leng Minikube e ts'oanang, empa e na le sehlopha se felletseng sa Openshift se nang le node e le 'ngoe.

crc start

Mohato oa 2 - Theha 'me u romelle kopo ho sehlopha sa OpenShift

Ke mohato ona moo bonolo le boiketlo ba OpenShift bo senotsoeng ka khanya eohle ea eona. Joalo ka liphaello tsohle tsa Kubernetes, re na le mekhoa e mengata ea ho tsamaisa kopo ka sehlopha. 'Me, joalo ka ho KUK, re khetha e bonolo ka ho fetisisa.

OpenShift esale e ntse e hahuoa joalo ka sethala sa ho theha le ho tsamaisa lits'ebetso tse kentsoeng ka har'a lisebelisoa. Kaho ea lijana e 'nile ea e-ba karolo ea bohlokoa ea sethala sena, kahoo ho na le lisebelisoa tse eketsehileng tsa Kubernetes bakeng sa mesebetsi e amanang le eona.

Re tla be re sebelisa ts'ebetso ea OpenShift's Source 2 Image (S2I), e nang le mekhoa e mengata e fapaneng ea ho nka mohloli oa rona (khoutu kapa li-binaries) ebe o e fetola setšoantšo se nang le setshelo se tsamaeang sehlopheng sa OpenShift.

Ho etsa sena re hloka lintho tse peli:

  • Khoutu ea rona ea mohloli e sebakeng sa polokelo ea git
  • Setšoantšo sa sehahi motheong oa hore na mohaho o tla etsoa joang.

Ho na le litšoantšo tse ngata tse joalo tse hlokometsoeng ka bobeli ke Red Hat le boemong ba sechaba, 'me re tla sebelisa setšoantšo sa OpenJDK hantle, kaha ke ntse ke haha ​​kopo ea Java.

U ka tsamaisa S2I ka bobeli ho tloha ho OpenShift Developer graphical console le ho tloha molaong oa taelo. Re tla sebelisa taelo e ncha ea app, re e joetsa hore na e ka fumana setšoantšo sa sehahi le khoutu ea rona ea mohloli hokae.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

oc new-app registry.access.redhat.com/ubi8/openjdk-11:latest~https://github.com/gcolman/quarkus-hello-world.git

Ke eona, kopo ea rona e entsoe. Ka ho etsa joalo, ts'ebetso ea S2I e entse lintho tse latelang:

  • E thehile setsi sa litšebeletso bakeng sa mefuta eohle ea lintho tse amanang le ho aha sesebelisoa.
  • E thehile OpenShift Build config.
  • Ke khoasolla setšoantšo sa sehahi ho ngoliso ea ka hare ea OpenShift docker.
  • E kentsoe "Hello World" sebakeng sa polokelo ea lehae.
  • Ke ile ka bona hore ho na le maven pom moo, kahoo ka bokella kopo ke sebelisa maven.
  • E thehile sets'oants'o se secha sa setshelo se nang le ts'ebeliso e hlophisitsoeng ea Java mme e kenye setšoantšo sena ho registry ea setshelo sa kahare.
  • E thehile Kubernetes Deployment e nang le litlhaloso tsa pod, tšebeletso, joalo-joalo.
  • Ke ile ka qala ho beha setšoantšo sa setshelo.
  • E tlositse setsi sa tšebeletso.

Ho na le lintho tse ngata lethathamong lena, empa ntho e ka sehloohong ke hore mohaho oohle o etsahala ka hare ho OpenShift feela, ngoliso ea ka hare ea Docker e ka hare ho OpenShift, 'me mokhoa oa ho haha ​​o theha likarolo tsohle tsa Kubernetes ebe o li tsamaisa ka har'a sehlopha.

Haeba u shebella ka mahlo ho qalisoa ha S2I ka har'a khomphutha, u ka bona kamoo pod ea moaho e qalisoang ha moaho o phetheloa.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Joale ha re shebeng likutu tsa sehahi: pele, e bonts'a hore na maven e etsa mosebetsi oa eona joang le ho jarolla lits'episo ho aha ts'ebeliso ea rona ea java.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Kamora hore moaho oa maven o phetheloe, ho hahuoa setšoantšo sa setshelo, ebe setšoantšo sena se hahiloeng se romelloa polokelong ea kahare.

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Ke eona, ts'ebetso ea kaho e felile. Joale a re etse bonnete ba hore li-pods le lits'ebeletso tsa kopo ea rona li sebetsa ka har'a sehlopha.

oc get service

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Ke phetho. Le sehlopha se le seng feela. Seo re tlamehang ho se etsa feela ke ho pepesa ts'ebeletso ena bakeng sa phihlello ho tsoa kantle.

Mohato oa 3 - pepesa ts'ebeletso bakeng sa phihlello ho tsoa kantle

Joaloka tabeng ea KUC, sethaleng sa OpenShift "Hello World" ea rona e boetse e hloka router ho tsamaisa sephethephethe sa ka ntle ho tšebeletso ka har'a sehlopha. OpenShift e etsa hore sena se be bonolo haholo. Ntlha ea pele, karolo ea HAProxy routing e kenngoa ka har'a sehlopha ka ho sa feleng (e ka fetoloa ho NGINX e tšoanang). Taba ea bobeli, ho na le lisebelisoa tse ikhethang le tse ka lokisoang haholo tse bitsoang Litsela le se hopotsang lintho tsa Ingress ka Kubernetes ea khale (ha e le hantle, Litsela tsa OpenShift li susumelitse haholo moralo oa lintho tsa Ingress, tse seng li ka sebelisoa ho OpenShift) , empa bakeng sa rona "Hello World" , 'me hoo e ka bang maemong a mang kaofela, Tsela e tloaelehileng e lekane bakeng sa rona ntle le tlhophiso e eketsehileng.

Ho theha FQDN e ka tsamaisoang bakeng sa "Hello World" (e, OpenShiift e na le DNS ea eona ea ho tsamaisa ka mabitso a lits'ebeletso), re tla pepesa ts'ebeletso ea rona feela:

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

oc expose service quarkus-hello-world

Haeba u sheba Tsela e sa tsoa etsoa, ​​​​u ka fumana FQDN le lintlha tse ling tsa ho tsamaisa moo:

oc get route

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Qetellong, re fihlella lits'ebeletso tsa rona ho tsoa ho sebatli:

Ke masoabi, OpenShift, ha rea ​​u ananela ka ho lekaneng, 'me re ile ra u nka habobebe

Empa joale ho ne ho hlile ho le bonolo!

Re rata Kubernetes le tsohle tseo theknoloji ena e re lumellang ho li etsa, hape re rata bonolo le boiketlo. Kubernetes e thehiloe ho nolofatsa ts'ebetso ea lijana tse ajoang, tse ka senyehang, empa bonolo ba eona ha bo sa lekana ho kenya lits'ebetso tlhahiso kajeno. Mona ke moo OpenShift e kenang teng, e tsamaisana le linako le ho fana ka Kubernetes, e lebisitsoeng haholo ho moqapi. Ho entsoe boiteko bo bongata ho lokisa sethala sa OpenShift ka ho khetheha bakeng sa moqapi, ho kenyelletsa le ho theha lisebelisoa tse kang S2I, ODI, Developer Portal, OpenShift Operator Framework, kopanyo ea IDE, Catalogues ea Developer, ho kopanya Helm, ho beha leihlo le tse ling tse ngata.

Re tšepa hore sehlooho sena se ne se thahasellisa ebile se le molemo ho uena. U ka fumana lisebelisoa tse eketsehileng, lisebelisoa le lintho tse ling tse molemo bakeng sa nts'etsopele sethaleng sa OpenShift ho portal Baetsi ba Hat Hat.

Source: www.habr.com

Eketsa ka tlhaloso