Ez a bejegyzĂ©s azĂ©rt ĂrĂłdott, mert munkatĂĄrsaink sokat beszĂ©ltek az ĂŒgyfelekkel az alkalmazĂĄsok Kubernetes-en törtĂ©nĆ fejlesztĂ©sĂ©rĆl Ă©s az OpenShift-en valĂł specifikus fejlesztĂ©srĆl.

ĂltalĂĄban azzal kezdjĂŒk, hogy a Kubernetes egyszerƱen Kubernetes, mĂg az OpenShift mĂĄr egy Kubernetes-alapĂș platform, mint pĂ©ldĂĄul a Microsoft AKS vagy az Amazon EKS. Ezeknek a platformoknak megvannak a sajĂĄt elĆnyeik, amelyek egyedi cĂ©lközönsĂ©gre irĂĄnyulnak. EzutĂĄn a beszĂ©lgetĂ©s mĂĄr az egyes platformok erĆssĂ©geinek Ă©s gyengesĂ©geinek összehasonlĂtĂĄsĂĄba torkollik.
ĂsszessĂ©gĂ©ben azt gondoltuk, hogy ezt a bejegyzĂ©st egy olyan következtetĂ©ssel zĂĄrjuk, mint: "Figyeljetek, mindegy, hol futtatjĂĄtok a kĂłdot, OpenShift-en vagy AKS-en, EKS-en, bĂĄrmilyen testreszabott Kubernetes-en, akĂĄrmilyen Kubernetes-en" (a rövidsĂ©g kedvéért hĂvjuk KUK-nak) â ez tĂ©nyleg egyszerƱ, ott is, Ă©s itt is.
EzutĂĄn terveztĂŒk, hogy egy egyszerƱ "Hello World" pĂ©ldĂĄval megmutatjuk, hogy mi a közös Ă©s mi a kĂŒlönbsĂ©g a KUK Ă©s a Red Hat OpenShift Container Platform (ezutĂĄn OCP vagy egyszerƱen OpenShift) között.
Azonban ennek a bejegyzĂ©snek az ĂrĂĄsa közben rĂĄjöttĂŒnk, hogy annyira hozzĂĄszoktunk az OpenShift hasznĂĄlatĂĄhoz, hogy egyszerƱen nem tudjuk, mennyire megnĆtt Ă©s mennyire lenyƱgözĆ platform lett, amely mĂĄr jĂłval tĂșl van a pusztĂĄn Kubernetes disztribĂșciĂłn. HozzĂĄszoktunk ahhoz, hogy az OpenShift Ă©rettsĂ©gĂ©t Ă©s egyszerƱsĂ©gĂ©t termĂ©szetesnek vegyĂŒk, figyelmen kĂvĂŒl hagyva annak nagyszerƱsĂ©gĂ©t.
ĂsszessĂ©gĂ©ben eljött az aktĂv megbĂĄnĂĄs ideje, Ă©s most lĂ©pĂ©srĆl lĂ©pĂ©sre összehasonlĂtjuk a "Hello World" bevezetĂ©sĂ©t a KUK-ban Ă©s az OpenShift-en, Ă©s ezt a lehetĆ legobjektĂvebben tesszĂŒk (bĂĄr nĂ©ha szemĂ©lyes vĂ©lemĂ©nyĂŒnket is kifejezzĂŒk a tĂ©mĂĄval kapcsolatban). Ha titeket pusztĂĄn szubjektĂv vĂ©lemĂ©ny Ă©rdekel errĆl, azt el lehet olvasni . Ebben a bejegyzĂ©sben azonban a tĂ©nyekre Ă©s csakis a tĂ©nyekre fogunk összpontosĂtani.
Kluster
TehĂĄt a "Hello World"-ĂŒnkhöz szĂŒksĂ©gĂŒnk van klaszterekre. Azonnal elmondjuk, hogy "nem" a nyilvĂĄnos felhĆknek, hogy ne kelljen fizetnĂŒnk a szerverekĂ©rt, tĂĄrolĂłkĂ©rt, hĂĄlĂłzatĂ©rt, adatĂĄtvitelĂ©rt stb. TehĂĄt egy egyszerƱ egycsomĂłpontos klasztert vĂĄlasztunk a (KUK szĂĄmĂĄra) Ă©s a (OpenShift klaszterhez). MindkĂ©t lehetĆsĂ©g valĂłban egyszerƱen telepĂthetĆ, de elĂ©g sok erĆforrĂĄst igĂ©nyelnek a laptopodon.

