Një udhëzues hap pas hapi me një projekt shembull

GKE është zgjidhja e menaxhuar e Kubernetes e Google që ju lejon të ekzekutoni dhe menaxhoni aplikacionet e kontejnerizuara në cloud. Meqenëse ky është një shërbim i menaxhuar Kubernetes, mund të filloni shpejt me grupe me një klikim të vetëm, të përdorni një plan kontrolli me disponueshmëri të lartë duke përfshirë grupe shumëzonale dhe rajonale, të eliminoni shpenzimet e përgjithshme operacionale me kanale automatike riparimi, përmirësimi automatik dhe lëshimi, të sigurt si parazgjedhje, duke përfshirë skanimin e dobësive të imazheve të kontejnerëve dhe enkriptimin e të dhënave, Monitorimin e integruar të Cloud me infrastrukturën, aplikacionin dhe pamjet specifike të Kubernetes

Në këtë postim, ne do të vendosim një aplikacion React me një mjedis Java. Së pari, ne e lidhim aplikacionin tonë dhe e shtyjmë atë imazh në regjistrin e kontejnerit të Google dhe e ekzekutojmë atë aplikacion në Google GKE. Do të shohim se si mund të ndërtojmë grupin Kubernetes në Google GKE, qasjen në grupe nga jashtë, konfigurimin e kubectl për të punuar me grupin GKE dhe shumë të tjera.

  • Shembull i projektit
  • Parakushtet
  • Instalo gcloud CLI dhe Konfiguro
  • Dockerize projektin
  • Shtyrja e imazhit të Docker në Regjistrin e Kontejnerit
  • Krijimi i grupit GKE
  • Konfiguro Kuebctl me GKE Cluster
  • Shpërndani objektet e Kubernetes në grupin GKE
  • Qasni në aplikacionin uebi nga shfletuesi
  • Përmbledhje
  • Përfundim

Shembull Projekt

Ky është një projekt i thjeshtë i cili demonstron zhvillimin dhe ekzekutimin e aplikacionit React me Java. Ne kemi një aplikacion të thjeshtë në të cilin mund të shtojmë përdorues, t'i numërojmë dhe t'i shfaqim në anë dhe t'i marrim kur të dëshironi.

Nëse dëshironi të praktikoni tuajën, këtu është një lidhje Github për këtë projekt. Mund ta klononi dhe ta ekzekutoni gjithashtu në kompjuterin tuaj.

// clone the project
git clone https://github.com/bbachi/react-java-gke.git
// change directory
cd react-java-gke
// install
mvn clean install
// Run the app
java -jar target/users-0.0.2-SNAPSHOT.jar

Parakushtet

  • Nëse jeni i ri në React, ju lutemi kaloni në lidhjen e mëposhtme se si të zhvilloni dhe ndërtoni projektin React me Java backend.

Si të zhvilloni dhe ndërtoni aplikacionin React me Java Backend

Parakushtet e tjera për këtë postim janë gjërat thelbësore të Docker dhe gjërat thelbësore të Kubernest. Ne nuk do të diskutojmë bazat si p.sh. çfarë është një kontejner ose çfarë është Kubernetes, përkundrazi, do të shohim se si të ndërtojmë një grup Kubernetes në GCP GKE. Më poshtë janë parakushtet që duhet të dini përpara se të kaloni nëpër këtë artikull

Docker Essentials

Ju duhet të kuptoni konceptet e Docker si krijimi i imazheve, menaxhimi i kontejnerëve, etj. Më poshtë janë disa nga lidhjet që mund të kuptoni rreth Docker nëse jeni i ri.

  • "Docker Docs"
  • "Docker - Një udhëzues fillestar për Dockerfile me një projekt shembull"
  • "Docker - Krijimi dhe Menaxhimi i imazhit"
  • "Docker - Menaxhimi i kontejnerëve me shembuj"
  • "Kuptimi i vëllimeve të Docker me një shembull"

Kubernetes Essentials

Ju duhet të kuptoni gjërat thelbësore të Kubernetes, si dhe gjërat thelbësore të Docker. Këtu janë disa nga dokumentet për t'ju ndihmuar të kuptoni konceptet e Kubernetes.

  • "Kubernetes Docs"
  • "Si të filloni me Kubernetes"
  • "Disa projekte shembuj"

Parakushtet GCP

  • Krijo një projekt të ri
  • Duhet të krijoni një llogari faturimi
  • Lidhni llogarinë e faturimit me këtë projekt
  • Aktivizo të gjitha API-të që na duhen për të ekzekutuar rrjedhën e të dhënave në GCP
  • Shkarkoni Google SDK

Llogaria e Shërbimit

Duhet të krijoni një llogari shërbimi në mënyrë që kur të ekzekutoni aplikacionin nga kompjuteri juaj lokal, ai të mund të thërrasë tubacionin e rrjedhës së të dhënave GCP me lejet e pronarit.

Ju duhet të gjeneroni çelësin dhe të shkarkoni dhe të vendosni variablin e mjedisit të quajtur GOOGLE_APPLICATION_CREDENTIALS.

export GOOGLE_APPLICATION_CREDENTIALS="/Users/bhargavbachina/gcp-credentials/gcp-dataflow-service-account.json"

Më në fund, mund të ekzekutoni komandën e mëposhtme për t'u identifikuar në llogarinë tuaj GCP.

gcloud auth login

Instaloni gcloud CLI dhe Konfiguro

Pasi të keni llogarinë GCP, mund të instaloni mjetin e linjës së komandës gcloud. Mund të shkoni te dokumentacioni i mëposhtëm dhe të instaloni gcloud CLI bazuar në sistemin tuaj operativ. Ju mund të konfiguroni gcloud CLI me projektin tuaj.

Gcloud CLI është pjesë e Google Cloud SDK. Ju duhet të "shkarkoni dhe instaloni SDK" në sistemin tuaj dhe "ta inicializoni atë" përpara se të mund të përdorni mjetin e linjës së komandës gcloud

// initializing
gcloud init
// auth login
gcloud auth login

Pasi të ekzekutoni komandën e mësipërme, ai hap një shfletues që ju të identifikoheni në GCP tuaj dhe ju merrni përgjigjen si më poshtë.

Ju mund të listoni projektet me komandën e mëposhtme.

gcloud projects list

Ju mund të vendosni projektin aktual me komandën e mëposhtme.

gcloud config set project staticweb-test

Dockerizimi i Projektit

Google GKE është një shërbim i menaxhuar që ju bën të lehtë ekzekutimin e Kubernetes në platformën e resë kompjuterike të Google. Gjëja e parë që duhet të bëni është të lidhni projektin tuaj.

ne duhet të krijojmë një Dockerfile që krijon një imazh Docker. Këtu është skedari i cili fillon me komandën FROM dhe me imazhin bazë openjdk:8-jre-alpine. Kopjo skedarin e gjeneruar të luftës dhe më në fundkomandën CMD që ekzekutohet kur imazhi instantohet.

Këtu është Dockerfile dhe po përdor OpenJDK si një imazh bazë.

Nëse dëshironi të dini të gjithë procesin e krijimit të një imazhi Docker për këtë projekt, ju lutemi kontrolloni lidhjen e mëposhtme.

Dockerizing React App With Java Backend

Këtu janë komandat për të ndërtuar imazhin dhe për ta ekzekutuar atë në motorin Docker në makinën tuaj lokale.

// build the image
docker build -t react-java-image .
// running on Image
docker run -d -it -p  8080:8080 --name react-java-ui react-java-image
// list the images you just built
docker images
//list containers
docker ps

Shtyrja e imazhit të Docker në Regjistrin e Kontejnerit

Regjistri i kontejnerëve është një vend i vetëm për ekipin tuaj për të menaxhuar imazhet e Docker, për të kryer analiza të cenueshmërisë dhe për të vendosur se kush mund të ketë akses në çfarë me kontrollin e hollësishëm të aksesit. Integrimet ekzistuese CI/CD ju lejojnë të konfiguroni tubacione plotësisht të automatizuara Docker për të marrë reagime të shpejta. "Ju mund të kontrolloni të gjithë dokumentacionin këtu."

GCP GKE punon me çdo regjistër Docker si Docker Hub, etj. Por, në këtë postim, ne shohim se si mund të përdorim një regjistër të kontejnerëve GCP për të ruajtur imazhet tona Docker. Sigurohuni që të aktivizoni API-në përkatëse në GCP. Nëse identifikoheni dhe shkoni te Regjistri i Kontejnerëve, mund të shihni regjistrin bosh.

Gjëja e parë që duhet të bëjmë është të aktivizojmë API-në me komandën e mëposhtme.

gcloud services enable containerregistry.googleapis.com

Ju duhet të konfiguroni docker me komandën e mëposhtme. "Dokumentacionin e plotë mund ta shihni këtu."

gcloud auth configure-docker

Siç e kemi parë në seksionin Shembull i Projektit, le të ndërtojmë imazhin Docker me komandën e mëposhtme.

docker build -t react-java .

Le të etiketojmë imazhin lokal të dokerit me emrin e regjistrit duke përdorur komandën:

docker tag [SOURCE_IMAGE] [HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]
// run this command
docker tag react-java gcr.io/staticweb-test/react-webapp:v1

Së fundi, shtyjeni imazhin në regjistrin e kontejnerit GCP

docker push gcr.io/staticweb-test/react-webapp:v1

Ju gjithashtu mund të shihni depon në tastierë.

Krijimi i grupit GKE

Ne e kemi futur imazhin Docker në regjistrin e kontejnerëve dhe është koha për të krijuar një grup GKE. Ju mund të krijoni grupin me komandën e mëposhtme.

gcloud container clusters create my-cluster

Por, do të shohim se si mund të krijojmë Cluster përmes tastierës. Shkoni te paneli i kontrollit GKE në tastierën GCP. Klikoni butonin për të krijuar një grup.

Ai ju bën disa pyetje themelore si lloji i vendndodhjes, versioni i kubernetes, etj.

Pasi të klikoni në butonin e krijimit në ekranin e mësipërm, krijohet grupi me tre Nyje.

Mund të klikoni në grup dhe të shkoni te seksioni i detajeve ku mund të shihni nyjet.

Ju mund të rendisni grupimet me komandën e mëposhtme.

gcloud container clusters list

Konfiguro Kuebctl me GKE Cluster

Kubectl është mjeti i linjës së komandës për Kubernetes. Duhet të instaloni kubectl përpara se ta konfiguroni. Klikoni në butonin e lidhjes në tastierë në mënyrë që t'ju japë një komandë për të konfiguruar kubectl me GKE Cluster.

Thjesht kopjoni komandën e mëposhtme dhe ekzekutoni atë në terminalin tuaj.

gcloud container clusters get-credentials frontend-cluster --zone us-central1-c --project staticweb-test

Pasi të ekzekutoni këtë komandë, kubectl është konfiguruar të përdorë GKE Cluster dhe madje mund të merrni nyjet nga grupi.

Vendosni objektet Kubernetes në grupin GKE

Tani ne kemi konfiguruar kubectl për të përdorur GCP GKE nga makina jonë. Le të krijojmë objekte të vendosjes dhe shërbimit dhe të përdorim imazhin nga Regjistri i kontejnerëve GCP.

Së pari, ju duhet të merrni URL-në e depove nga seksioni i detajeve të Regjistrit të kontejnerëve ku banon depozituesi ynë.

Këtu është skedari i manifestit që përmban këto objekte. Vini re se po përdorim të njëjtin depo nga Regjistri i Kontejnerëve.

Nëse keni klonuar projektin e shembullit të mësipërm dhe jeni në dosjen rrënjë, thjesht përdorni këtë komandë për të krijuar objekte kubectl create -f manifest.yml

Ju mund të përdorni komandat e mëposhtme për të verifikuar që të gjitha objektet janë në gjendjen e dëshiruar.

// list the deployment
kubectl get deploy
// list the pods
kubectl get po
// list the service
kubectl get svc

Ne mund të shohim 5 pods që funksionojnë pasi kemi përcaktuar 5 kopje për vendosjen.

Hyni në WebApp nga shfletuesi

Ne kemi krijuar një shërbim me llojin LoadBalancer. Mund të merrni IP-në e jashtme nga shërbimi dhe të përdorni të gjithën nga shfletuesi.

Mund të hyni në aplikacionin uebi me URL-në e mëposhtme

http://34.66.218.51:8080

Fshi grupin

Thjesht mund të fshini grupin me komandën e mëposhtme. Sigurohuni që ta fshini nëse nuk dëshironi të keni tarifa.

gcloud container clusters delete [CLUSTER_NAME]

Përmbledhje

  • GKE është zgjidhja e menaxhuar e Kubernetes e Google që ju lejon të ekzekutoni dhe menaxhoni aplikacionet e kontejnerizuara në cloud.
  • Para se të filloni këtë, ju duhet të keni docker dhe Kubernetes thelbësore. Nëse nuk i keni këto gjëra thelbësore, ju lutemi kaloni nëpër këto me lidhjet e dhëna.
  • Këtu duhet të krijoni një "Llogari GCP".
  • Ju duhet një llogari faturimi për t'u lidhur me projektin tuaj në mënyrë që e gjithë kostoja të faturohet në këtë llogari faturimi.
  • Ju mund të krijoni grupin GKE përmes një tastierë, Gcloud CLI, REST API gjithashtu.
  • Mund të instaloni gcloud CLI dhe ta konfiguroni për t'u përdorur me GKE Cluster-in tuaj.
  • Konfiguro kubectl për të përdorur grupin GKE.
  • Krijo një vendosje dhe shërbim me Loadbalancer në mënyrë që të mund të qasesh nga jashtë.
  • Mund të hyni në panelin e kontrollit me Kubeconfig ose Token.
  • Sigurohuni që ta fshini nëse nuk dëshironi të keni tarifa.

konkluzioni

Ne kemi vendosur një aplikacion të thjeshtë Angular me Nodejs Backend në Google GKE Cluster dhe aksesojmë atë nga shfletuesi. Në postimet e ardhshme, ne mund të shohim raste më të avancuara të përdorimit.