Distribuera ett Java-program manuellt med Open Liberty/WebSphere Liberty i ett Azure Red Hat OpenShift-kluster
Den här artikeln innehåller stegvisa manuella anvisningar för att köra Open/WebSphere Liberty på ett Azure Red Hat OpenShift-kluster. Den vägleder dig genom att förbereda ett Liberty-program, skapa programmets Docker-avbildning och köra det containerbaserade programmet i ett Azure Red Hat OpenShift-kluster.
Mer specifikt lär du dig att utföra följande uppgifter:
- Förbereda Liberty-programmet
- Skapa programbilden
- Kör det containerbaserade programmet i ett Azure Red Hat OpenShift-kluster med hjälp av GUI och CLI
En mer automatiserad lösning som påskyndar din resa till Azure Red Hat OpenShift-klustret finns i Distribuera IBM WebSphere Liberty och Open Liberty på Azure Red Hat OpenShift med hjälp av Azure Marketplace-erbjudandet.
Mer information om Open Liberty finns på open liberty-projektsidan. Mer information om WebSphere Liberty finns på produktsidan för WebSphere Liberty.
Den här artikeln är avsedd att hjälpa dig att snabbt komma till distributionen. Innan du går till produktion bör du utforska Tuning Liberty.
Om du är intresserad av att ge feedback eller arbeta nära dina migreringsscenarier med teknikteamet som utvecklar WebSphere på Azure-lösningar kan du fylla i den här korta undersökningen om WebSphere-migrering och inkludera din kontaktinformation. Teamet med programchefer, arkitekter och ingenjörer kommer snabbt att kontakta dig för att initiera ett nära samarbete.
Viktigt!
Även om Azure Red Hat OpenShift är gemensamt konstruerat, drivs och stöds av Red Hat och Microsoft för att tillhandahålla en integrerad supportupplevelse, omfattas programvaran som du kör ovanpå Azure Red Hat OpenShift, inklusive den som beskrivs i den här artikeln, av dess egna support- och licensvillkor. Mer information om stöd för Azure Red Hat OpenShift finns i Supportlivscykel för Azure Red Hat OpenShift 4. Mer information om stöd för programvaran som beskrivs i den här artikeln finns på huvudsidorna för programvaran enligt beskrivningen i artikeln.
Kommentar
Azure Red Hat OpenShift kräver minst 40 kärnor för att kunna skapa och köra ett OpenShift-kluster. Standardkvoten för Azure-resurser för en ny Azure-prenumeration uppfyller inte detta krav. Information om hur du begär en ökning av resursgränsen finns i Standardkvot: Öka gränserna per VM-serie. Observera att den kostnadsfria utvärderingsprenumerationen inte är berättigad till en kvotökning, uppgradera till en betala per användning-prenumeration innan du begär en kvotökning.
Förutsättningar
En lokal dator med Unix-liknande operativsystem installerat – till exempel Ubuntu, macOS eller Windows-undersystem för Linux.
En Java Standard Edition-implementering (SE), version 17 – till exempel Eclipse Open J9.
Maven, version 3.9.8 eller senare.
Docker för operativsystemet.
Azure CLI, version 2.61.0 eller senare.
Ett Azure Red Hat OpenShift 4-kluster. Skapa klustret genom att följa anvisningarna i Skapa ett Azure Red Hat OpenShift 4-kluster med hjälp av följande instruktioner:
Även om steget "Hämta en Red Hat-pullhemlighet" är märkt som valfritt, krävs steget för den här artikeln. Med pull-hemligheten kan ditt Azure Red Hat OpenShift-kluster hitta Open Liberty-operatorn.
Följande miljövariabler som definieras i Skapa ett Azure Red Hat OpenShift 4-kluster används senare i den här artikeln:
-
RESOURCEGROUP
– namnet på resursgruppen där klustret distribueras. -
CLUSTER
– namnet på klustret.
-
Om du planerar att köra minnesintensiva program i klustret anger du rätt storlek på den virtuella datorn för arbetsnoderna med hjälp av parametern
--worker-vm-size
. Mer information finns i följande artiklar:
Anslut till klustret genom att följa stegen i Ansluta till ett Azure Red Hat OpenShift 4-kluster med hjälp av följande instruktioner:
- Följ stegen i "Installera OpenShift CLI" eftersom du använder kommandot senare i den
oc
här artikeln. - Spara åt sidan klusterkonsolens URL. Det bör se ut som
https://console-openshift-console.apps.<random>.<region>.aroapp.io/
. - Anteckna autentiseringsuppgifterna
kubeadmin
. - Följ stegen i "Anslut med OpenShift CLI" med autentiseringsuppgifterna
kubeadmin
.
- Följ stegen i "Installera OpenShift CLI" eftersom du använder kommandot senare i den
Installera Open Liberty OpenShift-operatorn
När du har skapat och anslutit till klustret använder du följande steg för att installera Open Liberty-operatorn. Huvudstartsidan för Open Liberty-operatorn finns på GitHub.
Logga in på OpenShift-webbkonsolen från webbläsaren med autentiseringsuppgifterna
kubeadmin
.Gå till > och sök efter Open Liberty.
Välj Öppna Frihet i sökresultaten.
Välj Installera.
På sidan Installera operator använder du följande steg:
- För Uppdatera kanal väljer du den senaste kanalen v1.4.
- För Installationslägeväljer du Alla namnområden i klustret (standard).
- För Uppdateringsgodkännande väljer du Automatisk.
Välj Installera och vänta några minuter tills installationen är klar.
Observera att Open Liberty-operatorn har installerats och är redo att användas. Om den inte är klar kan du diagnostisera och lösa problemet innan du fortsätter.
Kommentar
Den här guiden installerar Open Liberty Operator för att hantera Liberty-program i Azure Red Hat OpenShift-klustret. Om du vill använda WebSphere Liberty-operatorn följer du stegen i Installera WebSphere Liberty-operatorn för att installera WebSphere Liberty-operatorn i klustret.
Skapa ett OpenShift-namnområde för Java-appen
Använd följande steg för att skapa ett OpenShift-namnområde för användning med din app:
Kontrollera att du har loggat in på OpenShift-webbkonsolen från webbläsaren med hjälp av autentiseringsuppgifterna
kubeadmin
.Gå till >
Fyll i
open-liberty-demo
för Namn och välj Skapa, som du ser härnäst.
Skapa en flexibel Azure Database for MySQL-server
Azure Database for MySQL– flexibel serverdistributionsmodell är ett distributionsläge som är utformat för att ge mer detaljerad kontroll och flexibilitet för databashanteringsfunktioner och konfigurationsinställningar än distributionsläget azure database for MySQL – enskild server. Det här avsnittet visar hur du skapar en Azure Database for MySQL – flexibel serverinstans med hjälp av Azure CLI. Mer information finns i Snabbstart: Skapa en instans av Azure Database for MySQL – flexibel server med hjälp av Azure CLI.
Kör följande kommando i terminalen för att skapa en Azure Database for MySQL – flexibel serverinstans. Ersätt <server-admin-password>
med ett lösenord som uppfyller kraven på lösenordskomplexitet för Azure Database for MySQL – flexibel server.
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
Kommentar
Den här artikeln beskriver hur du skapar en flexibel Azure Database for MySQL-server med MySQL-autentisering. En säkrare metod är att använda Microsoft Entra-autentisering för att autentisera databasserveranslutningen. Azure Red Hat OpenShift stöder för närvarande inte Microsoft Entra-arbetsbelastnings-ID, så MySQL-autentisering är det enda tillgängliga alternativet.
Om du får ett felmeddelande No available SKUs in this location
anger du en annan plats med parametern --location
och försöker igen. Använd följande kommando för att visa tillgängliga SKU:er på en specifik plats:
az mysql flexible-server list-skus --location <location>
Hitta en plats som har tillgängliga SKU:er och upprepa sedan föregående az mysql flexible-server create
kommando, men lägg till lämplig --location <location>
parameter, vilket gör att alla andra parametrar är oförändrade.
Det tar några minuter att skapa den server, databas, administratörsanvändare och brandväggsregel som accepterar anslutningar från alla Azure-resurser. Om kommandot lyckas ser utdata ut ungefär som i följande exempel:
{
"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"
}
Förbereda Liberty-programmet
Vi använder ett Java EE 8-program som exempel i den här guiden. Open Liberty är en Java EE 8 full profil kompatibel server, så det kan enkelt köra programmet. Open Liberty är också Jakarta EE 8 full profil kompatibel.
Kör programmet på Open Liberty
Om du vill köra programmet på Open Liberty måste du skapa en Open Liberty-serverkonfigurationsfil så att Liberty Maven-plugin-programmet kan paketera programmet för distribution. Liberty Maven-plugin-programmet krävs inte för att distribuera programmet till OpenShift. Men vi använder det i det här exemplet med Open Libertys utvecklarläge (dev). Med utvecklarläge kan du enkelt köra programmet lokalt. Mer information om finns i liberty-maven-plugin
Skapa ett webbprogram med Maven.
Följ stegen i det här avsnittet för att förbereda exempelprogrammet för senare användning i den här artikeln. I de här stegen används Maven och liberty-maven-plugin
.
Kolla in programmet
Använd följande kommandon för att klona exempelkoden för den här guiden. Exemplet finns på GitHub.
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
Om du ser ett meddelande om att vara i detached HEAD
-läge kan du säkert ignorera det. Det betyder bara att du checkade ut en tagg.
Det finns några exempel på lagringsplatsen. Vi använder open-liberty-on-aro/3-integration/connect-db/mysql. Här är programmets filstruktur:
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
Katalogerna java, resources och webapp innehåller källkoden för exempelprogrammet. Koden deklarerar och använder en datakälla med namnet jdbc/JavaEECafeDB
.
I aro-katalogen placerade vi två distributionsfiler. db-secret.xml används för att skapa hemligheter med autentiseringsuppgifter för databasanslutning. Filen openlibertyapplication.yaml används för att distribuera programbilden.
I rotkatalogen placerade vi två Dockerfiles. Dockerfile och Dockerfile-wlp används för lokal felsökning och för att skapa avbildningen för en Azure Red Hat OpenShift-distribution, som arbetar med Open Liberty respektive WebSphere Liberty.
I katalogen liberty/config används server.xml för att konfigurera databasanslutningen för Open Liberty- och WebSphere Liberty-klustret.
Bygga projektet
Använd miljövariablerna som definierats tidigare och kör följande kommandon i terminalen för att skapa projektet. POM-filen för projektet läser många egenskaper från miljön.
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
(Valfritt) Testa programmet lokalt
Du kan också köra programmet lokalt för att kontrollera att det fungerar som förväntat. Först måste du lägga till en brandväggsregel så att den lokala datorn kan ansluta till Azure Database for MySQL – flexibel serverinstans. Använd följande steg för att lägga till brandväggsregeln:
- Logga in på Azure Portal och gå till azure database for MySQL – flexibel serverinstans som du skapade tidigare.
- I den vänstra rutan väljer du Inställningar>Nätverk.
- Välj Lägg till aktuell klient-IP-adress.
- Välj Spara och vänta tills brandväggsregeln har lagts till.
Använd följande steg för att köra liberty:devc
kommandot för att köra och testa projektet och containeravbildningen lokalt innan du hanterar någon Azure-komplexitet. Mer information om liberty:devc
finns i dokumentationen för Liberty-plugin-programmet.
Starta din lokala Docker-miljö om det behövs. Instruktionerna för att starta miljön varierar beroende på värdoperativsystemet.
Använd följande kommandon för att starta programmet i
liberty:devc
läge: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
Kontrollera att programmet fungerar som förväntat. Du bör se ett meddelande som liknar
[INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds.
i kommandoutdata om det lyckas. Gå tillhttps://localhost:9443/
i webbläsaren och kontrollera att programmet är tillgängligt och att alla funktioner fungerar.Tryck på
liberty:devc
om du vill stoppa läget.
Förbereda programbilden
Om du vill distribuera och köra ditt Liberty-program i ett Azure Red Hat OpenShift-kluster kan du containerisera ditt program som en Docker-avbildning med hjälp av Open Liberty-containeravbildningar eller WebSphere Liberty-containeravbildningar.
Skapa programmet och push-överför till avbildningsströmmen
Eftersom du redan har kört appen i Liberty Docker-containern med kommandot liberty:devc
skapar du avbildningen via fjärranslutning i klustret med hjälp av följande steg:
Kontrollera att du loggar in på OpenShift CLI med autentiseringsuppgifterna
kubeadmin
.Använd följande kommandon för att identifiera källkatalogen och 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
Använd följande kommando för att ändra projektet till
open-liberty-demo
:oc project open-liberty-demo
Använd följande kommando för att skapa en avbildningsström:
oc create imagestream javaee-cafe-mysql
Använd följande kommando för att skapa en byggkonfiguration som anger avbildningsströmtaggen för build-utdata:
oc new-build --name javaee-cafe-mysql-config --binary --strategy docker --to javaee-cafe-mysql:v1
Använd följande kommando för att starta versionen för att ladda upp lokalt innehåll, containerisera och mata ut till taggen för avbildningsströmmen som angavs tidigare:
oc start-build javaee-cafe-mysql-config --from-dir . --follow
Distribuera program i Azure Red Hat OpenShift-klustret
Nu kan du distribuera Liberty-exempelprogrammet till Azure Red Hat OpenShift-klustret som du skapade tidigare när du arbetade igenom förhandskraven.
Distribuera programmet från webbkonsolen
Eftersom vi använder Open Liberty-operatorn för att hantera Liberty-program måste vi skapa en instans av dess anpassade resursdefinition, av typen OpenLibertyApplication
. Operatorn tar hand om alla aspekter av hanteringen av De OpenShift-resurser som krävs för distribution. Använd följande steg för att skapa den här instansen:
Logga in på OpenShift-webbkonsolen från webbläsaren med autentiseringsuppgifterna
kubeadmin
.Välj projektet genom att besöka Home>Projects>open-liberty-demo.
Gå till Arbetsbelastningshemligheter>.
Välj Skapa>från YAML-.
Ersätt den genererade YAML med din egen, som finns på <path-to-repo>/3-integration/connect-db/mysql/target/db-secret.yaml.
Välj Skapa. Det här valet returnerar dig till sidan Hemlig information.
Gå till Operatorer>installerade operatorer.
I mitten av sidan visas Open Liberty.
Från Tillhandahållna API:er väljer du OpenLibertyApplication. Navigeringen av objekt i användargränssnittet speglar den faktiska inneslutningshierarkin med tekniker som används.
Välj Skapa OpenLibertyApplication.
Välj YAML-vy för Konfigurera via.
Ersätt den genererade yaml med din, som finns på <path-to-repo>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.
Välj Skapa. Du återgår till listan med OpenLibertyApplications.
Gå till >
Välj javaee-café-mysql.
I mitten av sidan väljer du Resurser.
I tabellen väljer du länken för javaee-café-mysql med Typen av väg.
På sidan som öppnas väljer du länken nedan Plats.
Startsidan för programmet öppnas i webbläsaren.
Ta bort programmet från webbkonsolen
När du är klar med programmet använder du följande steg för att ta bort programmet från Open Shift:
- I det vänstra navigeringsfönstret expanderar du posten för Operatorer.
- Välj Installerade operatorer.
- Välj Öppna frihet.
- I mitten av sidan väljer du OpenLibertyApplication.
- För javaee-café-mysql väljer du den lodräta ellipsen (tre lodräta punkter) och väljer sedan Ta bort OpenLibertyApplication.
- Välj Ta bort för att ta bort programmet.
Använd följande steg för att ta bort hemligheten från Open Shift:
- Gå till Arbetsbelastningshemligheter>.
- Välj db-secret-mysql.
- Välj Åtgärder>Ta bort hemlighet.
- Välj Ta bort för att ta bort hemligheten.
Rensa resurser
Ta bort Azure Red Hat OpenShift-klustret genom att följa stegen i Självstudie: Ta bort ett Azure Red Hat OpenShift 4-kluster. Kontrollera att databasen och eventuella associerade resurser också tas bort.
Nästa steg
Du kan lära dig mer från referenser som används i den här guiden:
- Öppna Liberty
- Azure Red Hat OpenShift
- Öppna Liberty-operator
- Öppna Liberty Server-konfiguration
- Plugin-programmet Liberty Maven
- Öppna Liberty Container Images
- WebSphere Liberty Container Images
Information om alternativ för att köra WebSphere-produkter i Azure finns i Vad är lösningar för att köra WebSphere-serien med produkter i Azure?