Java-alkalmazás üzembe helyezése Open Liberty vagy WebSphere Liberty használatával egy Azure Kubernetes Service-fürtön

Ez a cikk bemutatja, hogyan:

  • Futtassa Java, Java Enterprise kiadás, Jakarta Enterprise kiadás vagy MicroProfile alkalmazását az Open Liberty vagy az IBM WebSphere Liberty futtatókörnyezetben.
  • Az alkalmazás Docker-rendszerképének létrehozása Open Liberty- vagy WebSphere Liberty-tárolórendszerképek használatával.
  • Helyezze üzembe a tárolóalapú alkalmazást egy Azure Kubernetes Service- (AKS-) fürtben az Open Liberty Operátor vagy a WebSphere Liberty Operátor használatával.

Az Open Liberty Operátor leegyszerűsíti a Kubernetes-fürtökön futó alkalmazások üzembe helyezését és kezelését. Az Open Liberty operátorral vagy a WebSphere Liberty Operátorral fejlettebb műveleteket is végrehajthat, például nyomkövetéseket és memóriaképeket gyűjthet.

Ez a cikk az Open Liberty vagy a WebSphere Liberty Azure Marketplace-ajánlatát használja az AKS-be való utazás felgyorsításához. Az ajánlat automatikusan kiépít néhány Azure-erőforrást, többek között a következőket:

  • Egy Azure Container Registry-példány.
  • Egy AKS-fürt.
  • Application Gateway Bejövőforgalom-vezérlő (AGIC) példány.
  • Az Open Liberty operátor és a WebSphere Liberty Operátor.
  • Opcionálisan egy tárolórendszerkép, amely tartalmazza a Libertyet és az alkalmazást.

Ha a Liberty AKS-en való futtatásához szeretne manuális, lépésenkénti útmutatást, olvassa el az Open Liberty vagy a WebSphere Liberty használatával rendelkező Java-alkalmazások manuális üzembe helyezését azure Kubernetes Service-fürtökön (AKS-fürtökön) ismertető témakört.

Ez a cikk segítséget nyújt az üzembe helyezés gyors elvégzéséhez. Mielőtt éles környezetben jár, tekintse meg az IBM Liberty hangolásával kapcsolatos dokumentációját.

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

Előfeltételek

  • Telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
  • Jelentkezzen be az Azure CLI-be az az login paranccsal. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
  • Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
  • Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet. Ez a cikk az Azure CLI legalább 2.31.0-s verzióját igényli.
  • Telepítse a Java Standard kiadás 17-es vagy újabb verzióját. (például: Eclipse Open J9).
  • Telepítse a Maven 3.5.0-s vagy újabb verzióját.
  • Telepítse a Dockert az operációs rendszerhez.
  • Győződjön meg arról, hogy a Git telepítve van.
  • Győződjön meg arról, hogy a Owner szerepkör vagy az Contributor előfizetés szerepkörei és User Access Administrator szerepkörei vannak hozzárendelve. Ezt a felhasználó vagy csoport szerepkör-hozzárendeléseinek listázásával ellenőrizheti.

Feljegyzés

A cikkben szereplő parancsokat az Azure Cloud Shellből is futtathatja. Ez a megközelítés az összes előfeltétel-eszközt előre telepítette, a Docker kivételével.

  • Ha az útmutató parancsait helyileg futtatja (az Azure Cloud Shell helyett):
    • Helyi gép előkészítése Unix-szerű operációs rendszerrel (például Ubuntu, Azure Linux, macOS, Linuxos Windows-alrendszer).
    • Telepítse a Java Standard kiadás 17-es vagy újabb verzióját. (például: Eclipse Open J9).
    • Telepítse a Maven 3.5.0-s vagy újabb verzióját.
    • Telepítse a Dockert az operációs rendszerhez.
  • Győződjön meg arról, hogy a Owner szerepkör vagy az Contributor előfizetés szerepkörei és User Access Administrator szerepkörei vannak hozzárendelve. Ezt a felhasználó vagy csoport szerepkör-hozzárendeléseinek listázásával ellenőrizheti.

