Sdílet prostřednictvím


Ruční nasazení aplikace v Javě pomocí Open Liberty/WebSphere Liberty v clusteru Azure Red Hat OpenShift

Tento článek obsahuje podrobné pokyny k ručnímu spuštění Open/WebSphere Liberty v clusteru Azure Red Hat OpenShift. Provede vás přípravou aplikace Liberty, sestavením image Dockeru a spuštěním kontejnerizované aplikace v clusteru Azure Red Hat OpenShift.

Konkrétně se naučíte provádět následující úlohy:

  • Příprava aplikace Liberty
  • Sestavení image aplikace
  • Spuštění kontejnerizované aplikace v clusteru Azure Red Hat OpenShift pomocí grafického uživatelského rozhraní a rozhraní příkazového řádku

Automatizovanější řešení, které urychlí vaši cestu ke clusteru Azure Red Hat OpenShift, najdete v tématu Nasazení IBM WebSphere Liberty a Open Liberty v Azure Red Hat OpenShiftu pomocí nabídky Azure Marketplace.

Další informace o open liberty naleznete na stránce projektu Open Liberty. Další informace o WebSphere Liberty naleznete na stránce produktu WebSphere Liberty.

Tento článek vám pomůže rychle se dostat k nasazení. Než půjdete do produkce, měli byste prozkoumat Tuning Liberty.

Pokud chcete poskytnout zpětnou vazbu nebo úzce spolupracovat na scénářích migrace s technickým týmem, který vyvíjí webSphere v řešeních Azure, vyplňte tento krátký průzkum o migraci WebSphere a uveďte své kontaktní informace. Tým programových manažerů, architektů a inženýrů se s vámi okamžitě spojí a zahájí úzkou spolupráci.

Důležité

Přestože je Azure Red Hat OpenShift společně navržený, provozovaný a podporovaný společností Red Hat a Microsoftem, aby poskytoval integrované prostředí podpory, software, který běží nad Azure Red Hat OpenShiftem, včetně toho, co je popsáno v tomto článku, podléhá vlastní podpoře a licenčním podmínkám. Další informace o podpoře pro Azure Red Hat OpenShift najdete v tématu Životní cyklus podpory pro Azure Red Hat OpenShift 4. Další informace o podpoře softwaru popsaného v tomto článku najdete na hlavních stránkách tohoto softwaru, jak je uvedeno v článku.

Poznámka:

Aby bylo možné vytvořit a spustit cluster OpenShift, služba Azure Red Hat OpenShift vyžaduje minimálně 40 jader. Výchozí kvóta prostředků Azure pro nové předplatné Azure nesplňuje tento požadavek. Pokud chcete požádat o zvýšení limitu prostředků, přečtěte si téma Standardní kvóta: Zvýšení limitů podle řad virtuálních počítačů. Upozorňujeme, že bezplatné zkušební předplatné nemá nárok na navýšení kvóty, upgradujte na předplatné s průběžným platbami před vyžádáním navýšení kvóty.

Požadavky

Pro úspěšné použití této příručky proveďte následující požadavky:

  1. Připravte místní počítač s nainstalovaným operačním systémem Unix (například Ubuntu, macOS nebo Subsystém Windows pro Linux).

  2. Nainstalujte implementaci java edice Standard (SE), verze 17 nebo novější (například Eclipse Open J9).

  3. Nainstalujte Maven 3.5.0 nebo novější.

  4. Nainstalujte Docker pro váš operační systém.

  5. Nainstalujte Azure CLI 2.0.75 nebo novější.

  6. V případě potřeby nainstalujte envsubst .

  7. Naklonujte kód pro tuto ukázku v místním systému. Ukázka je na GitHubu.

  8. Postupujte podle pokynů v tématu Vytvoření clusteru Azure Red Hat OpenShift 4.

    I když je krok "Získání tajného kódu pro přijetí změn Red Hat" označený jako volitelný, vyžaduje se pro tento článek. Tajný kód pro vyžádání změn umožňuje vašemu clusteru Azure Red Hat OpenShift najít operátor Open Liberty.

    Pokud plánujete spouštět aplikace náročné na paměť v clusteru, zadejte správnou velikost virtuálního počítače pro pracovní uzly pomocí parametru --worker-vm-size . Jedná se například o minimální velikost virtuálního počítače pro Standard_E4s_v3 instalaci operátora Elasticsearch do clusteru. Další informace naleznete v tématu:

  9. Připojte se ke clusteru pomocí kroků v části Připojení ke clusteru Azure Red Hat OpenShift 4.

    • Nezapomeňte postupovat podle kroků v části Instalace rozhraní příkazového řádku OpenShift, protože používáme oc příkaz dále v tomto článku.
    • Uložte si adresu URL konzoly clusteru. Měl by vypadat jako https://console-openshift-console.apps.<random>.<region>.aroapp.io/.
    • Poznamenejte kubeadmin si přihlašovací údaje.
    • Nezapomeňte s přihlašovacími údaji postupovat podle kroků v části Připojení pomocí rozhraní příkazového kubeadmin řádku OpenShift.