Build a KUK-en
Nos, lĂĄssuk.
1. lĂ©pĂ©s - összeĂĄllĂtjuk a kontĂ©nerszĂłtĂĄrunkat
KezdjĂŒk azzal, hogy a "Hello World"-ĂŒnket a minikube-on indĂtjuk el. Ehhez szĂŒksĂ©ges:
- 1. TelepĂtett Docker.
- 2. TelepĂtett Git.
- 3. TelepĂtett Maven (tulajdonkĂ©ppen ebben a projektben a mvnw binĂĄris fĂĄjlt hasznĂĄljuk, Ăgy erre nincs szĂŒksĂ©g).
- 4. MagĂĄnak a forrĂĄsnak a klĂłnja, vagyis a repository klĂłnja
ElsĆ lĂ©pĂ©skĂ©nt lĂ©tre kell hozni egy Quarkus projektet. Ne ijedjetek meg, ha mĂ©g soha nem dolgoztatok a Quarkus.io webhellyel â ez könnyƱ. Csak vĂĄlasszĂĄtok ki azokat a komponenseket, amelyeket a projektben szeretnĂ©tek hasznĂĄlni (RestEasy, Hibernate, Amazon SQS, Camel stb.), a többit pedig a Quarkus mĂĄr automatikusan, a ti közremƱködĂ©setek nĂ©lkĂŒl beĂĄllĂtja, Ă©s mindent feltölt a githubra. TehĂĄt szĂł szerint egy kattintĂĄs â Ă©s kĂ©sz. EzĂ©rt szeretjĂŒk a Quarkust.

A legegyszerƱbb mĂłdja a âHello Worldâ kontĂ©nerkĂ©p lĂ©trehozĂĄsĂĄnak, ha a quarkus-maven Docker kiterjesztĂ©st hasznĂĄljuk, amely elvĂ©gzi az összes szĂŒksĂ©ges munkĂĄt. A Quarkus bevezetĂ©sĂ©vel ez valĂłban könnyƱ Ă©s egyszerƱ lett: hozzĂĄadja a container-image-docker kiterjesztĂ©st, Ă©s maven parancsokkal kĂ©pes kĂ©peket lĂ©trehozni.
./mvnw quarkus:add-extension -Dextensions="container-image-docker"
Ăs vĂ©gĂŒl, a Maven segĂtsĂ©gĂ©vel összeĂĄllĂtjuk a kĂ©pet. Ennek eredmĂ©nyekĂ©nt a forrĂĄskĂłdunk kĂ©sz kontĂ©nerkĂ©ppĂ© alakul, amely mĂĄr futtathatĂł kontĂ©neres környezetben.

./mvnw -X clean package -Dquarkus.container-image.build=true
Nos, ez igazĂĄbĂłl minden, most elindĂthatjuk a kontĂ©nert a docker run paranccsal, illetve ĂĄtirĂĄnyĂthatjuk a szolgĂĄltatĂĄsunkat a 8080-as portra, hogy elĂ©rhetĆ legyen.
docker run -i --rm -p 8080:8080 gcolman/quarkus-hello-world

MiutĂĄn a kontĂ©ner pĂ©ldĂĄny elindult, csak annyit kell ellenĆrizni a curl parancs segĂtsĂ©gĂ©vel, hogy a szolgĂĄltatĂĄs mƱködik-e:
![]()
Tehåt minden rendben mƱködik, és ez valóban könnyƱ és egyszerƱ volt.
2. lĂ©pĂ©s â elkĂŒldjĂŒk a kontĂ©nert a kontĂ©nerkĂ©pek repository-jĂĄba
A jelenleg lĂ©trehozott kĂ©p helyben van, a helyi kontĂ©ner tĂĄrolĂłnkban. Ha ezt a kĂ©pet szeretnĂ©nk hasznĂĄlni a K8S környezetĂŒnkben, akkor egy mĂĄsik repository-ba kell helyezni. A Kubernetesben nincsenek ilyen funkciĂłk, ezĂ©rt a dockerhub-ot fogjuk hasznĂĄlni. EgyrĂ©szt mert ingyenes, mĂĄsrĂ©szt pedig (majdnem) mindenki ezt csinĂĄlja.
Ez is nagyon egyszerƱ, Ă©s itt csak egy dockerhub fiĂłkra van szĂŒksĂ©g.
TehĂĄt bejelentkezĂŒnk a dockerhub-ra Ă©s feltöltjĂŒk oda a kĂ©pĂŒnket.

