Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Edere post a n'ihi na ndị ọrụ anyị nwere ọtụtụ mkparịta ụka na ndị ahịa gbasara mmepe ngwa na Kubernetes yana nkọwapụta mmepe dị otú ahụ na OpenShift.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Anyị na-amalitekarị na tesis na Kubernetes bụ naanị Kubernetes, na OpenShift abụrụlarị ikpo okwu Kubernetes, dị ka Microsoft AKS ma ọ bụ Amazon EKS. Nke ọ bụla n'ime nyiwe ndị a nwere uru nke ya, nke ezubere maka otu ndị na-ege ntị lekwasịrị anya. Ma mgbe nke a gasịrị, mkparịta ụka ahụ na-atụgharị n'ịtụle ike na adịghị ike nke ikpo okwu ụfọdụ.

N'ozuzu, anyị chere na anyị ga-ede akwụkwọ ozi a na nkwubi okwu dịka "Gee ntị, ọ dịghị mkpa ebe ị ga-agba ọsọ koodu, na OpenShift ma ọ bụ AKS, na EKS, na ụfọdụ Kubernetes omenala, ma ọ bụ na Kubernetes ọ bụla. (maka nkenke ka anyi kpo ya KUK) "Ọ dị mfe n'ezie, ma ebe ahụ ma ebe ahụ."

Mgbe ahụ, anyị mere atụmatụ iwere "Hello World" kachasị mfe ma jiri ihe atụ ya gosi ihe na-emekarị na ihe dị iche n'etiti KUC na Red Hat OpenShift Container Platform (nke a gasịrị, OCP ma ọ bụ nanị OpenShift).

Agbanyeghị, ka anyị na-ede akwụkwọ ozi a, anyị chọpụtara na anyị ejirila OpenShift mara ogologo oge nke na anyị amaghị etu o siri too wee ghọọ ikpo okwu dị ịtụnanya nke ghọrọ ihe karịrị naanị nkesa Kubernetes. Anyị na-ewere ntozu oke na ịdị mfe nke OpenShift n'efu, wee chefuo nchapụta ya.

N'ozuzu, oge na-abịa maka nchegharị na-arụsi ọrụ ike, ma ugbu a, anyị ga-nzọụkwụ site nzọụkwụ tụnyere ọrụ nke anyị "Hello World" na KUK na na OpenShift, na anyị ga-eme nke a dị ka ebumnobi dị ka o kwere mee (ọ dị mma, ma e wezụga site mgbe ụfọdụ na-egosi a. àgwà onwe onye na isiokwu). Ọ bụrụ na ị nwere mmasị n'echiche nkịtị gbasara okwu a, ị nwere ike ịgụ ya ebe a (EN). Na na post a anyị ga-arapara n'eziokwu na naanị eziokwu.

ụyọkọ

Yabụ, “ụwa ndewo” anyị chọrọ ụyọkọ. Anyị ga-ekwu ozugbo "mba" na igwe ojii ọhaneze ọ bụla, ka ị ghara ịkwụ ụgwọ maka sava, ndekọ, netwọkụ, nyefe data, wdg. N'ihi ya, anyị na-ahọrọ otu ụyọkọ ọnụ ọnụ dị mfe na Minikube (maka KUK) na Usoro Njikere Jikere (maka ụyọkọ OpenShift). Nhọrọ abụọ a dị mfe ịwụnye, mana ọ ga-achọ nnukwu akụrụngwa na laptọọpụ gị.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Mgbakọ na KUK-e

Ya mere, ka anyi gaa.

Nzọụkwụ 1 - wulite ihe oyiyi akpa anyị