Instalace operátoru Open Liberty OpenShift

Po vytvoření a připojení ke clusteru nainstalujte operátor Open Liberty Operator pomocí následujícího postupu. Hlavní úvodní stránka operátoru Open Liberty je na GitHubu.

  1. Přihlaste se z prohlížeče k webové konzole OpenShift pomocí přihlašovacích kubeadmin údajů.

  2. Přejděte na OperatorHub> a vyhledejte Open Liberty.

  3. Ve výsledcích hledání vyberte Otevřít Liberty .

  4. Vyberte volbu Instalovat.

  5. Na stránce Operátor instalace zkontrolujte v1.3 kanál aktualizace, všechny obory názvů v clusteru (výchozí) pro režim instalace a automatické schválení aktualizací:

    Snímek obrazovky s vytvářením předplatného operátora pro operátora Open Liberty

  6. Vyberte Nainstalovat a počkejte minutu nebo dvě, až se instalace dokončí.

  7. Všimněte si, že operátor Open Liberty je úspěšně nainstalovaný a připravený k použití. Pokud není připravený, před pokračováním problém diagnostikujte a vyřešte.

    Nainstalované operátory zobrazující instalaci Open Liberty.

Vytvoření oboru názvů OpenShift pro aplikaci v Javě

Pomocí následujících kroků vytvořte obor názvů OpenShift pro použití s vaší aplikací:

  1. Pomocí přihlašovacích údajů se ujistěte, že jste se přihlásili k webové konzole OpenShift z prohlížeče kubeadmin .

  2. Přejděte do části Obory>názvů pro správu>– Vytvořit obor názvů.

  3. open-liberty-demo Zadejte název a vyberte Vytvořit, jak je znázorněno dále.

    Snímek obrazovky s vytvářením oboru názvů

Vytvoření Azure Database for MySQL

Pomocí následujících kroků nastavte službu Azure Database for MySQL pro použití s vaší aplikací:

  1. Flexibilní server Azure Database for MySQL vytvoříte pomocí kroků v tomto rychlém startu: Vytvoření flexibilního serveru Azure Database for MySQL pomocí webu Azure Portal. Databázi můžete nasadit do stejné skupiny prostředků jako cluster OpenShift. Po vytvoření databáze se vraťte k tomuto dokumentu.

    Poznámka:

    V kroku Základy uložte hodnoty Název serveru.mysql.database.azure.com, Uživatelské jméno správce a Heslo.

  2. Po vytvoření databáze otevřete sítě nastavení> databáze>a pak postupujte následovně:

    1. V části Veřejný přístup se ujistěte, že je vybraný veřejný přístup k tomuto prostředku přes internet pomocí veřejné IP adresy .
    2. Vyberte Povolit veřejný přístup z libovolné služby Azure v rámci Azure k tomuto serveru.
    3. Ujistěte se, že adresa klienta IPv4 je v seznamu povolených pravidel brány firewall.
    4. Uložte provedené změny.

    Snímek obrazovky konfigurace databázových sítí mysql

  3. Otevřete databáze Nastavení>databáze>> Vyberte Přidat. Zadejte hodnotu pro Název a vyberte Uložit a vytvořte novou databázi. Tato databáze má typ schématu jako uživatel a používá se pro aplikaci později.

    Poznámka:

    Uložte název databáze, kterou jste vytvořili.

Příprava aplikace Liberty

Jako příklad v této příručce používáme aplikaci Java EE 8. Open Liberty je server kompatibilní s úplným profilem Java EE 8, takže může snadno spustit aplikaci. Open Liberty je také Jakarta EE 8 úplný profil kompatibilní.

Spuštění aplikace v Open Liberty

Pokud chcete aplikaci spustit na Open Liberty, musíte vytvořit konfigurační soubor serveru Open Liberty, aby modul plug-in Liberty Maven mohl zabalit aplikaci pro nasazení. Modul plug-in Liberty Maven není nutný k nasazení aplikace do OpenShiftu. V tomto příkladu ho ale používáme v režimu Vývojář (dev) Open Liberty. Vývojářský režim umožňuje snadno spustit aplikaci místně. Další informace o této liberty-maven-pluginfunkci najdete v tématu Vytvoření webové aplikace pomocí Mavenu.