3. lĂ©pĂ©s â elindĂtjuk a Kubernetest
SzĂĄmos mĂłdja van a Kubernetes konfigurĂĄciĂł összeĂĄllĂtĂĄsĂĄnak a âHello Worldâ elindĂtĂĄsĂĄhoz, de a legegyszerƱbbet fogjuk hasznĂĄlni, hiszen ilyenek vagyunk...
ElĆször indĂtsuk el a minikube klasztert:
minikube start
4. lĂ©pĂ©s â telepĂtjĂŒk a kontĂ©nerkĂ©pĂŒnket
Most ĂĄt kell alakĂtanunk a kĂłdunkat Ă©s a kontĂ©nerkĂ©pĂŒnket Kubernetes konfigurĂĄciĂłvĂĄ. MĂĄs szavakkal, szĂŒksĂ©gĂŒnk van egy podra Ă©s deployment definĂciĂłra, amely hivatkozik a Docker Hub-on lĂ©vĆ kontĂ©nerkĂ©pĂŒnkre. Az egyik legegyszerƱbb mĂłdja ennek az, hogy vĂ©grehajtjuk a create deployment parancsot, megadva a kĂ©pĂŒnket:

kubectl create deployment hello-quarkus --image=gcolman/quarkus-hello-world:1.0.0-SNAPSHOT
Ezzel a parancssal azt mondtuk a Kubernetes-nek, hogy hozzon lĂ©tre egy deployment konfigurĂĄciĂłt, amely tartalmazza a pod specifikĂĄciĂłt a kontĂ©nerkĂ©pĂŒnkhöz. Ez a parancs ezt a konfigurĂĄciĂłt a minikube klaszterĂŒnkre is alkalmazza, Ă©s lĂ©trehozza a deploymentet, amely letölti a kontĂ©nerkĂ©pĂŒnket, Ă©s elindĂtja a podot a klaszterben.
5. lĂ©pĂ©s â hozzĂĄfĂ©rĂ©s megnyitĂĄsa a szolgĂĄltatĂĄsunkhoz
Most, hogy van egy telepĂtett kontĂ©nerkĂ©pĂŒnk, ideje elgondolkodni, hogyan konfigurĂĄljuk a kĂŒlsĆ hozzĂĄfĂ©rĂ©st ehhez a Restful szolgĂĄltatĂĄshoz, amelyet valĂłjĂĄban a kĂłdunkban programoztunk.
Itt sok lehetĆsĂ©g van. PĂ©ldĂĄul hasznĂĄlhatjuk az expose parancsot, hogy automatikusan lĂ©trehozzuk a szĂŒksĂ©ges Kubernetes komponenseket, mint a szolgĂĄltatĂĄsok Ă©s az endpointok. ValĂłjĂĄban Ăgy fogunk cselekedni, vĂ©grehajtva az expose parancsot a deployment objektumunk szĂĄmĂĄra:
kubectl expose deployment hello-quarkus --type=NodePort --port=8080
Most ĂĄlljunk meg egy pillanatra az expose parancs "--type" opciĂłjĂĄnĂĄl.
Amikor vĂ©grehajtjuk az expose-t, Ă©s lĂ©trehozzuk a szĂŒksĂ©ges komponenseket a szolgĂĄltatĂĄsunk futtatĂĄsĂĄhoz, többek között azt is szeretnĂ©nk, hogy kĂvĂŒlrĆl csatlakozhassanak a hello-quarkus szolgĂĄltatĂĄshoz, amely a programozott hĂĄlĂłzatunkon belĂŒl talĂĄlhatĂł. Az type paramĂ©ter lehetĆvĂ© teszi szĂĄmunkra, hogy lĂ©trehozzunk Ă©s csatlakoztassunk olyan dolgokat, mint a terhelĂ©selosztĂłk, hogy irĂĄnyĂtsĂĄk a forgalmat erre a hĂĄlĂłzatra.
PĂ©ldĂĄul, ha megadjuk type=LoadBalancer, automatikusan inicializĂĄlunk egy terhelĂ©selosztĂłt a nyilvĂĄnos felhĆben, hogy csatlakozhassunk a Kubernetes klaszterĂŒnkhöz. Ez termĂ©szetesen nagyszerƱ, de fontos megĂ©rteni, hogy az ilyen konfigurĂĄciĂł szorosan a konkrĂ©t nyilvĂĄnos felhĆhöz lesz kötve, Ă©s nehezebben mozgathatĂł mĂĄs Kubernetes pĂ©ldĂĄnyok között kĂŒlönbözĆ környezetekben.
A pĂ©ldĂĄnkban type=NodePort, azaz a szolgĂĄltatĂĄsunkhoz valĂł hozzĂĄfĂ©rĂ©s a csomĂłpont IP-cĂmĂ©n Ă©s a portszĂĄmon keresztĂŒl törtĂ©nik. Ez a megoldĂĄs lehetĆvĂ© teszi, hogy ne hasznĂĄljunk nyilvĂĄnos felhĆket, de szĂĄmos tovĂĄbbi lĂ©pĂ©st igĂ©nyel. ElĆször is szĂŒksĂ©g van sajĂĄt terhelĂ©selosztĂłra, ezĂ©rt telepĂtĂŒnk egy NGINX terhelĂ©selosztĂłt a klaszterĂŒnkre.
6. lĂ©pĂ©s â telepĂtjĂŒk a terhelĂ©selosztĂłt
A minikube szĂĄmos platformspecifikus funkciĂłt kĂnĂĄl, amelyek megkönnyĂtik a kĂŒlsĆ hozzĂĄfĂ©rĂ©shez szĂŒksĂ©ges összetevĆk, pĂ©ldĂĄul ingress vezĂ©rlĆk lĂ©trehozĂĄsĂĄt. A minikube ingyenes ingress vezĂ©rlĆt tartalmaz, nekĂŒnk csupĂĄn be kell kapcsolnunk Ă©s konfigurĂĄlnunk kell.
minikube addons enable ingress
Most egy parancssal lĂ©trehozzuk az Nginx ingress vezĂ©rlĆt, amely a minikube klaszterĂŒnkben fog mƱködni:
ingress-nginx-controller-69ccf5d9d8-j5gs9 1/1 Running 1 33m
7. lĂ©pĂ©s â konfigurĂĄljuk az ingress-t
Most be kell ĂĄllĂtanunk az Nginx ingress vezĂ©rlĆt, hogy az Ă©szlelje a hello-quarkus kĂ©rĂ©seket.


