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.


$config[zx-auto] not found$config[zx-overlay] not found