Podle kroků v této části připravte ukázkovou aplikaci pro pozdější použití v tomto článku. Tyto kroky používají Maven a liberty-maven-plugin.

Podívejte se na aplikaci

Pomocí následujících příkazů naklonujte vzorový kód pro tuto příručku. Ukázka je na GitHubu.

git clone https://github.com/Azure-Samples/open-liberty-on-aro.git
cd open-liberty-on-aro

V úložišti je několik ukázek. Používáme open-liberty-on-aro/3-integration/connect-db/mysql. Tady je struktura souborů aplikace:

open-liberty-on-aro/3-integration/connect-db/mysql
├─ src/main/
│  ├─ aro/
│  │  ├─ db-secret.yaml
│  │  ├─ openlibertyapplication.yaml
│  ├─ liberty/config/
│  │  ├─ server.xml
│  ├─ java/
│  ├─ resources/
│  ├─ webapp/
├─ Dockerfile
├─ Dockerfile-wlp
├─ pom.xml

Adresáře java, resources a webová aplikace obsahují zdrojový kód ukázkové aplikace. Kód deklaruje a používá zdroj dat s názvem jdbc/JavaEECafeDB.

V adresáři aro jsme umístili dva soubory nasazení. db-secret.xml slouží k vytváření tajných kódů pomocí přihlašovacích údajů pro připojení k databázi. Soubor openlibertyapplication.yaml se používá k nasazení image aplikace.

V kořenovém adresáři jsme umístili dva soubory Dockerfile. Soubory Dockerfile a Dockerfile-wlp se používají k místnímu ladění a k sestavení image pro nasazení Azure Red Hat OpenShift, která pracuje s Open Liberty a WebSphere Liberty.

V adresáři liberty/config se server.xml používá ke konfiguraci připojení databáze pro cluster Open Liberty a WebSphere Liberty.

Sestavení projektu

Teď, když jste shromáždili potřebné vlastnosti, sestavte aplikaci pomocí následujících příkazů. Soubor POM pro projekt čte mnoho vlastností z prostředí.

cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql

# The following variables are used for deployment file generation
export DB_SERVER_NAME=<Server name>.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=<Database name>
export DB_USER=<Server admin username>
export DB_PASSWORD=<Server admin password>
export NAMESPACE=open-liberty-demo

mvn clean install

Místní testování aplikace