Ăs vĂ©gĂŒl alkalmaznunk kell ezt a konfigurĂĄciĂłt.

kubectl apply -f ingress.yml
![]()
Mivel mindezt a sajĂĄt gĂ©pĂŒnkön vĂ©gezzĂŒk, egyszerƱen hozzĂĄadjuk a csomĂłpontunk IP-cĂmĂ©t a /etc/hosts fĂĄjlhoz, hogy az http-kĂ©rĂ©sek a minikube-unkat az NGINX terhelĂ©selosztĂłra irĂĄnyĂtsĂĄk.
192.168.99.100 hello-quarkus.info
KĂ©sz, most a minikube szolgĂĄltatĂĄsunk kĂŒlsĆleg elĂ©rhetĆ az Nginx ingress vezĂ©rlĆn keresztĂŒl.

Na, ez könnyƱ volt, nem? Vagy nem olyan könnyƱ?

FuttatĂĄs OpenShift-en (Code Ready Containers)
Most nĂ©zzĂŒk meg, hogyan mƱködik mindez a Red Hat OpenShift Container Platform (OCP) alatt.
A minikube esetĂ©hez hasonlĂłan itt is egy egycsomĂłpontos OpenShift klaszteres sĂ©mĂĄt vĂĄlasztunk, amely Code Ready Containers (CRC) formĂĄjĂĄban lĂ©tezik. KorĂĄbban ezt minishiftnek hĂvtĂĄk, a OpenShift Origin projektre Ă©pĂŒlt, most pedig CRC-kĂ©nt ismert, Ă©s a Red Hat OpenShift Container Platformon alapul.
Itt elnĂ©zĂ©st kĂ©rĂŒnk, de nem tudjuk megĂĄllni, hogy ne mondjuk: "OpenShift csodĂĄlatos!"
Kezdetben azt akartuk Ărni, hogy az OpenShift környezetĂ©ben vĂ©gzett fejlesztĂ©s nem kĂŒlönbözik a Kubernetes-szel vĂ©gzett fejlesztĂ©stĆl. ValĂłjĂĄban Ăgy is van. De ennek a posztnak az ĂrĂĄsa közben eszĂŒnkbe jutott, hogy mennyi felesleges lĂ©pĂ©st kell megtenni, ha nincs OpenShift, Ă©s ezĂ©rt azt mondjuk, hogy csodĂĄlatos. SzeretjĂŒk, ha minden könnyen mƱködik, Ă©s hogy mennyivel könnyebb az OpenShift alatt mƱködtetni Ă©s elindĂtani a pĂ©ldĂĄnkat a minikube-hoz kĂ©pest, valĂłjĂĄban ösztönözte minket, hogy megĂrjuk ezt a posztot.
NĂ©zzĂŒk ĂĄt a folyamatot, Ă©s nĂ©zzĂŒk meg, hogy mit kell tennĂŒnk.
TehĂĄt a minikube pĂ©ldĂĄn keresztĂŒl a Dockerrel kezdtĂŒk... Ălljon meg, most mĂĄr nincs szĂŒksĂ©gĂŒnk arra, hogy a gĂ©pen telepĂtve legyen a Docker.
Ăs helyi git-re nincs szĂŒksĂ©gĂŒnk.
Ăs Mavenre sincs szĂŒksĂ©g.
Ăs nem kell manuĂĄlisan lĂ©trehozni a kontĂ©nerkĂ©pet.
Ăs nem kell kontĂ©nerkĂ©p-tĂĄrakat keresnĂŒnk.
Ăs ingress-vezĂ©rlĆt sem kell telepĂtenĂŒnk.
Ăs ingress-t is konfigurĂĄlni sem kell.
Ărtetted, igaz? Az OpenShift-en valĂł alkalmazĂĄsunk telepĂtĂ©sĂ©hez Ă©s elindĂtĂĄsĂĄhoz nincs szĂŒksĂ©gĂŒnk semmi többre a fentiekbĆl. A folyamat azonban a következĆkĂ©ppen nĂ©z ki.
1. lĂ©pĂ©s â ElindĂtjuk a sajĂĄt OpenShift klaszterĂŒnket
A Red Hat Code Ready Containers-t hasznåljuk, ami lényegében ugyanaz, mint a Minikube, de egy teljes értékƱ egycsomópontos OpenShift klaszterrel.
crc start
2. lĂ©pĂ©s â Az alkalmazĂĄs Ă©pĂtĂ©se Ă©s telepĂtĂ©se az OpenShift klaszterbe
Ezen a lĂ©pĂ©sen bontakozik ki legjobban az OpenShift egyszerƱsĂ©ge Ă©s kĂ©nyelme. Mint minden Kubernetes disztribĂșciĂłban, itt is sok mĂłdja van az alkalmazĂĄs indĂtĂĄsĂĄnak a klaszterben. Ăs mint a KĂșknĂĄl, most is szĂĄndĂ©kosan a legegyszerƱbbet vĂĄlasztjuk.
Az OpenShift mindig is olyan platformkĂ©nt Ă©pĂŒlt, amely kontĂ©neralapĂș alkalmazĂĄsok lĂ©trehozĂĄsĂĄra Ă©s futtatĂĄsĂĄra szolgĂĄl. A kontĂ©nerek Ă©pĂtĂ©se mindig is a platform elengedhetetlen rĂ©szĂ©t kĂ©pezte, ezĂ©rt itt rengeteg tovĂĄbbi Kubernetes erĆforrĂĄs ĂĄll rendelkezĂ©sre ezekhez a feladatokhoz.
Az OpenShift S2I (Source 2 Image) folyamatĂĄt fogjuk hasznĂĄlni, amelynek több kĂŒlönbözĆ mĂłdja van annak, hogy a forrĂĄsĂĄllomĂĄnyunkat (kĂłd vagy binĂĄris fĂĄjlok) kontĂ©nerkĂ©ppĂ© alakĂtsuk, amely az OpenShift klaszterben futhat.
Ehhez kĂ©t dologra van szĂŒksĂ©gĂŒnk:
- ForrĂĄskĂłdunk egy git tĂĄrhelyen
- A builder-kĂ©p, amely alapjĂĄn az Ă©pĂtĂ©s fog törtĂ©nni.
SzĂĄmos ilyen kĂ©p lĂ©tezik, amelyeket mind a Red Hat tĂĄmogat, mind a közössĂ©gi szinten, Ă©s mi az OpenJDK kĂ©pet fogjuk hasznĂĄlni, mivel Java alkalmazĂĄst Ă©pĂtek.
Az S2I Ă©pĂtĂ©st elindĂthatjuk az OpenShift Developer grafikus konzoljĂĄbĂłl vagy parancssorbĂłl is. Mi az new-app parancsot fogjuk hasznĂĄlni, megadva neki, honnan vegye a builder-kĂ©pet Ă©s a forrĂĄskĂłdunkat.