Ka anyị bido site n'ibunye “ụwa ndewo” na minikube. Iji mee nke a, ị ga-achọ:

  1. 1. Docker arụnyere.
  2. 2. Git arụnyere.
  3. 3. Maven arụnyere (n'ezie, ọrụ a na-eji ọnụọgụ mvnw, yabụ ị nwere ike ime na-enweghị ya).
  4. 4. N'ezie, isi iyi n'onwe ya, i.e. mmepụta mmepụta ihe github.com/gcolman/quarkus-hello-world.git

Nzọụkwụ mbụ bụ ịmepụta ọrụ Quarkus. Atụla ụjọ ma ọ bụrụ na ị naghị arụ ọrụ na Quarkus.io - ọ dị mfe. Naanị họrọ ihe ndị ịchọrọ iji na ọrụ a (RestEasy, Hibernate, Amazon SQS, Camel, wdg), wee Quarkus n'onwe ya, na-enweghị ihe ọ bụla n'ime gị, na-ahazi maven archetype ma tinye ihe niile na github. Ya bụ, n'ụzọ nkịtị otu ọpịpị nke òké na ị mechara. Nke a mere anyị ji hụ Quarkus n'anya.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Ụzọ kachasị mfe iji wuo "Hello World" anyị n'ime ihe oyiyi akpa bụ iji ihe mgbakwunye quarkus-maven maka Docker, nke ga-arụ ọrụ niile dị mkpa. Site na ọbịbịa nke Quarkus, nke a adịla mfe ma dị mfe: gbakwunye ihe ndọtị ihe oyiyi-docker na ị nwere ike ịmepụta ihe oyiyi site na iji iwu maven.

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

N'ikpeazụ, anyị na-eji Maven arụ ihe oyiyi anyị. N'ihi nke a, koodu isi mmalite anyị na-atụgharị ka ọ bụrụ ihe oyiyi akpa emebere nke enwere ike ịgba ọsọ na gburugburu oge oge akpa.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

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

Nke ahụ bụ naanị, ugbu a ị nwere ike ịmalite akpa ahụ na iwu docker run, na-esepụta ọrụ anyị na ọdụ ụgbọ mmiri 8080 ka enwere ike ịnweta ya.

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

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Mgbe ihe atụ akpa ahụ amalitechara, naanị ihe fọdụrụ bụ ịlele iwu curl na ọrụ anyị na-arụ:

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Ya mere, ihe niile na-arụ ọrụ na ọ bụ n'ezie mfe na mfe.

Nzọụkwụ 2 - zipu akpa anyị na ebe nchekwa ihe oyiyi akpa

Ka ọ dị ugbu a, a na-echekwa onyonyo anyị mepụtara na mpaghara, na ebe nchekwa akpa mpaghara anyị. Ọ bụrụ na anyị chọrọ iji onyonyo a na gburugburu COOK anyị, mgbe ahụ a ga-etinyerịrị ya na ebe nchekwa ọzọ. Kubernetes enweghị atụmatụ ndị a, yabụ anyị ga-eji dockerhub. N'ihi na, nke mbụ, ọ bụ n'efu, na nke abụọ, (ihe fọrọ nke nta ka ọ bụrụ) onye ọ bụla na-eme ya.

Nke a dịkwa mfe, naanị ihe ị chọrọ bụ akaụntụ dockerhub.

Yabụ, anyị wụnye dockerhub wee ziga onyonyo anyị ebe ahụ.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Nzọụkwụ 3 - malite Kubernetes

Enwere ọtụtụ ụzọ isi kpọkọta nhazi kubernetes iji mee ka anyị "Hello World", ma anyị ga-eji nke kachasị mfe n'ime ha, nke ahụ bụ otú anyị si dị ...

Nke mbụ, ka anyị malite ụyọkọ minikube:

minikube start

Nzọụkwụ 4 - tinye ihe oyiyi akpa anyị

Ugbu a, anyị kwesịrị ịgbanwe koodu anyị na ihe oyiyi akpa ka ọ bụrụ nhazi kubernetes. N'ikwu ya n'ụzọ ọzọ, anyị chọrọ nkọwapụta pọd na ntinye aka na-atụ aka na onyonyo akpa anyị na dockerhub. Otu n'ime ụzọ kachasị mfe iji mee nke a bụ ịme iwu nrụpụta nrụpụta na-atụ aka na onyonyo anyị:

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

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

Site n'iwu a, anyị gwara COO anyị ka ọ mepụta nhazi nhazi, nke kwesịrị ịnwe nkọwapụta pọd maka ihe oyiyi akpa anyị. Iwu a ga-etinyekwa nhazi a na ụyọkọ minikube anyị, wee mepụta ntinye nke ga-ebudata ihe oyiyi akpa anyị wee malite pod na ụyọkọ ahụ.

Nzọụkwụ 5 - mepee ohere maka ọrụ anyị

Ugbu a anyị nwere ihe oyiyi akpa ebugara, oge eruola ka anyị chee echiche maka otu esi ahazi ohere mpụga na ọrụ izu ike a, nke, n'ezie, emebere na koodu anyị.

Enwere ọtụtụ ụzọ ebe a. Dịka ọmụmaatụ, ịnwere ike iji iwu mkpughe iji mepụta ngwa Kubernetes kwesịrị ekwesị, dị ka ọrụ na njedebe. N'ezie, nke a bụ ihe anyị ga-eme site n'imezu iwu mkpughe maka ihe ebuga anyị:

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

Ka anyị were obere oge lelee nhọrọ "-type" nke iwu mkpughe.

Mgbe anyị na-ekpughe ma mepụta ihe ndị dị mkpa iji na-arụ ọrụ anyị, anyị, n'ime ihe ndị ọzọ, kwesịrị inwe ike ijikọ site na mpụga na ọrụ hello-quarkus, nke na-anọdụ n'ime netwọk anyị akọwapụtara nke ọma. Na oke ụdị na-enye anyị ohere ịmepụta na jikọọ ihe dị ka ndị na-ebu ibu na-ebugharị okporo ụzọ na netwọk a.

Dịka ọmụmaatụ, site n'ide ihe ụdị =LoadBalancer, anyị na-enye ihe nkwụnye ibu na-akpaghị aka na igwe ojii iji jikọọ na ụyọkọ Kubernetes anyị. Nke a, n'ezie, dị mma, ma ịkwesịrị ịghọta na nhazi dị otú ahụ ga-ejikọta ya na igwe ojii nke ọha na eze ma ọ ga-esikwu ike ịnyefe n'etiti oge Kubernetes na gburugburu dị iche iche.

N'ihe atụ anyị ụdị=NodePort, ya bụ, a na-enweta ọrụ anyị site na adreesị IP ọnụ na nọmba ọdụ ụgbọ mmiri. Nhọrọ a na-enye gị ohere ịghara iji igwe ojii ọ bụla, mana ọ chọrọ ọtụtụ usoro ndị ọzọ. Nke mbu, ịchọrọ onye na-ebu ibu nke gị, yabụ anyị ga-ebuga NGINX load balancer na ụyọkọ anyị.

Nzọụkwụ 6 - wụnye ihe nkwụnye ibu

minikube nwere ọtụtụ ọrụ ikpo okwu na-eme ka ọ dị mfe ịmepụta ihe ndị nwere ike ịnweta na mpụga, dị ka ndị na-ahụ maka ingress. Minikube na-abata na njikwa ingress Nginx, naanị ihe anyị ga-eme bụ ime ya ma hazie ya.

minikube addons enable ingress

Ugbu a, anyị ga-eji naanị otu iwu mepụta Nginx ingress controller, nke ga-arụ ọrụ n'ime ụyọkọ minikube anyị:

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

Nzọụkwụ 7 - Mepụta nbanye

Ugbu a, anyị kwesịrị ịhazi Nginx ingress njikwa ka ọ nabata arịrịọ hello-quarkus.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Na n'ikpeazụ, anyị kwesịrị itinye nhazi a.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

kubectl apply -f ingress.yml

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Ebe anyị na-eme ihe a niile na kọmputa nke anyị, anyị na-agbakwunye adreesị IP ọnụ anyị na faịlụ /etc/ hosts iji mee ka arịrịọ http gaa na minikube anyị na NGINX load balancer.

192.168.99.100 hello-quarkus.info

Nke ahụ bụ ya, ugbu a a na-enweta ọrụ minikube anyị na mpụga site na njikwa ingress Nginx.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Ọfọn, nke ahụ dị mfe, nri? Ma ọ bụ na ọ bụghị nke ukwuu?

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Na-agba ọsọ na OpenShift (Code Ready Containers)

Ugbu a, ka anyị hụ ka esi eme ihe niile na Red Hat OpenShift Container Platform (OCP).

Dịka ọ dị na minikube, anyị na-ahọrọ nhazi ụyọkọ OpenShift nwere otu ọnụ n'ụdị nke Code Ready Containers (CRC). Na mbụ, a na-akpọ ya minishift ma dabere na ọrụ OpenShift Origin, mana ugbu a ọ bụ CRC ma wuo ya na Red Hat's OpenShift Container Platform.

N'ebe a anyị, ndo, enweghị ike ịsị: "OpenShift dị mma!"

Na mbido, anyị chere ide na mmepe na OpenShift adịghị iche na mmepe na Kubernetes. Na isi okwu, otu a ka ọ dị. Mana na usoro ịde akwụkwọ ozi a, anyị chetara mmegharị ole ị ga-eme mgbe ị na-enweghị OpenShift, ya mere, ọzọ, ọ dị ebube. Anyị na-ahụ ya n'anya mgbe a na-eme ihe niile n'ụzọ dị mfe, yana otu ihe atụ anyị si dị mfe ibugharị ma na-agba ọsọ na OpenShift ma e jiri ya tụnyere minikube bụ ihe kpaliri anyị ide akwụkwọ a.

Ka anyị gabiga usoro ahụ wee hụ ihe anyị kwesịrị ime.

Yabụ, na ihe atụ minikube, anyị malitere na Docker… Chere, anyị achọkwaghị itinye Docker na igwe.

Ma anyị achọghị git mpaghara.
Na Maven adịghị mkpa.
Na ịkwesighi ịmepụta ihe oyiyi akpa na aka gị.
Na ịgaghị achọ ebe nchekwa ihe onyonyo akpa ọ bụla.
Ọ dịghịkwa mkpa ịwụnye njikwa ingress.
Na ị dịghị mkpa ka hazie ingress ma.

Ị ghọtara, nri? Iji bukwaa ma mee ngwa anyị na OpenShift, ị chọghị nke ọ bụla n'elu. Na usoro n'onwe ya dị ka nke a.

Kwụpụ 1 - Mepụta ụyọkọ OpenShift gị

Anyị na-eji Code Ready Containers sitere na okpu uhie, nke bụ otu Minikube, mana ọ bụ naanị ụyọkọ Openshift nwere otu ọnụ zuru oke.

crc start

Kwụpụ 2 - Wulite ma bufee ngwa a na ụyọkọ OpenShift

Ọ bụ na nzọụkwụ a ka a na-ekpughe ịdị mfe na ịdị mma nke OpenShift n'ebube ya niile. Dịka ọ dị na nkesa Kubernetes niile, anyị nwere ọtụtụ ụzọ isi mee ngwa na ụyọkọ. Na, dị ka ọ dị na KUK, anyị na-ahọrọ nke kachasị mfe.

A na-ewu OpenShift mgbe niile ka ikpo okwu maka ịmepụta na iji ngwa ndị nwere akpa. Ụlọ akpa akpa bụ akụkụ dị mkpa nke ikpo okwu a, yabụ enwere ọtụtụ akụrụngwa Kubernetes maka ọrụ ndị metụtara ya.

Anyị ga na-eji usoro OpenShift's Source 2 Image (S2I), nke nwere ọtụtụ ụzọ dị iche iche isi weghara isi mmalite anyị (koodu ma ọ bụ ọnụọgụ abụọ) wee tụgharịa ya ka ọ bụrụ onyonyo ejiri akpa na-agba na ụyọkọ OpenShift.

Iji mee nke a, anyị chọrọ ihe abụọ:

  • Koodu isi mmalite anyị dị na ebe nchekwa git
  • Ihe oyiyi onye nrụpụta na ndabere nke a ga-arụ ụlọ ahụ.

Enwere ọtụtụ ihe oyiyi dị otú ahụ nke Red Hat na-echekwa ma na ọkwa obodo, anyị ga-eji ihe oyiyi OpenJDK, nke ọma, ebe m na-ewu ngwa Java.

Ị nwere ike ịgba ọsọ S2I wu ma site na OpenShift Developer graphic console na site na ahịrị iwu. Anyị ga-eji iwu-ngwa ọhụrụ, na-agwa ya ebe a ga-enweta onyonyo onye nrụpụta yana koodu isi mmalite anyị.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

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

Ọ bụ ya, ngwa anyị na-emepụta. Na ime nke a, usoro S2I mere ihe ndị a:

  • Mepụtara pọd-arụ ọrụ maka ụdị ihe niile metụtara iwulite ngwa ahụ.
  • Mepụtara ihe nhazi OpenShift Build.
  • Ebutere m onyonyo onye nrụpụta na ndekọ docker nke ime OpenShift.
  • Ekpuchiri "Ndewo Ụwa" na ebe nchekwa mpaghara.
  • Ahụrụ m na e nwere maven pom ebe ahụ, ya mere m ji maven chịkọta ngwa ahụ.
  • Mepụtara onyonyo akpa ọhụrụ nwere ngwa Java achịkọtara wee tinye onyonyo a n'ime ndekọ akpa dị n'ime.
  • Mepụtara Kubernetes nkesa na nkọwapụta maka pọd, ọrụ, wdg.
  • Amalitere m ibugharị onyonyo akpa ahụ.
  • Wepụrụ ihe nrụpụta ọrụ.

Enwere ọtụtụ ihe na ndepụta a, mana isi ihe bụ na ụlọ ahụ dum na-eme naanị n'ime OpenShift, ndekọ Docker dị n'ime OpenShift, usoro ihe nrụpụta na-emepụta ihe niile Kubernetes ma na-agba ha na ụyọkọ.

Ọ bụrụ na ị na-elele anya mmalite nke S2I na njikwa ahụ, ị ​​​​nwere ike ịhụ ka esi ewepụta ihe nrụpụta mgbe arụchara ya.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Ugbu a, ka anyị leba anya na ndekọ ndekọ ndị na-ewu ihe: nke mbụ, ọ na-egosi ka maven si arụ ọrụ ya na nbudata ndabere iji wuo ngwa java anyị.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Mgbe arụchara maven ahụ, a na-amalite imepụta ihe oyiyi akpa ahụ, mgbe ahụ, a na-eziga ihe oyiyi a wuru na ebe nchekwa dị n'ime.

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Nke ahụ bụ ya, usoro iwu ahụ zuru ezu. Ugbu a, ka anyị hụ na pọd na ọrụ nke ngwa anyị na-agba ọsọ na ụyọkọ.

oc get service

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Ọ gwụla. Na naanị otu otu. Naanị ihe anyị ga-eme bụ ikpughe ọrụ a maka ịnweta site na mpụga.

Kwụpụ 3 – kpughee ọrụ maka ịnweta site na mpụga

Dị ka ọ dị na KUC, n'elu ikpo okwu OpenShift anyị "Hello World" chọkwara onye rawụta ka ọ na-eduzi okporo ụzọ mpụga na ọrụ dị n'ime ụyọkọ ahụ. OpenShift na-eme ka nke a dị mfe. Nke mbu, a na-etinye ihe ntinye uzo HAProxy na ụyọkọ na ndabara (enwere ike ịgbanwe ya ka ọ bụrụ otu NGINX). Nke abuo, e nwere ihe pụrụ iche na nke ukwuu configurable akụrụngwa a na-akpọ Routes na reminiscent nke Ingress ihe na ezigbo ochie Kubernetes (n'ezie, OpenShift's Routes mmetụta dị ukwuu imewe nke Ingress ihe, nke nwere ike ugbu a na-eji na OpenShift) , ma maka anyị "Hello World" , na ihe fọrọ nke nta ka ọ bụrụ ikpe ndị ọzọ niile, usoro ọkọlọtọ zuru ezu maka anyị na-enweghị nhazi ọzọ.

Iji mepụta FQDN routable maka “Ndewo World” (ee, OpenShiift nwere DNS nke ya maka ịkwọgharị aha ọrụ), anyị ga-ekpughere ọrụ anyị naanị:

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

oc expose service quarkus-hello-world

Ọ bụrụ n’ịleba anya n’okporo ụzọ emepụtara ọhụrụ, ị nwere ike ịhụ FQDN na ozi ngagharị ndị ọzọ ebe ahụ:

oc get route

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

N'ikpeazụ, anyị na-enweta ọrụ anyị site na ihe nchọgharị:

Ndo OpenShift, anyị enweghị ekele maka gị nke ọma wee were gị nke ọma

Ma ugbu a, ọ dị nnọọ mfe!

Anyị hụrụ Kubernetes n'anya na ihe niile teknụzụ a na-enye anyị ohere ime, anyị na-ahụkwa n'anya na ịdị mfe na ịdị mfe. Emepụtara Kubernetes ka ọ dị mfe iji rụọ ọrụ nke ekesa, arịa nwere ike ịbelata, mana ịdị mfe ya ezughị iji tinye ngwa n'ime mmepụta taa. Nke a bụ ebe OpenShift na-abata, na-agbaso oge ma na-enye Kubernetes, nke bụ isi na onye nrụpụta. Agbanyela nnukwu mbọ iji kwado usoro ikpo okwu OpenShift maka onye nrụpụta, gụnyere imepụta ngwaọrụ dịka S2I, ODI, Portal Developer, OpenShift Operator Framework, ntinye IDE, Katalọgụ Mmepụta, njikọta Helm, nlekota na ọtụtụ ndị ọzọ.

Anyị na-atụ anya na akụkọ a na-adọrọ mmasị ma baa uru maka gị. Ị nwere ike ịchọta akụrụngwa, ihe na ihe ndị ọzọ bara uru maka mmepe na ikpo okwu OpenShift na portal Ndị nrụpụta okpu uhie.

isi: www.habr.com

Tinye a comment