Liberty létrehozása AKS-alapú üzembe helyezéshez a portál használatával

Az alábbi lépések segítségével létrehozhat egy Liberty-futtatókörnyezetet az AKS-en. A lépések elvégzése után rendelkezni fog egy Container Registry-példánysal és egy AKS-fürtövel a tárolóalapú alkalmazás üzembe helyezéséhez.

  1. Nyissa meg az Azure Portalt. A lap tetején található keresőmezőbe írja be az IBM Liberty kifejezést az AKS-en. Amikor megjelennek a javaslatok, válassza ki az egyet, és csak a Marketplace szakaszban egyezzen meg.

    Ha szeretné, közvetlenül az ajánlathoz fordulhat.

  2. Válassza a Létrehozás lehetőséget.

  3. Az Alapismeretek panelen:

    1. Új erőforráscsoport létrehozása. Mivel az erőforráscsoportoknak egyedinek kell lenniük egy előfizetésen belül, válasszon egy egyedi nevet. Az egyedi nevek egyszerű módja, ha a monogram, a mai dátum és valamilyen azonosító (például ejb0913-java-liberty-project-rg) kombinációját használják.

    2. Régió esetén válassza az USA keleti régióját.

    3. Hozzon létre egy környezeti változót a rendszerhéjban a fürt és az adatbázis erőforráscsoport-neveihez:

      export RESOURCE_GROUP_NAME=<your-resource-group-name>
      

  4. Válassza a Tovább lehetőséget. Az AKS panelen lehetőség van meglévő AKS-fürt és Container Registry-példány kiválasztására ahelyett, hogy az üzembe helyezés újakat hoz létre. Ez a választás lehetővé teszi az oldalkocsi minta használatát, ahogyan az az Azure Architecture Centerben is látható. Az AKS-csomópontkészletben lévő virtuális gépek méretének és számának beállításait is módosíthatja.

    A cikk alkalmazásában csak tartsa meg az összes alapértelmezett beállítást ezen a panelen.

  5. Válassza a Tovább lehetőséget. A Terheléselosztás panelen, a Csatlakozás Azure-alkalmazás Átjáróhoz? lehetőség mellett válassza az Igen lehetőséget. Ebben a szakaszban a következő üzembehelyezési beállításokat szabhatja testre:

    • Virtuális hálózat és alhálózat esetén igény szerint testre szabhatja azt a virtuális hálózatot és alhálózatot, amelybe az üzembe helyezés helyezi az erőforrásokat. A fennmaradó értékeket nem kell módosítania az alapértelmezett értékektől.

    • TLS/SSL-tanúsítvány esetén megadhatja a TLS/SSL tanúsítványt Azure-alkalmazás Átjárótól. Hagyja meg az értékeket az alapértelmezett értékekkel, hogy az ajánlat önaláírt tanúsítványt hozzon létre.

      Ne menjen éles környezetbe önaláírt tanúsítvánnyal. Az önaláírt tanúsítványokkal kapcsolatos további információkért lásd : Önaláírt nyilvános tanúsítvány létrehozása az alkalmazás hitelesítéséhez.

    • Kiválaszthatja a cookie-alapú affinitás engedélyezése, más néven ragadós munkamenetek lehetőséget. Ez a cikk ragadós munkameneteket használ, ezért mindenképpen válassza ezt a lehetőséget.

  6. Válassza a Tovább lehetőséget. Az Operátor és az Alkalmazás panelen ez a cikk az összes alapértelmezett beállítást használja. A következő telepítési beállításokat azonban testre szabhatja:

    • A WebSphere Liberty Operator üzembe helyezéséhez válassza az Igen lehetőséget az IBM által támogatott beállításhoz? Hagyja meg az alapértelmezett No deploys Open Liberty Operátort.
    • Az Alkalmazás üzembe helyezése beállításhoz válassza az Igen lehetőséget az alkalmazás üzembe helyezésére szolgáló igen beállítás kiválasztásával a kiválasztott operátor számára. Az alapértelmezett Nem érték elhagyása nem helyez üzembe alkalmazásokat.
  7. Válassza a Véleményezés + létrehozás lehetőséget a kiválasztott beállítások érvényesítéséhez. A Véleményezés + létrehozás panelen, amikor megjelenik, hogy a Létrehozás elérhetővé válik az ellenőrzés után, jelölje ki.

    Az üzembe helyezés akár 20 percet is igénybe vehet. Amíg megvárja az üzembe helyezés befejezését, kövesse az Azure SQL Database-példány létrehozása című szakasz lépéseit. Miután elvégezte a szakaszt, térjen vissza ide, és folytassa.

