Nasaďte aplikáciu Spring Boot na OpenShift
1. Prehľad
V tomto tutoriáli si ukážeme, ako nasadiť aplikáciu z nášho Bootstrapu a jednoduchej aplikácie pomocou tutoriálu Spring Boot na Openshift.
V rámci toho:
- Nainštalujte a nakonfigurujte vývojové nástroje Openshift.
- Vytvorte projekt Openshift a nasadenie MySQL.
- Nakonfigurujte aplikáciu pre Spring Cloud Kubernetes.
- Vytvorte a nasaďte aplikáciu v kontajneri pomocou pluginu Fabric8 Maven a otestujte a upravte veľkosť aplikácie.
2. Konfigurácia openshift
Najprv, musíme nainštalovať Minishift, lokálny jednouzlový klaster Openshift a klienta Openshift.
Pred použitím aplikácie Minishift musíme nakonfigurovať povolenia pre vývojového používateľa:
minishift addons install --defaults minishift addons allow admin-user minishift start oc adm policy --as system: admin add-cluster-role-to-user cluster-admin developer
Teraz chceme pomocou konzoly Openshift Console vytvoriť službu MySQL. URL prehliadača môžeme spustiť pomocou:
konzola minishift
Ak nie ste prihlásení automaticky, použite vývojár / vývojár.
Vytvorte projekt s názvom baeldung-demo a potom z katalógu vytvorte databázovú službu MySQL. Poskytnite baeldung-db pre databázovú službu, baeldung_db pre názov databázy MySQL a ostatné hodnoty ponechajte na predvolených hodnotách.
Teraz máme službu a tajomstvá pre prístup do databázy. Poznačte si adresu URL databázového pripojenia: mysql: // baeldung-db: 3306 / baeldung_db
Musíme tiež umožniť aplikáciám čítať konfigurácie ako Kubernetes Secrets a ConfigMaps:
oc create rolebinding default-view --clusterrole = view \ --serviceaccount = baeldung-demo: default --namespace = baeldung-demo
3. Závislosti jarného mraku Kubernetes
Pomocou projektu Spring Cloud Kubernetes povolíme natívne cloudové rozhrania API pre Kubernetes, ktoré sú základom Openshift:
openshift org.springframework.cloud spring-cloud-kubernetes-dependencies 0.3.0.RELEASE pom import org.springframework.cloud spring-cloud-dependencies Greenwich.RELEASE pom import org.springframework.cloud spring-cloud-starter-kubernetes-config org .pružinový rám.štartér-spúšťač-spúšťač-spúšťač pružiny
Na zostavenie a nasadenie kontajnera použijeme aj doplnok Fabric8 Maven:
Vytvorenie zdroja io.fabric8 fabric8-maven-plugin 3.5.37 fmp
4. Konfigurácia aplikácie
Teraz musíme zabezpečiť konfiguráciu, aby sme zaistili, že správne jarné profily a tajomstvá Kubernetes budú vložené ako premenné prostredia.
Vytvoríme v ňom fragment YAML src / main / fabric8 aby ho plugin Fabric8 Maven použil pri vytváraní konfigurácie nasadenia.
Tiež musíme pridať sekciu pre pružinový spúšťač, pretože predvolené nastavenie v Fabric8 sa stále pokúša získať prístup / zdravie namiesto / aktuátor / zdravie:
spec: template: spec: containers: - env: - name: SPRING_PROFILES_ACTIVE value: mysql - name: SPRING_DATASOURCE_USER valueFrom: secretKeyRef: name: baeldung-db key: database-user - name: SPRING_DATASOURCE_PASSWORD valueFrom: secretKeyRef: name: : živosť hesla k databázeProbe: httpGet: cesta: / aktuátor / zdravotný port: 8080 schéma: HTTP initialDelaySeconds: 180 pripravenosťProbe: httpGet: cesta: / aktuátor / zdravotný port: 8080 schéma: HTTP initialDelaySeconds: 30
Ďalšie, zachránime a ConfigMap v openshift / configmap.yml, toto obsahuje údaje pre application.properties s MySQL URL:
apiVersion: v1 kind: ConfigMap metadata: name: spring-boot-bootstrap data: application.properties: | - spring.datasource.url = jdbc: mysql: // baeldung-db: 3306 / baeldung_db
Pred interakciou s programom Openshift pomocou klienta príkazového riadku sa musíme prihlásiť. V pravom hornom rohu webovej konzoly je ikona používateľa, z ktorej môžeme zvoliť rozbaľovaciu ponuku s názvom „Kopírovať prihlasovací príkaz“. Potom použite v škrupine:
oc login //192.168.42.122:8443 --token =
Uistite sa, že používame správny projekt:
oc projekt baeldung-demo
A potom nahráme ConfigMap:
oc create -f openshift / configmap.yml
5. Nasadenie
Počas nasadenia sa plugin Fabric8 Maven pokúša určiť nakonfigurovaný port. Existujúce application.properties Súbor v našej ukážkovej aplikácii používa výraz na definovanie portu, ktorý doplnok nedokáže analyzovať. Preto musíme komentovať riadok:
# server.port = $ {port: 8080}
zo súčasného application.properties.
Teraz sme pripravení na nasadenie:
mvn clean fabric8: deploy -P openshift
Môžeme sledovať postup nasadenia, kým neuvidíme spustenú našu aplikáciu:
oc get pods -w
Mal by uviesť zoznam:
NÁZOV PRIPRAVENÝ STAV VEREJNÝ OBDOBIE baeldung-db-1-9m2cr 1/1 beh 1 1h jar-boot-bootstrap-1-x6wj5 1/1 beh 0 46s
Predtým, ako aplikáciu otestujeme, musíme určiť trasu:
oc získať trasy
Vytlačí trasy v aktuálnom projekte:
NÁZOV HOST / PORTOVÁ CESTA SLUŽBY PORTOVÉ UKONČENIE WILDCARD spring-boot-bootstrap spring-boot-bootstrap-baeldung-demo.192.168.42.122.nip.io spring-boot-bootstrap 8080 Žiadne
Teraz si pridaním knihy overíme, či naša aplikácia funguje:
http POST //spring-boot-bootstrap-baeldung-demo.192.168.42.122.nip.io/api/books \ author = "Iain M. Banks"
Očakáva sa nasledujúci výstup:
HTTP / 1.1 201 {"autor": "Iain M. Banks", "id": 1, "title": "Hráč hier"}
6. Mierka aplikácie
Poďme škálovať nasadenie tak, aby bežalo 2 inštancie:
oc scale --replicas = 2 dc spring-boot-bootstrap
Môžeme použiť rovnaké kroky ako predtým, aby sme sledovali jeho nasadenie, získanie trás a testovanie koncového bodu.
Openshift poskytuje širokú škálu možností riadenia výkonu a zmeny mierky nad rámec tohto článku.
7. Záver
V tomto výučbe:
- Nainštalované a nakonfigurované vývojové nástroje openshift a miestne prostredie
- Nasadená služba MySQL
- Vytvorili sme konfiguráciu ConfigMap and Deployment, ktorá poskytuje vlastnosti pripojenia k databáze
- Postavili a nasadili kontajner pre našu nakonfigurovanú aplikáciu Spring Boot a
- Aplikácia bola otestovaná a zmenšená.
Ďalšie informácie nájdete v podrobnej dokumentácii k programu openshift.
Kompletný zdrojový kód našich príkladov je tu ako vždy na GitHubu.