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
Místní počítač s nainstalovaným operačním systémem Unix , například Ubuntu, macOS nebo Subsystém Windows pro Linux.
Implementace java edice Standard (SE), verze 17 – například Eclipse Open J9.
Maven verze 3.9.8 nebo vyšší.
Docker pro váš operační systém.
Azure CLI verze 2.61.0 nebo novější
Cluster Azure Red Hat OpenShift 4 Pokud chcete vytvořit cluster, postupujte podle pokynů v tématu Vytvoření clusteru Azure Red Hat OpenShift 4 při použití následujících pokynů:
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.
Následující proměnné prostředí definované v části Vytvoření clusteru Azure Red Hat OpenShift 4 se používají dále v tomto článku:
-
RESOURCEGROUP
– název skupiny prostředků, ve které je cluster nasazený. -
CLUSTER
– název clusteru.
-
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
. Další informace najdete v následujících článcích:
Připojte se ke clusteru pomocí kroků v části Připojení ke clusteru Azure Red Hat OpenShift 4 a postupujte podle následujících pokynů:
- Nezapomeňte postupovat podle kroků v části Instalace rozhraní příkazového řádku OpenShift, protože použijete
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.
- Nezapomeňte postupovat podle kroků v části Instalace rozhraní příkazového řádku OpenShift, protože použijete
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.
Přihlaste se z prohlížeče k webové konzole OpenShift pomocí přihlašovacích
kubeadmin
údajů.Přejděte na > a vyhledejte Open Liberty.
Ve výsledcích hledání vyberte Otevřít Liberty .
Vyberte volbu Instalovat.
Na stránce Instalovat operátor použijte následující kroky:
- V případě aktualizačního kanálu vyberte nejnovější kanál verze 1.4.
- V režimu instalace vyberte Všechny obory názvů v clusteru (výchozí).
- V případě schválení aktualizací vyberte Automaticky.
Vyberte Nainstalovat a počkejte několik minut, než se instalace dokončí.
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.
Poznámka:
Tato příručka nainstaluje operátora Open Liberty pro správu aplikací Liberty v clusteru Azure Red Hat OpenShift. Pokud chcete použít operátor WebSphere Liberty, nainstalujte do clusteru operátor WebSphere Liberty podle pokynů v části Instalace operátoru WebSphere 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í:
Pomocí přihlašovacích údajů se ujistěte, že jste se přihlásili k webové konzole OpenShift z prohlížeče
kubeadmin
.Přejděte do části Obory>– Vytvořit obor názvů.
open-liberty-demo
Zadejte název a vyberte Vytvořit, jak je znázorněno dále.
Vytvoření flexibilního serveru Azure Database for MySQL
Model nasazení flexibilního serveru Azure Database for MySQL je režim nasazení navržený tak, aby poskytoval podrobnější kontrolu a flexibilitu nad funkcemi správy databází a nastavením konfigurace než režim nasazení jednoúčelového serveru Azure Database for MySQL. V této části se dozvíte, jak vytvořit instanci flexibilního serveru Azure Database for MySQL pomocí Azure CLI. Další informace najdete v tématu Rychlý start: Vytvoření instance flexibilního serveru Azure Database for MySQL pomocí Azure CLI.
Spuštěním následujícího příkazu v terminálu vytvořte instanci flexibilního serveru Azure Database for MySQL. Nahraďte <server-admin-password>
heslem, které splňuje požadavky na složitost hesla pro flexibilní server Azure Database for MySQL.
az mysql flexible-server create \
--name ${CLUSTER} \
--resource-group ${RESOURCEGROUP} \
--admin-user admin${RESOURCEGROUP} \
--admin-password '<server-admin-password>' \
--database-name ${RESOURCEGROUP}db \
--public-access 0.0.0.0 \
--yes
Poznámka:
Tento článek vás provede vytvořením flexibilního serveru Azure Database for MySQL s ověřováním MySQL. Bezpečnějším postupem je použít ověřování Microsoft Entra pro ověřování připojení k databázovému serveru. Azure Red Hat OpenShift v současné době nepodporuje ID úloh Microsoft Entra, takže ověřování MySQL je jedinou dostupnou možností.
Pokud se zobrazí chybová zpráva Žádné dostupné skladové položky v tomto umístění, zadejte jiné umístění pomocí parametru --location
a akci opakujte. Pomocí následujícího příkazu zobrazte seznam dostupných skladových položek v určitém umístění:
az mysql flexible-server list-skus --location <location>
Vyhledejte umístění, které obsahuje dostupné skladové položky, a potom zopakujte předchozí az mysql flexible-server create
příkaz, ale připojte příslušný --location <location>
parametr a ponechte všechny ostatní parametry beze změny.
Vytvoření serveru, databáze, uživatele správce a pravidla brány firewall, které přijímá připojení ze všech prostředků Azure, trvá několik minut. Pokud je příkaz úspěšný, výstup vypadá podobně jako v následujícím příkladu:
{
"connectionString": "mysql <database-name> --host <server-name>.mysql.database.azure.com --user <server-admin-username> --password=<server-admin-password>",
"databaseName": "<database-name>",
"firewallName": "AllowAllAzureServicesAndResourcesWithinAzureIps_2024-7-10_16-22-8",
"host": "<server-name>.mysql.database.azure.com",
"id": "/subscriptions/REDACTED/resourceGroups/<resource-group-of-the-OpenShift-cluster>/providers/Microsoft.DBforMySQL/flexibleServers/<server-name>",
"location": "West US",
"password": "<server-admin-password>",
"resourceGroup": "<resource-group-of-the-OpenShift-cluster>",
"skuname": "Standard_B1ms",
"username": "<server-admin-username>",
"version": "5.7"
}
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-plugin
funkci 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
export BASE_DIR=$PWD
git checkout 20240920
cd ${BASE_DIR}/3-integration/connect-db/mysql
Pokud se zobrazí zpráva o tom, že je v odpojeném stavu HEAD, je tato zpráva v bezpečí ignorovat. Jen to znamená, že jste si rezervovali značku.
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
Pomocí dříve definovaných proměnných prostředí spusťte v terminálu následující příkazy pro sestavení projektu. Soubor POM pro projekt čte mnoho vlastností z prostředí.
cd ${BASE_DIR}/3-integration/connect-db/mysql
# The following variables are used for deployment file generation
export DB_SERVER_NAME=$CLUSTER.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=${RESOURCEGROUP}db
export DB_USER=admin${RESOURCEGROUP}
export DB_PASSWORD='<server-admin-password>'
export NAMESPACE=open-liberty-demo
mvn clean install
(Volitelné) Místní testování aplikace
Volitelně můžete aplikaci spustit místně, abyste ověřili, že funguje podle očekávání. Nejprve musíte přidat pravidlo brány firewall, které místnímu počítači umožní připojení k instanci flexibilního serveru Azure Database for MySQL. Pomocí následujících kroků přidejte pravidlo brány firewall:
- Přihlaste se k webu Azure Portal a přejděte k instanci flexibilního serveru Azure Database for MySQL, kterou jste vytvořili dříve.
- V levém podokně vyberte Nastavení>sítě.
- Vyberte Přidat aktuální IP adresu klienta.
- Vyberte Uložit a počkejte na přidání pravidla brány firewall.
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:devc
v dokumentaci ke službě Liberty Plugin.
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.
K spuštění aplikace v
liberty:devc
režimu použijte následující příkazy:cd ${BASE_DIR}/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
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 dohttps://localhost:9443/
prohlížeče a ověřte, že je aplikace přístupná a všechny funkce fungují.Pokud chcete režim zastavit
liberty: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:
Pomocí přihlašovacích údajů se ujistěte, že se přihlašujete k rozhraní příkazového
kubeadmin
řádku OpenShift.Pomocí následujících příkazů identifikujte zdrojový adresář a soubor Dockerfile:
cd ${BASE_DIR}/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
Pomocí následujícího příkazu změňte projekt na open-liberty-demo:
oc project open-liberty-demo
K vytvoření streamu image použijte následující příkaz:
oc create imagestream javaee-cafe-mysql
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
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:
Přihlaste se z prohlížeče k webové konzole OpenShift pomocí přihlašovacích
kubeadmin
údajů.Vyberte projekt tak, že >>open-liberty-demo.
Přejděte na tajné kódy> úloh.
Vyberte Vytvořit> z YAML.
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.
Vyberte Vytvořit. Vrátíte se na stránku s podrobnostmi o tajném kódu.
Přejděte na operátory nainstalované operátory>.
Uprostřed stránky se zobrazí otevřená svoboda.
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í.
Vyberte Vytvořit OpenLibertyApplication.
Vyberte zobrazení YAML pro konfiguraci prostřednictvím.
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.
Vyberte Vytvořit. Vrátíte se do seznamu OpenLibertyApplications.
Přejděte na >OpenLibertyApplication.
Vyberte javaee-café-mysql.
Uprostřed stránky vyberte Prostředky.
V tabulce vyberte odkaz pro javaee-café-mysql s typem trasy.
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:
- V levém navigačním podokně rozbalte položku pro operátory.
- Vyberte nainstalované operátory.
- Vyberte Otevřít svobodu.
- Uprostřed stránky vyberte OpenLibertyApplication.
- V případě javaee-café-mysql vyberte svislé tečky (tři svislé tečky) a pak vyberte Odstranit OpenLibertyApplication.
- Aplikaci odstraníte výběrem možnosti Odstranit .
Pomocí následujícího postupu odstraňte tajný kód z Open Shiftu:
- Přejděte na tajné kódy> úloh.
- Vyberte db-secret-mysql.
- Vyberte Akce>odstranit tajný klíč.
- 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:
- Otevřít Svobodu
- Azure Red Hat OpenShift
- Operátor Open Liberty
- Otevření konfigurace serveru Liberty
- Liberty Maven Plugin
- Otevření imagí kontejneru Liberty
- Image kontejnerů WebSphere Liberty
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?