A kiválasztott információk rögzítése az üzembe helyezésből

Ha az üzembe helyezéstől távolodva már folyamatban van, az alábbi lépések bemutatják, hogyan juthat vissza az adott panelre. Ha továbbra is azon a panelen van, amelyen az üzembe helyezés befejeződött, lépjen az újonnan létrehozott erőforráscsoportra, és ugorjon a harmadik lépésre.

  1. Bármelyik portállap sarkában válassza a menügombot, majd válassza az Erőforráscsoportok lehetőséget.

  2. Írja be a korábban létrehozott erőforráscsoport első néhány karakterét a szövegszűrővel ellátott mezőbe. Ha követte az ajánlott konvenciót, írja be a monogramját, majd válassza ki a megfelelő erőforráscsoportot.

  3. Az erőforráscsoport erőforrásainak listájában válassza ki a Tárolóregisztrációs adatbázis típusértékével rendelkező erőforrást.

  4. A navigációs ablak Gépház területén válassza az Access-kulcsokat.

  5. Mentse a bejelentkezési kiszolgáló, a beállításjegyzék neve, a felhasználónév és a jelszó értékeit. Az egyes mezők melletti másolási ikonnal másolhatja az értéket a rendszer vágólapjára.

  6. Térjen vissza ahhoz az erőforráscsoporthoz, amelyben üzembe helyezte az erőforrásokat.

  7. A Gépház szakaszban válassza a Központi telepítések lehetőséget.

  8. Válassza ki a listában a legalsó telepítést. Az üzembehelyezési név értéke megegyezik az ajánlat közzétevőjének azonosítójával. A sztringet ibmtartalmazza.

  9. A navigációs panelen válassza a Kimenetek lehetőséget.

  10. Ha ugyanazt a másolási technikát használja, mint az előző értékeknél, mentse a következő kimenetek értékeit:

    • cmdToConnectToCluster
    • appDeploymentTemplateYaml ha az üzembe helyezés nem tartalmaz alkalmazást. Vagyis a Nem az alkalmazás üzembe helyezéséhez? lehetőséget választotta a Marketplace-ajánlat üzembe helyezésekor.
    • appDeploymentYaml ha az üzembe helyezés tartalmaz egy alkalmazást. Vagyis az Igen lehetőséget választotta az alkalmazás üzembe helyezéséhez?.

    Illessze be vagy appDeploymentTemplateYamlappDeploymentYaml egy Bash-rendszerhéjba, fűzze hozzá | grep secretName, és futtassa a parancsot.

    Ennek a parancsnak a kimenete a bejövő TLS titkos név, például - secretName: secret785e2c. Mentse félre az secretName értéket.

Ezeket az értékeket a cikk későbbi részében fogja használni. Vegye figyelembe, hogy a kimenetek számos más hasznos parancsot is felsorolnak.

Azure SQL Database-példány létrehozása