oc new-app registry.access.redhat.com/ubi8/openjdk-11:latest~https://github.com/gcolman/quarkus-hello-world.git
KĂ©sz, az alkalmazĂĄsunk lĂ©trejött. Az S2I folyamat sorĂĄn a következĆket vĂ©gezte el:
- LĂ©trehozott egy build-podot az alkalmazĂĄs Ă©pĂtĂ©sĂ©vel kapcsolatos feladatokhoz.
- Létrehozott egy OpenShift Build konfiguråciót.
- Letöltötte a builder-kĂ©pet az OpenShift belsĆ docker-regisztrĂĄlĂłjĂĄba.
- A 'Hello World' projektet klĂłnozta a helyi tĂĄrhelyĂŒnkre.
- LĂĄttam, hogy van maven pom, ezĂ©rt a maven segĂtsĂ©gĂ©vel lefordĂtottam az alkalmazĂĄst.
- LĂ©trehoztam egy Ășj kontĂ©nerkĂ©pet, ami a lefordĂtott Java alkalmazĂĄst tartalmazza, Ă©s ezt a kĂ©pet elhelyeztem a belsĆ kontĂ©nerregiszterben.
- KĂ©szĂtettem egy Kubernetes Deployment-et pod, szolgĂĄltatĂĄs stb. specifikĂĄciĂłkkal.
- ElindĂtottam a kontĂ©nerkĂ©p deployĂĄlĂĄsĂĄt.
- Töröltem a build-pod szolgåltatåst.
Ebben a listĂĄban sok minden szerepel, de a lĂ©nyeg, hogy az egĂ©sz build kifejezetten az OpenShift belsejĂ©ben zajlik, a belsĆ Docker-regiszter is itt talĂĄlhatĂł, Ă©s a build folyamata lĂ©trehozza az összes Kubernetes komponenst Ă©s elindĂtja Ćket a klaszterben.
Ha vizuĂĄlisan nyomon követjĂŒk az S2I indĂtĂĄsĂĄt a konzolban, lĂĄthatjuk, hogy a build pod elindulĂĄsa közben hogyan fut le a build.

