ProHoster > Блог > Nchịkwa > 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
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.
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ị.
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. Docker arụnyere.
2. Git arụnyere.
3. Maven arụnyere (n'ezie, ọrụ a na-eji ọnụọgụ mvnw, yabụ ị nwere ike ime na-enweghị ya).
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.
Ụ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.
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.
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
Mgbe ihe atụ akpa ahụ amalitechara, naanị ihe fọdụrụ bụ ịlele iwu curl na ọrụ anyị na-arụ:
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ụ.
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ị:
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ị:
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ị:
Ugbu a, anyị kwesịrị ịhazi Nginx ingress njikwa ka ọ nabata arịrịọ hello-quarkus.
Na n'ikpeazụ, anyị kwesịrị itinye nhazi a.
kubectl apply -f ingress.yml
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.
Ọfọn, nke ahụ dị mfe, nri? Ma ọ bụ na ọ bụghị nke ukwuu?
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ị.
Ọ 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.
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ị.
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.
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
Ọ 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ị:
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
N'ikpeazụ, anyị na-enweta ọrụ anyị site na ihe nchọgharị:
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.