Ha önálló Azure SQL Database-adatbázist szeretne létrehozni az alkalmazással való használatra, kövesse a gyorsútmutató lépéseit : Egyetlen adatbázis létrehozása az Azure SQL Database-ben. Figyelje meg a következő különbségeket:

  • Az Alapszintű lépéseknél írja le az erőforráscsoport, az adatbázis neve, <a kiszolgálónév.database.windows.net>, a kiszolgálói rendszergazdai bejelentkezés és a jelszó értékeit. Ez a cikk az adatbázis erőforráscsoport-értékére <db-resource-group> hivatkozik.

  • A hálózatkezelési lépésben állítsa a Csatlakozás ivity metódust nyilvános végpontra, állítsa az Azure-szolgáltatások és -erőforrások számára a kiszolgáló igen értékre való elérését, és állítsa az Aktuális ügyfél IP-címének hozzáadása igen értékre.

    Képernyőkép az Azure Portalról, amelyen az SQL Database létrehozása lap Hálózatkezelés lapja látható a Csatlakozás ivity metódussal és a tűzfalszabályok beállításaival kiemelve.

Feljegyzés

Az adatbázishoz kiválasztott kiszolgáló nélküli számítási szint pénzt takarít meg azáltal, hogy inaktív időszakokban alvó állapotba helyezi az adatbázist. A mintaalkalmazás sikertelen lesz, ha az adatbázis alvó állapotban van az alkalmazás indításakor.

Ha az adatbázist felébresztésre szeretné kényszeríteni, a lekérdezésszerkesztővel futtathat lekérdezést. Kövesse az adatbázis lekérdezésének lépéseit. Íme egy példa lekérdezés: SELECT * FROM COFFEE;.

Hozzon létre egy környezeti változót a rendszerhéjban az adatbázis erőforráscsoportjának nevéhez:

export DB_RESOURCE_GROUP_NAME=<db-resource-group>

Most, hogy létrehozta az adatbázist és az AKS-fürtöt, folytathatja az AKS előkészítését az Open Liberty-alkalmazás üzemeltetésére.

A mintaalkalmazás konfigurálása és üzembe helyezése

A mintaalkalmazás Liberty-futtatókörnyezetben való üzembe helyezéséhez kövesse az ebben a szakaszban leírt lépéseket. Ezek a lépések a Mavent használják.

Az alkalmazás kivétele

Klónozza a cikk mintakódját. A minta a GitHubon található.

Van néhány minta az adattárban. Ez a cikk java-appot/. A minta lekéréséhez futtassa a következő parancsokat:

git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20240220

Ha megjelenik egy üzenet arról, hogy "leválasztott HEAD" állapotban van, nyugodtan figyelmen kívül hagyhatja. Az üzenet csak azt jelenti, hogy kivett egy címkét.

Az alkalmazás fájlstruktúrája a következő:

java-app
├─ src/main/
│  ├─ aks/
│  │  ├─ db-secret.yaml
│  │  ├─ openlibertyapplication-agic.yaml
│  │  ├─ openlibertyapplication.yaml
│  │  ├─ webspherelibertyapplication-agic.yaml
│  │  ├─ webspherelibertyapplication.yaml
│  ├─ docker/
│  │  ├─ Dockerfile
│  │  ├─ Dockerfile-wlp
│  ├─ liberty/config/
│  │  ├─ server.xml
│  ├─ java/
│  ├─ resources/
│  ├─ webapp/
├─ pom.xml

A java, az erőforrások és a webalkalmazás könyvtárai tartalmazzák a mintaalkalmazás forráskódját. A kód deklarál és használ egy nevű jdbc/JavaEECafeDBadatforrást.

