Cov ntawv tshaj tawm no tau sau vim tias peb cov neeg ua haujlwm tau sib tham ntau nrog cov neeg siv khoom txog kev txhim kho daim ntawv thov ntawm Kubernetes thiab qhov tshwj xeeb ntawm kev txhim kho ntawm OpenShift.
Peb feem ntau pib nrog cov thesis uas Kubernetes tsuas yog Kubernetes xwb, thiab OpenShift twb yog Kubernetes platform, zoo li Microsoft AKS lossis Amazon EKS. Txhua lub platforms muaj nws tus kheej zoo, tsom rau cov neeg tuaj saib tshwj xeeb. Thiab tom qab no, kev sib tham tig los sib piv qhov muaj zog thiab qhov tsis muaj zog ntawm cov platforms tshwj xeeb.
Feem ntau, peb xav txog kev sau cov ntawv no nrog cov lus xaus zoo li "Mloog, nws tsis muaj teeb meem qhov twg yuav khiav cov cai, ntawm OpenShift lossis ntawm AKS, ntawm EKS, ntawm qee qhov kev cai Kubernetes, lossis ntawm Kubernetes dab tsi (rau brevity cia peb hu nws KUK) "Nws yooj yim heev, ob qho tib si nyob ntawd thiab muaj."
Tom qab ntawd peb tau npaj los ua qhov yooj yim tshaj plaws "Nyob Zoo Ntiaj Teb" thiab siv nws qhov piv txwv los qhia tias muaj dab tsi thiab qhov txawv ntawm KUC thiab Red Hat OpenShift Container Platform (tom qab no, OCP lossis tsuas yog OpenShift).
Txawm li cas los xij, thaum peb tau sau cov ntawv no, peb pom tau tias peb tau siv los siv OpenShift ntev heev uas peb tsuas tsis paub tias nws tau loj hlob li cas thiab hloov mus rau hauv lub platform zoo heev uas tau dhau los ua ntau dua li Kubernetes faib. Peb nyiam coj qhov kev loj hlob thiab kev yooj yim ntawm OpenShift kom pom zoo, thiab tsis pom nws qhov ci ntsa iab.
Feem ntau, lub sijhawm tau los txog rau kev hloov siab lees txim, thiab tam sim no peb yuav ua ib kauj ruam piv rau kev ua haujlwm ntawm peb "Nyob Zoo Ntiaj Teb" ntawm KUK thiab ntawm OpenShift, thiab peb yuav ua qhov no raws li qhov ua tau (zoo, tshwj tsis yog qee zaum qhia ib qho. tus kheej tus cwj pwm rau qhov kev kawm). Yog tias koj txaus siab rau lub tswv yim ntshiab ntawm qhov teeb meem no, koj tuaj yeem nyeem nws ntawm no (EN). Thiab nyob rau hauv no ncej peb yuav lo rau qhov tseeb thiab tsuas yog qhov tseeb.
Pawg
Yog li, peb "Nyob Zoo Ntiaj Teb" xav tau pawg. Peb mam li hais tam sim ntawd "tsis muaj" rau cov huab huab, kom tsis txhob them nyiaj rau servers, npe, tes hauj lwm, hloov ntaub ntawv, thiab lwm yam. Raws li, peb xaiv ib qho yooj yim ib-node pawg rau Minikube (rau KUK) thiab Cov Ntawv Npaj Tos (rau OpenShift pawg). Ob qho ntawm cov kev xaiv no yooj yim heev rau nruab, tab sis yuav xav tau ntau cov peev txheej ntawm koj lub laptop.
Assembly on KUK-e
Yog li cia peb mus.
Kauj Ruam 1 - tsim peb lub thawv duab
Cia peb pib los ntawm kev xa peb "Hello World" rau minikube. Txhawm rau ua qhov no koj yuav xav tau:
1. Docker ntsia.
2. Git ntsia.
3. Nruab Maven (qhov tseeb, qhov project no siv mvnw binary, yog li koj tuaj yeem ua yam tsis muaj nws).
Muaj ntau txoj hauv kev los sib sau ua ke kubernetes teeb tsa los khiav peb "Nyob Zoo Ntiaj Teb", tab sis peb yuav siv qhov yooj yim ntawm lawv, qhov ntawd yog qhov peb ...
Ua ntej, cia peb tso lub minikube pawg:
minikube start
Kauj Ruam 4 - xa peb cov duab ntim
Tam sim no peb yuav tsum hloov peb cov lej thiab cov duab ntim rau hauv kubernetes teeb tsa. Hauv lwm lo lus, peb xav tau lub pod thiab xa tawm txhais taw rau peb lub thawv duab ntawm dockerhub. Ib qho ntawm txoj hauv kev yooj yim tshaj plaws los ua qhov no yog khiav cov lus txib tsim xa mus rau peb cov duab:
Nrog rau cov lus txib no peb tau hais rau peb COO los tsim ib qho kev xa tawm, uas yuav tsum muaj cov pod specification rau peb lub thawv duab. Cov lus txib no tseem yuav siv qhov kev teeb tsa no rau peb lub minikube pawg, thiab tsim kev xa tawm uas yuav rub tawm peb lub thawv duab thiab tso lub pod hauv pawg.
Tam sim no peb muaj cov duab ntim khoom siv, nws yog lub sijhawm los xav txog yuav ua li cas los teeb tsa kev siv sab nraud rau qhov kev pabcuam Restful, uas, qhov tseeb, yog programmed hauv peb cov cai.
Muaj ntau txoj hauv kev ntawm no. Piv txwv li, koj tuaj yeem siv cov lus qhia tawm kom tau txais cov khoom tsim nyog Kubernetes, xws li cov kev pabcuam thiab cov ntsiab lus kawg. Qhov tseeb, qhov no yog qhov peb yuav ua los ntawm kev ua tiav cov lus txib expose rau peb cov khoom xa tawm:
Cia peb siv sijhawm ib pliag los saib qhov "-type" kev xaiv ntawm cov lus qhia nthuav tawm.
Thaum peb nthuav tawm thiab tsim cov khoom tsim nyog los khiav peb cov kev pabcuam, peb, ntawm lwm yam, yuav tsum muaj peev xwm txuas tau los ntawm sab nraud mus rau qhov kev pabcuam nyob zoo-quarkus, uas nyob hauv peb lub software-txhais network. Thiab parameter hom tso cai rau peb los tsim thiab txuas tej yam xws li load balancers rau txoj kev tsheb mus rau lub network no.
Piv txwv li, los ntawm kev sau ntawv type=LoadBalancer, peb cia li muab cov khoom sib npaug hauv cov huab huab rau pej xeem txuas rau peb cov Kubernetes pawg. Qhov no, tau kawg, yog qhov zoo, tab sis koj yuav tsum nkag siab tias qhov kev teeb tsa zoo li no yuav raug khi nruj rau cov huab huab tshwj xeeb thiab yuav nyuaj dua rau kev hloov pauv ntawm Kubernetes piv txwv hauv ntau qhov chaw.
Hauv peb qhov piv txwv type=NodePort, uas yog, peb cov kev pabcuam tau nkag los ntawm node tus IP chaw nyob thiab tus lej chaw nres nkoj. Qhov kev xaiv no tso cai rau koj kom tsis txhob siv cov huab huab, tab sis yuav tsum muaj ntau cov kauj ruam ntxiv. Ua ntej, koj xav tau koj tus kheej load balancer, yog li peb yuav xa NGINX load balancer hauv peb pawg.
Kauj ruam 6 - nruab ib lub load balancer
minikube muaj ntau lub platform ua haujlwm uas ua rau nws yooj yim dua los tsim cov khoom siv sab nraud, xws li ingress controllers. Minikube los nrog Nginx ingress maub los, thiab txhua yam peb yuav tsum ua yog pab nws thiab teeb tsa nws.
minikube addons enable ingress
Tam sim no peb yuav tsim Nginx ingress controller nrog ib qho lus txib, uas yuav ua haujlwm hauv peb pawg minikube:
Txij li thaum peb tab tom ua txhua yam no ntawm peb lub khoos phis tawj, peb tsuas yog ntxiv peb qhov chaw nyob IP rau /etc/ hosts cov ntaub ntawv kom xa http thov rau peb lub minikube mus rau NGINX load balancer.
192.168.99.100 hello-quarkus.info
Ntawd yog nws, tam sim no peb cov kev pabcuam minikube tuaj yeem nkag mus rau sab nraud los ntawm Nginx ingress controller.
Tam sim no cia saib yuav ua li cas tag nrho qhov no ua tiav ntawm Red Hat OpenShift Container Platform (OCP).
Raws li nrog minikube, peb xaiv ib leeg-node OpenShift pawg tsim nyob rau hauv daim ntawv ntawm Code Ready Containers (CRC). Yav dhau los, nws tau hu ua minishift thiab tau ua raws li qhov project OpenShift Keeb Kwm, tab sis tam sim no nws yog CRC thiab tsim los ntawm Red Hat's OpenShift Container Platform.
Ntawm no, thov txim, pab tsis tau tab sis hais tias: "OpenShift zoo heev!"
Thaum pib, peb xav sau tias kev txhim kho ntawm OpenShift tsis txawv ntawm kev txhim kho ntawm Kubernetes. Thiab nyob rau hauv essence qhov no yog li cas nws yog. Tab sis nyob rau hauv tus txheej txheem ntawm kev sau ntawv no, peb nco ntsoov muaj pes tsawg lub zog ntxiv uas koj yuav tsum tau ua thaum koj tsis muaj OpenShift, thiab yog vim li cas, dua, nws zoo heev. Peb hlub nws thaum txhua yam ua tiav yooj yim, thiab yooj yim npaum li cas peb tus qauv yog siv thiab khiav ntawm OpenShift piv rau minikube yog qhov ua rau peb sau cov ntawv no.
Cia peb mus dhau cov txheej txheem thiab saib seb peb yuav tsum ua li cas.
Builder duab nyob rau hauv lub hauv paus ntawm qhov tsim yuav ua.
Muaj ntau cov duab zoo li no tau khaws cia ob qho tib si los ntawm Red Hat thiab hauv zej zog, thiab peb yuav siv cov duab OpenJDK, zoo, txij li kuv tab tom tsim daim ntawv thov Java.
Koj tuaj yeem khiav S2I tsim ob qho tib si los ntawm OpenShift Developer graphical console thiab los ntawm kab hais kom ua. Peb yuav siv cov lus txib tshiab-app, qhia nws qhov twg kom tau txais cov duab tsim thiab peb qhov chaws.
Yog tias koj pom qhov muag pom kev tshaj tawm ntawm S2I hauv lub console, koj tuaj yeem pom yuav ua li cas lub pob tsim tau pib thaum tsim tiav.
Tam sim no cia peb saib ntawm cov cav ntoo tsim: ua ntej, nws qhia tau hais tias maven ua nws txoj haujlwm li cas thiab rub tawm cov kev vam meej los tsim peb daim ntawv thov java.
Tom qab kev tsim maven tiav lawm, kev tsim cov duab ntim tau pib, thiab tom qab ntawd cov duab tsim no raug xa mus rau qhov chaw cia khoom sab hauv.
Qhov ntawd yog nws, cov txheej txheem tsim ua tiav. Tam sim no cia peb paub tseeb tias cov pods thiab cov kev pabcuam ntawm peb daim ntawv thov tau khiav hauv pawg.
oc get service
Yog tag nrho. Thiab tsuas yog ib pab neeg xwb. Txhua yam peb tau ua yog nthuav tawm cov kev pabcuam no rau kev nkag los ntawm sab nraud.
Kauj Ruam 3 β nthuav tawm cov kev pabcuam rau kev nkag los ntawm sab nraud
Ib yam li KUC, ntawm OpenShift platform peb "Nyob Zoo Ntiaj Teb" kuj xav tau lub router los coj cov tsheb khiav tawm sab nraud rau cov kev pabcuam hauv pawg. OpenShift ua qhov no yooj yim heev. Ua ntej, HAProxy routing tivthaiv tau nruab rau hauv pawg los ntawm lub neej ntawd (nws tuaj yeem hloov mus rau tib NGINX). Thib ob, muaj cov kev pabcuam tshwj xeeb thiab tsim tau zoo heev hu ua Routes thiab nco txog cov khoom Ingress hauv Kubernetes qub (qhov tseeb, OpenShift's Routes tau cuam tshuam rau kev tsim cov khoom Ingress, uas tam sim no siv tau hauv OpenShift), tab sis rau peb "nyob zoo ntiaj teb" , thiab nyob rau hauv yuav luag txhua lwm yam, tus txheej txheem Route yog txaus rau peb yam tsis muaj configuration ntxiv.