Most nĂ©zzĂŒk meg a builder pod naplĂłit: elĆször is, lĂĄthatĂł, hogy a maven hogyan vĂ©gzi a munkĂĄjĂĄt Ă©s tölti le a fĂŒggĆsĂ©geket a Java alkalmazĂĄsunk buildelĂ©sĂ©hez.

MiutĂĄn befejezĆdött a maven build, elindul a kontĂ©nerkĂ©p build folyamata, majd ez a lĂ©trehozott kĂ©p elkĂŒldĂ©sre kerĂŒl a belsĆ tĂĄrolĂłba.

KĂ©sz, a build folyamata befejezĆdött. Most ellenĆrizzĂŒk, hogy a klaszterben elindultak a podok Ă©s a szolgĂĄltatĂĄsok a mi alkalmazĂĄsunk szĂĄmĂĄra.
oc get service
![]()
Ennyi, Ă©s mindez egyetlen parancs. MĂĄr csak annyit kell tennĂŒnk, hogy kiadjuk ennek a szolgĂĄltatĂĄsnak a kitettsĂ©gĂ©t a kĂŒlsĆ hozzĂĄfĂ©rĂ©s Ă©rdekĂ©ben.
3. lĂ©pĂ©s â a szolgĂĄltatĂĄs kitettsĂ©ge kĂŒlsĆ hozzĂĄfĂ©rĂ©s Ă©rdekĂ©ben
Ahogy a KUK esetĂ©ben, az OpenShift platformon a mi 'Hello World'-ĂŒnkhöz is szĂŒksĂ©g van egy routerre, hogy a kĂŒlsĆ forgalmat irĂĄnyĂtani tudja a klaszter belsĆ szolgĂĄltatĂĄsĂĄra. Az OpenShift ezt nagyon egyszerƱvĂ© teszi. ElĆször is, a klaszterben alapĂ©rtelmezetten telepĂtve van a HAProxy router komponens (amit ĂĄt lehet cserĂ©lni ugyanarra NGINX-re). MĂĄsodszor, itt vannak a speciĂĄlis Ă©s szĂ©leskörben konfigurĂĄlhatĂł erĆforrĂĄsok, amelyeket Route-nak hĂvnak, Ă©s hasonlĂtanak a rĂ©gi jĂł Kubernetes Ingress objektumokra (valĂłjĂĄban az OpenShift Route-ok jelentĆsen befolyĂĄsoltĂĄk az Ingress objektumok tervezĂ©sĂ©t, amelyeket most mĂĄr OpenShift-ben is lehet hasznĂĄlni), de a mi 'Hello World'-ĂŒnkhöz, Ă©s szinte minden mĂĄs esetben elegendĆ lesz a standard Route kiegĂ©szĂtĆ beĂĄllĂtĂĄs nĂ©lkĂŒl.
Ahhoz, hogy lĂ©trehozzunk egy ĂștvĂĄlasztott FQDN-t a 'Hello World' szĂĄmĂĄra (igen, OpenShift-ben van DNS az szolgĂĄltatĂĄsneveken törtĂ©nĆ ĂștvĂĄlasztĂĄshoz), egyszerƱen vĂ©grehajtjuk a szolgĂĄltatĂĄsunk kitettsĂ©gĂ©t:

oc expose service quarkus-hello-world
Ha megnĂ©zzĂŒk az Ă©ppen lĂ©trehozott Route-ot, akkor ott talĂĄlunk FQDN-t Ă©s egyĂ©b ĂștvĂĄlasztĂĄsi informĂĄciĂłkat:
oc get route
![]()
VĂ©gĂŒl pedig megkeressĂŒk a szolgĂĄltatĂĄsunkat a böngĂ©szĆbĆl:

Most mår ez tényleg könnyƱ volt!
SzeretjĂŒk a Kubernetes-t Ă©s mindazt, amit ez a technolĂłgia lehetĆvĂ© tesz, valamint a egyszerƱsĂ©get Ă©s könnyedsĂ©get. A Kubernetes-t Ășgy fejlesztettĂ©k ki, hogy hihetetlenĂŒl megkönnyĂtse a felosztott, skĂĄlĂĄzhatĂł kontĂ©nerek ĂŒzemeltetĂ©sĂ©t, de ma mĂĄr nem elĂ©g egyszerƱ az alkalmazĂĄsok ĂŒzembe helyezĂ©sĂ©hez. Itt lĂ©p szĂnre az OpenShift, amely lĂ©pĂ©st tart a korral, Ă©s a Kubernetes-t elsĆsorban a fejlesztĆk szĂĄmĂĄra optimalizĂĄlja. Rengeteg energiĂĄt fektettek az OpenShift platform kifejlesztĂ©sĂ©be a fejlesztĆk igĂ©nyeinek megfelelĆen, beleĂ©rtve olyan eszközök lĂ©trehozĂĄsĂĄt, mint az S2I, ODI, FejlesztĆi PortĂĄl, OpenShift Operator Framework, IDE integrĂĄciĂł, FejlesztĆi KatalĂłgusok, Helm integrĂĄciĂł, monitoring Ă©s sok mĂĄs.
RemĂ©ljĂŒk, hogy ez a cikk Ă©rdekes Ă©s hasznos volt az Ăn szĂĄmĂĄra. TovĂĄbbi forrĂĄsokat, anyagokat Ă©s egyĂ©b hasznos informĂĄciĂłkat a fejlesztĂ©shez az OpenShift platformon a következĆ portĂĄlon talĂĄlhatja: .
ForrĂĄs: habr.com