Az aks könyvtárban öt üzembehelyezési fájl található:

  • db-secret.xml: Ezzel a fájllal kubernetes titkos kulcsokat hozhat létre adatbázis-kapcsolati hitelesítő adatokkal.
  • openlibertyapplication-agic.yaml: Ezzel a fájllal telepítheti az Open Liberty alkalmazást az AGIC-vel. Ez a cikk feltételezi, hogy ezt a fájlt használja.
  • openlibertyapplication.yaml: Ezt a fájlt akkor használja, ha az Open Liberty alkalmazást AGIC nélkül szeretné üzembe helyezni.
  • webspherelibertyapplication-agic.yaml: Ezzel a fájllal telepítheti a WebSphere Liberty alkalmazást az AGIC-vel, ha a cikk korábbi részében üzembe helyezte a WebSphere Liberty Operátort.
  • webspherelibertyapplication.yaml: Ezzel a fájllal telepítheti a WebSphere Liberty alkalmazást AGIC nélkül, ha a cikk korábbi szakaszában telepítette a WebSphere Liberty Operátort.

A Docker könyvtárban két fájl található az alkalmazás lemezképének létrehozásához:

  • Dockerfile: Ezzel a fájllal hozhatja létre az alkalmazás lemezképét az Open Liberty használatával ebben a cikkben.
  • Dockerfile-wlp: Ezzel a fájllal hozhatja létre az alkalmazás lemezképét a WebSphere Liberty használatával, ha a cikk korábbi részében üzembe helyezte a WebSphere Liberty Operátort.

A liberty/config könyvtárban a server.xml fájllal konfigurálhatja az Open Liberty és a WebSphere Liberty fürt adatbázis-kapcsolatát.

A projekt felépítése

Most, hogy rendelkezik a szükséges tulajdonságokkal, létrehozhatja az alkalmazást. A projekt POM-fájlja számos változót olvas be a környezetből. A Maven-build részeként ezek a változók az src/main/aks fájlban található YAML-fájlok értékeinek feltöltésére szolgálnak. Ha szeretné, a Mavenen kívül is elvégezhet hasonlót az alkalmazáshoz.

cd $BASE_DIR/java-app
# The following variables are used for deployment file generation into the target.
export LOGIN_SERVER=<Azure-Container-Registry-Login-Server-URL>
export REGISTRY_NAME=<Azure-Container-Registry-name>
export USER_NAME=<Azure-Container-Registry-username>
export PASSWORD='<Azure-Container-Registry-password>'
export DB_SERVER_NAME=<server-name>.database.windows.net
export DB_NAME=<database-name>
export DB_USER=<server-admin-login>@<server-name>
export DB_PASSWORD='<server-admin-password>'
export INGRESS_TLS_SECRET=<ingress-TLS-secret-name>

mvn clean install

(Nem kötelező) Projekt helyi tesztelése

A projekt helyi futtatása és tesztelése az Azure-ban való üzembe helyezés előtt. Az egyszerűség kedvéért ez a cikk a liberty-maven-plugin. További liberty-maven-plugininformáció: Open Liberty-cikk Webalkalmazás létrehozása a Mavennel.