Pomocí následujících kroků spusťte liberty:devc příkaz pro místní spuštění a otestování image projektu a kontejneru před tím, než začnete řešit všechny složitosti Azure. Další informace najdete liberty:devcv dokumentaci ke službě Liberty Plugin.

  1. V případě potřeby spusťte místní prostředí Dockeru. Pokyny k tomu se liší v závislosti na hostitelském operačním systému.

  2. K spuštění aplikace v liberty:devc režimu použijte následující příkazy:

    cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql
    
    # If you are running with Open Liberty
    mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile
    
    # If you are running with WebSphere Liberty
    mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile-wlp
    
  3. Ověřte, že aplikace funguje podle očekávání. V případě úspěchu by se měla zobrazit zpráva podobná [INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds. výstupu příkazu. Přejděte do https://localhost:9443/ prohlížeče a ověřte, že je aplikace přístupná a všechny funkce fungují.

  4. Pokud chcete režim zastavitliberty:devc, stiskněte control+ C.

Příprava image aplikace

Pokud chcete nasadit a spustit aplikaci Liberty v clusteru Azure Red Hat OpenShift, kontejnerizujte aplikaci jako image Dockeru pomocí imagí kontejnerů Open Liberty nebo imagí kontejnerů WebSphere Liberty.

Sestavení aplikace a nasdílení změn do streamu image

Vzhledem k tomu, že jste aplikaci už úspěšně spustili v kontejneru Liberty Docker pomocí liberty:devc příkazu, pomocí následujícího postupu sestavíte image vzdáleně v clusteru:

  1. Pomocí přihlašovacích údajů se ujistěte, že se přihlašujete k rozhraní příkazového kubeadmin řádku OpenShift.

  2. Pomocí následujících příkazů identifikujte zdrojový adresář a soubor Dockerfile:

    cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql
    
    # If you are building with the Open Liberty base image, the existing Dockerfile is ready for you
    
    # If you are building with the WebSphere Liberty base image, uncomment and execute the following two commands to rename Dockerfile-wlp to Dockerfile
    # mv Dockerfile Dockerfile.backup
    # mv Dockerfile-wlp Dockerfile
    
  3. Pomocí následujícího příkazu změňte projekt na open-liberty-demo:

    oc project open-liberty-demo
    
  4. K vytvoření streamu image použijte následující příkaz:

    oc create imagestream javaee-cafe-mysql
    
  5. Pomocí následujícího příkazu vytvořte konfiguraci sestavení, která určuje značku streamu image výstupu sestavení:

    oc new-build --name javaee-cafe-mysql-config --binary --strategy docker --to javaee-cafe-mysql:v1
    
  6. Spuštěním následujícího příkazu spusťte sestavení pro nahrání místního obsahu, kontejnerizace a výstupu do značky streamu image zadané dříve:

    oc start-build javaee-cafe-mysql-config --from-dir . --follow
    

Nasazení aplikace v clusteru Azure Red Hat OpenShift

Teď můžete ukázkovou aplikaci Liberty nasadit do clusteru Azure Red Hat OpenShift, který jste vytvořili dříve při práci s požadavky.

Nasazení aplikace z webové konzoly

Vzhledem k tomu, že používáme Open Liberty Operator ke správě aplikací Liberty, potřebujeme vytvořit instanci vlastní definice prostředku typu OpenLibertyApplication. Operátor se stará o všechny aspekty správy prostředků OpenShift vyžadovaných pro nasazení. K vytvoření této instance použijte následující postup:

  1. Přihlaste se z prohlížeče k webové konzole OpenShift pomocí přihlašovacích kubeadmin údajů.

  2. Rozbalte domovskou stránku, vyberte projekty>open-liberty-demo.

  3. Přejděte na operátory nainstalované operátory>.

  4. Uprostřed stránky se zobrazí otevřená svoboda.

  5. V zadaných rozhraních API vyberte OpenLibertyApplication. Navigace položek v uživatelském rozhraní zrcadlí skutečnou hierarchii zahrnutí technologií, které se používají.

    Diagram zahrnutí Javy v Azure Red Hat OpenShiftu

  6. Vyberte Vytvořit OpenLibertyApplication.

  7. Vyberte zobrazení YAML pro konfiguraci prostřednictvím.

  8. Vygenerovaný yaml nahraďte vaším souborem, který se nachází v <cestě k úložišti>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.

  9. Vyberte Vytvořit. Vrátíte se do seznamu OpenLibertyApplications.

  10. Přejděte na tajné kódy> úloh.

  11. Vyberte Vytvořit> z YAML.

  12. Vygenerovaný yaml nahraďte vaším souborem, který se nachází v <cestě k úložišti>/3-integration/connect-db/mysql/target/db-secret.yaml.

  13. Vyberte Vytvořit. Vrátíte se na stránku s podrobnostmi o tajném kódu.

  14. Přejděte na Operátory>instalované operátory>Open Liberty>OpenLibertyApplication.

  15. Vyberte javaee-café-mysql.

  16. Uprostřed stránky vyberte Prostředky.

  17. V tabulce vyberte odkaz pro javaee-café-mysql s typem trasy.

  18. Na stránce, která se otevře, vyberte odkaz pod umístěním.

Domovská stránka aplikace se otevře v prohlížeči.

Odstranění aplikace z webové konzoly

Až budete s aplikací hotovi, pomocí následujícího postupu aplikaci odstraňte z Open Shiftu:

  1. V levém navigačním podokně rozbalte položku pro operátory.
  2. Vyberte nainstalované operátory.
  3. Vyberte Otevřít svobodu.
  4. Uprostřed stránky vyberte OpenLibertyApplication.
  5. V případě javaee-café-mysql vyberte svislé tečky (tři svislé tečky) a pak vyberte Odstranit OpenLibertyApplication.
  6. Aplikaci odstraníte výběrem možnosti Odstranit .

Pomocí následujícího postupu odstraňte tajný kód z Open Shiftu:

  1. Přejděte na tajné kódy> úloh.
  2. Vyberte db-secret-mysql.
  3. Vyberte Akce>odstranit tajný klíč.
  4. Chcete-li odstranit tajný klíč, vyberte Odstranit .

Vyčištění prostředků

Pomocí postupu v kurzu odstraňte cluster Azure Red Hat OpenShift: Odstranění clusteru Azure Red Hat OpenShift 4. Ujistěte se, že databáze a všechny přidružené prostředky jsou také odstraněny.

Další kroky

Další informace najdete v referencích použitých v tomto průvodci:

Pokud chcete prozkoumat možnosti spouštění produktů WebSphere v Azure, přečtěte si téma Co jsou řešení pro spuštění řady produktů WebSphere v Azure?