Primijenite Spring Boot aplikaciju na OpenShift
1. Pregled
U ovom uputstvu pokazat ćemo kako rasporediti aplikaciju iz našeg Bootstrapa jednostavne aplikacije pomoću vodiča Spring Boot za Openshift.
Kao dio ovoga ćemo:
- Instalirajte i konfigurirajte razvojne alate Openshift.
- Stvorite projekt Openshift i implementaciju MySQL-a.
- Konfigurirajte aplikaciju za Spring Cloud Kubernetes.
- Stvorite i postavite aplikaciju u spremnik pomoću dodatka Fabric8 Maven i testirajte i prilagodite aplikaciju.
2. Konfiguracija preusmjeravanja
Prvi, moramo instalirati Minishift, lokalni Openshift klaster s jednim čvorom i klijent Openshift.
Prije upotrebe Minishifta moramo konfigurirati dozvole za korisnika programera:
minishift addons instalirati - zadane postavke minishift addons omogućiti admin-user minishift start oc adm policy --kao sustav: admin add-cluster-role-to-user cluster-admin programer
Sada želimo koristiti Openshift Console za stvaranje MySQL usluge. URL preglednika možemo pokrenuti pomoću:
minishift konzola
Ako niste automatski prijavljeni, tada upotrijebite programer / programer.
Izradite projekt s imenom baeldung-demo a zatim iz kataloga stvorite uslugu baze podataka MySQL. Pružiti baeldung-db za uslugu baze podataka, baeldung_db za MySQL Ime baze podataka, a ostale vrijednosti ostavite prema zadanim postavkama.
Sada imamo uslugu i tajne za pristup bazi podataka. Zabilježite url veze baze podataka: mysql: // baeldung-db: 3306 / baeldung_db
Također moramo omogućiti aplikacijama čitanje konfiguracije poput Kubernetes Secrets i ConfigMaps:
oc stvoriti obvezujući prikaz zadataka --clusterrole = view \ --serviceaccount = baeldung-demo: default --namespace = baeldung-demo
3. Ovisnosti o proljetnom oblaku Kubernetes
Upotrijebit ćemo projekt Spring Cloud Kubernetes da omogućimo API-je nativne za Cloud za Kubernetes koji podupiru Openshift:
openshift org.springframework.cloud proljeće-oblak-kubernetes-ovisnosti 0.3.0.RELEASE pom import org.springframework.cloud proljeće-oblak-ovisnosti Greenwich.RELEASE pom import org.springframework.cloud proljeće-oblak-starter-kubernetes-config org .springframework.pokretanje pokretača opruge-pokretač-pokretač
Također ćemo koristiti dodatak Fabric8 Maven za izgradnju i implementaciju spremnika:
io.fabric8 fabric8-maven-plugin 3.5.37 fmp build build
4. Konfiguracija aplikacije
Sada moramo osigurati konfiguraciju kako bismo osigurali da se ispravni proljetni profili i Kubernetesove tajne ubrizgaju kao varijable okoliša.
Stvorimo YAML fragment u src / main / fabric8 tako da će ga dodatak Fabric8 Maven koristiti prilikom stvaranja konfiguracije implementacije.
Također trebamo dodati odjeljak za aktuator Spring Boot jer zadani u Fabric8 i dalje pokušava pristupiti /zdravlje umjesto / aktuator / zdravlje:
spec: predložak: spec: spremnici: - env: - ime: SPRING_PROFILES_ACTIVE vrijednost: mysql - ime: SPRING_DATASOURCE_USER valueFrom: secretKeyRef: name: baeldung-db ključ: korisnik baze podataka - ime: SPRING_DATASOURCE_PASSWORD valueFeld: tajni df: tajni : baza podataka-lozinka livenessProbe: httpGet: put: / aktuator / priključak zdravlja: 8080 shema: HTTP početniDelaySeconds: 180 spremnostiProbe: httpGet: put: / aktuator / zdravstveni port: 8080 shema: HTTP početniDelaySeconds: 30
Sljedeći, spasit ćemo a ConfigMap u openshift / configmap.yml, ovo sadrži podatke za primjena.svojstva s MySQL URL-om:
apiVersion: v1 vrsta: ConfigMap metapodaci: ime: spring-boot-bootstrap podaci: application.properties: | - spring.datasource.url = jdbc: mysql: // baeldung-db: 3306 / baeldung_db
Prije interakcije s Openshiftom pomoću klijenta naredbenog retka moramo se prijaviti. U gornjem desnom dijelu web konzole nalazi se ikona korisnika s koje možemo odabrati padajući izbornik s oznakom "Kopiraj naredbu za prijavu". Zatim upotrijebite u ljusci:
oc prijava //192.168.42.122:8443 --token =
Provjerimo koristimo li ispravan projekt:
oc projekt baeldung-demo
I onda prenosimo ConfigMap:
oc create -f openshift / configmap.yml
5. Raspoređivanje
Tijekom postavljanja dodatak Fabric8 Maven pokušava odrediti konfigurirani port. Postojeće primjena.svojstva datoteka u našem primjeru aplikacije koristi izraz za definiranje porta koji dodatak ne može raščlaniti. Stoga moramo komentirati redak:
# server.port = $ {port: 8080}
od struje primjena.svojstva.
Sada smo spremni za implementaciju:
mvn čista tkanina8: implementacija -P openshift
Napredak implementacije možemo pratiti dok ne vidimo da se naša aplikacija izvodi:
oc dobiti mahune -w
Treba pružiti popis:
NAZIV SPREMNI STATUS RESTARTIRA DOBA baeldung-db-1-9m2cr 1/1 Trčanje 1 1h spring-boot-bootstrap-1-x6wj5 1/1 Trčanje 0 46s
Prije nego što testiramo aplikaciju, moramo odrediti rutu:
oc dobiti rute
Ispisat će rute u trenutnom projektu:
IME HOST / LUKA PATH USLUGE PRESTANAK LUKE WILDCARD spring-boot-bootstrap spring-boot-bootstrap-baeldung-demo.192.168.42.122.nip.io spring-boot-bootstrap 8080 Nema
Sad, provjerimo da li naša aplikacija radi dodavanjem knjige:
http POST //spring-boot-bootstrap-baeldung-demo.192.168.42.122.nip.io/api/books \ author = "Iain M. Banke"
Očekujući sljedeći izlaz:
HTTP / 1.1 201 {"autor": "Iain M. Banks", "id": 1, "naslov": "Igrač igara"}
6. Skaliranje aplikacije
Skalirajmo implementaciju tako da pokrene 2 instance:
oc razmjera --replicas = 2 dc opruga-boot-bootstrap
Tada možemo koristiti iste korake kao i ranije, da bismo gledali njegovo postavljanje, pronalaženje ruta i testiranje krajnje točke.
Openshift pruža širok raspon opcija za upravljanje izvedbom i skaliranjem izvan opsega ovog članka.
7. Zaključak
U ovom uputstvu mi:
- Instalirali i konfigurirali razvojne alate Openshift i lokalno okruženje
- Primijenio MySQL uslugu
- Stvorio je konfiguraciju ConfigMap i Deployment kako bi pružio svojstva veze baze podataka
- Izgradio i implementirao spremnik za našu konfiguriranu aplikaciju Spring Boot i
- Testirao i skalirao aplikaciju.
Za više pojedinosti pogledajte detaljnu dokumentaciju Openshift.
Kompletni izvorni kod naših primjera ovdje je, kao i uvijek, završen na GitHubu.