Az alkalmazás esetében bármilyen más mechanizmussal, például a helyi fejlesztési környezettel is végezhet hasonló műveleteket. A tárolókkal való fejlesztésre szánt lehetőséget is használhatja liberty:devc . További liberty:devc információt az Open Liberty dokumentációjában talál.

  1. Indítsa el az alkalmazást a következővel liberty:run: . liberty:run A korábban definiált környezeti változókat is használja.

    cd $BASE_DIR/java-app
    mvn liberty:run
    
  2. Ha a teszt sikeres, a parancs kimenetében megjelenőhöz [INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds hasonló üzenet jelenik meg. Nyissa meg http://localhost:9080/ a böngészőben, és ellenőrizze, hogy az alkalmazás elérhető-e, és minden függvény működik-e.

  3. A leállításhoz válassza a Ctrl C billentyűkombinációt.+

Rendszerkép létrehozása az AKS üzembe helyezéséhez

Most már futtathatja a parancsot a docker build rendszerkép létrehozásához:

cd $BASE_DIR/java-app/target

docker buildx build --platform linux/amd64 -t javaee-cafe:v1 --pull --file=Dockerfile .

(Nem kötelező) A Docker-rendszerkép helyi tesztelése

Az Azure-ban való üzembe helyezés előtt az alábbi lépésekkel tesztelje a Docker-rendszerképet helyileg:

  1. Futtassa a képet az alábbi paranccsal. Ez a parancs a korábban definiált környezeti változókat használja.

    docker run -it --rm -p 9080:9080 \
       -e DB_SERVER_NAME=${DB_SERVER_NAME} \
       -e DB_NAME=${DB_NAME} \
       -e DB_USER=${DB_USER} \
       -e DB_PASSWORD=${DB_PASSWORD} \
       javaee-cafe:v1
    
  2. A tároló elindítása után lépjen http://localhost:9080/ a böngészőbe az alkalmazás eléréséhez.

  3. A leállításhoz válassza a Ctrl C billentyűkombinációt.+

A rendszerkép feltöltése az Azure Container Registrybe

Töltse fel az elkészített lemezképet az ajánlatban létrehozott Container Registry-példányra:

docker tag javaee-cafe:v1 ${LOGIN_SERVER}/javaee-cafe:v1
docker login -u ${USER_NAME} -p ${PASSWORD} ${LOGIN_SERVER}
docker push ${LOGIN_SERVER}/javaee-cafe:v1

Az alkalmazás üzembe helyezése és tesztelése

Az alkalmazás üzembe helyezéséhez és teszteléséhez kövesse az alábbi lépéseket:

  1. Csatlakozás az AKS-fürthöz.

    Illessze be a rendszerhéj értékét cmdToConnectToCluster , és futtassa a parancsot.

  2. Az adatbázis titkos kódjának alkalmazása:

    cd $BASE_DIR/java-app/target
    kubectl apply -f db-secret.yaml
    

    A kimenet a következő: secret/db-secret-sql created.

  3. Az üzembehelyezési fájl alkalmazása:

    kubectl apply -f openlibertyapplication-agic.yaml
    
  4. Várjon, amíg az összes pod sikeresen újraindul az alábbi paranccsal:

    kubectl get pods --watch
    

    Az alábbi példához hasonló kimenet azt jelzi, hogy az összes pod fut:

    NAME                                       READY   STATUS    RESTARTS   AGE
    javaee-cafe-cluster-agic-67cdc95bc-2j2gr   1/1     Running   0          29s
    javaee-cafe-cluster-agic-67cdc95bc-fgtt8   1/1     Running   0          29s
    javaee-cafe-cluster-agic-67cdc95bc-h47qm   1/1     Running   0          29s
    
  5. Ellenőrizze az eredményeket:

    1. Kérje le az alkalmazással üzembe helyezett bejövő erőforrás címét:

      kubectl get ingress
      

      Másolja ki a kimenet értékét ADDRESS . Ez az érték az üzembe helyezett Application Gateway-példány előtérbeli nyilvános IP-címe.

    2. Nyissa meg https://<ADDRESS> az alkalmazás tesztelését. Az Ön kényelme érdekében ez a rendszerhéjparancs létrehoz egy környezeti változót, amelynek értékét közvetlenül beillesztheti a böngészőbe:

      export APP_URL=https://$(kubectl get ingress | grep javaee-cafe-cluster-agic-ingress | cut -d " " -f14)/
      echo $APP_URL
      

      Ha a weblap nem jelenik meg megfelelően, vagy hibát ad 502 Bad Gateway vissza, az alkalmazás továbbra is a háttérben indul el. Várjon néhány percet, majd próbálkozzon újra.

Az erőforrások eltávolítása

Az Azure-díjak elkerülése érdekében törölje a felesleges erőforrásokat. Ha már nincs szüksége a fürtre, az az group delete paranccsal távolítsa el az erőforráscsoportot, a tárolószolgáltatást, a tárolóregisztrációs adatbázist, az adatbázist és az összes kapcsolódó erőforrást:

az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
az group delete --name $DB_RESOURCE_GROUP_NAME --yes --no-wait

Következő lépések

A következő hivatkozásokból tudhat meg többet: