Een Java-toepassing handmatig implementeren met Open Liberty/WebSphere Liberty in een Azure Red Hat OpenShift-cluster
Dit artikel bevat stapsgewijze instructies voor het uitvoeren van Open/WebSphere Liberty op een Azure Red Hat OpenShift-cluster. U wordt begeleid bij het voorbereiden van een Liberty-toepassing, het bouwen van de Docker-installatiekopie van de toepassing en het uitvoeren van de containertoepassing op een Azure Red Hat OpenShift-cluster.
In het bijzonder leert u hoe u de volgende taken uitvoert:
- De Liberty-toepassing voorbereiden
- De installatiekopieën van de toepassing bouwen
- De containertoepassing uitvoeren op een Azure Red Hat OpenShift-cluster met behulp van de GUI en de CLI
Zie Ibm WebSphere Liberty en Open Liberty implementeren in Azure Red Hat OpenShift met behulp van de Azure Marketplace-aanbieding voor een meer geautomatiseerde oplossing die uw reis naar een Azure Red Hat OpenShift-cluster versnelt.
Zie de projectpagina Open Liberty voor meer informatie over Open Liberty. Zie de productpagina van WebSphere Liberty voor meer informatie over WebSphere Liberty.
Dit artikel is bedoeld om u snel te helpen bij de implementatie. Voordat u naar productie gaat, moet u Tuning Liberty verkennen.
Als u feedback wilt geven of nauw wilt samenwerken aan uw migratiescenario's met het technische team dat WebSphere op Azure-oplossingen ontwikkelt, vult u deze korte enquête over WebSphere-migratie in en neemt u uw contactgegevens op. Het team van programmamanagers, architecten en technici neemt onmiddellijk contact met u op om nauwe samenwerking te initiëren.
Belangrijk
Hoewel Azure Red Hat OpenShift gezamenlijk wordt ontworpen, beheerd en ondersteund door Red Hat en Microsoft om een geïntegreerde ondersteuningservaring te bieden, is de software die u uitvoert boven op Azure Red Hat OpenShift, waaronder die in dit artikel wordt beschreven, onderworpen aan zijn eigen ondersteunings- en licentievoorwaarden. Zie ondersteuningslevenscyclus voor Azure Red Hat OpenShift 4 voor meer informatie over ondersteuning voor Azure Red Hat OpenShift. Zie de hoofdpagina's voor die software zoals vermeld in het artikel voor meer informatie over ondersteuning voor de software die in dit artikel wordt beschreven.
Notitie
Azure Red Hat OpenShift vereist minimaal 40 kernen om een OpenShift-cluster te maken en uit te voeren. Het standaardquotum voor Azure-resources voor een nieuw Azure-abonnement voldoet niet aan deze vereiste. Als u een verhoging van uw resourcelimiet wilt aanvragen, raadpleegt u Standaardquotum: Limieten verhogen per VM-reeks. Houd er rekening mee dat het gratis proefabonnement niet in aanmerking komt voor een quotumverhoging, upgrade naar een abonnement met betalen per gebruik voordat u een quotumverhoging aanvraagt.
Vereisten
Een lokale computer waarop unix-achtig besturingssysteem is geïnstalleerd, bijvoorbeeld Ubuntu, macOS of Windows-subsysteem voor Linux.
Een Implementatie van Java Standard Edition (SE), versie 17 of hoger, of bijvoorbeeld Eclipse Open J9.
Maven, versie 3.9.8 of hoger.
Docker voor uw besturingssysteem.
Azure CLI, versie 2.61.0 of hoger.
Een Azure Red Hat OpenShift 4-cluster. Als u het cluster wilt maken, volgt u de instructies in Een Azure Red Hat OpenShift 4-cluster maken met behulp van de volgende instructies:
Hoewel de stap 'Get a Red Hat pull secret' is gelabeld als optioneel, is dit vereist voor dit artikel. Met het pull-geheim kan uw Azure Red Hat OpenShift-cluster de Open Liberty Operator vinden.
De volgende omgevingsvariabelen die zijn gedefinieerd in Een Azure Red Hat OpenShift 4-cluster maken, worden verderop in dit artikel gebruikt:
RESOURCEGROUP
- de naam van de resourcegroep waarin het cluster is geïmplementeerd.CLUSTER
- de naam van het cluster.
Als u van plan bent geheugenintensieve toepassingen op het cluster uit te voeren, geeft u de juiste grootte van de virtuele machine op voor de werkknooppunten met behulp van de
--worker-vm-size
parameter. Raadpleeg voor meer informatie de volgende artikelen:
Maak verbinding met het cluster door de stappen in Verbinding maken met een Azure Red Hat OpenShift 4-cluster te volgen met behulp van de volgende instructies:
- Volg de stappen in OpenShift CLI installeren, omdat u de
oc
opdracht verderop in dit artikel gebruikt. - Sla de URL van de clusterconsole op. Het moet er als
https://console-openshift-console.apps.<random>.<region>.aroapp.io/
volgt uitzien. - Noteer de
kubeadmin
referenties. - Volg de stappen in Verbinding maken met behulp van de OpenShift CLI met de
kubeadmin
referenties.
- Volg de stappen in OpenShift CLI installeren, omdat u de
Open Liberty OpenShift Operator installeren
Nadat u het cluster hebt gemaakt en er verbinding mee hebt gemaakt, gebruikt u de volgende stappen om de Open Liberty Operator te installeren. De hoofdstartpagina voor de Open Liberty Operator bevindt zich op GitHub.
Meld u aan bij de OpenShift-webconsole vanuit uw browser met behulp van de
kubeadmin
referenties.Navigeer naar Operators>OperatorHub en zoek naar Open Liberty.
Selecteer Open Liberty in de zoekresultaten.
Selecteer Installeren.
Voer op de pagina Operator installeren de volgende stappen uit:
- Selecteer voor Update-kanaal het meest recente kanaal v1.3.
- Zie alle naamruimten op het cluster (standaard) voor de installatiemodus.
- Selecteer Automatisch voor goedkeuring van de update.
Selecteer Installeren en wacht een paar minuten totdat de installatie is voltooid.
Merk op dat de Open Liberty Operator is geïnstalleerd en klaar is voor gebruik. Als het niet gereed is, kunt u het probleem vaststellen en oplossen voordat u doorgaat.
Notitie
In deze handleiding wordt de Open Liberty Operator geïnstalleerd voor het beheren van Liberty-toepassingen in het Azure Red Hat OpenShift-cluster. Als u de WebSphere Liberty Operator wilt gebruiken, volgt u de stappen in Het installeren van de WebSphere Liberty-operator om de WebSphere Liberty Operator op het cluster te installeren.
Een OpenShift-naamruimte maken voor de Java-app
Gebruik de volgende stappen om een OpenShift-naamruimte te maken voor gebruik met uw app:
Zorg ervoor dat u bent aangemeld bij de OpenShift-webconsole vanuit uw browser met behulp van de
kubeadmin
referenties.Navigeer naar Beheernaamruimten>>maken naamruimte.
Vul de naam in
open-liberty-demo
en selecteer Maken, zoals hierna wordt weergegeven.
Een Azure Database for MySQL Flexible Server maken
Azure Database for MySQL Flexible Server-implementatiemodel is een implementatiemodus die is ontworpen om gedetailleerdere controle en flexibiliteit te bieden voor databasebeheerfuncties en configuratie-instellingen dan de implementatiemodus voor één server in Azure Database for MySQL. In deze sectie wordt beschreven hoe u een Azure Database for MySQL Flexible Server-exemplaar maakt met behulp van de Azure CLI. Zie quickstart: Een exemplaar van Azure Database for MySQL - Flexible Server maken met behulp van de Azure CLI voor meer informatie.
Voer de volgende opdracht uit in uw terminal om een Azure Database for MySQL Flexible Server-exemplaar te maken. Vervang <server-admin-password>
door een wachtwoord dat voldoet aan de vereisten voor wachtwoordcomplexiteit voor Azure Database for MySQL Flexible 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
Notitie
Als u op deze locatie een foutbericht krijgt dat er geen beschikbare SKU's beschikbaar zijn, moet u een andere locatie opgeven met behulp van de --location
parameter en het opnieuw proberen. Gebruik de volgende opdracht om beschikbare SKU's op een specifieke locatie weer te geven:
az mysql flexible-server list-skus --location <Location>
Zoek een locatie met beschikbare SKU's en herhaal de voorgaande az mysql flexible-server create command
, maar voeg de juiste --location <Location>
parameter toe, zodat alle andere parameters ongewijzigd blijven.
Het duurt enkele minuten om de server, database, beheerder en firewallregel te maken die verbindingen van alle Azure-resources accepteert. Als de opdracht is geslaagd, ziet de uitvoer er ongeveer als volgt uit:
{
"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"
}
De Liberty-toepassing voorbereiden
We gebruiken een Java EE 8-toepassing als voorbeeld in deze handleiding. Open Liberty is een volledig profiel dat compatibel is met Java EE 8, zodat de toepassing eenvoudig kan worden uitgevoerd. Open Liberty is ook Jakarta EE 8 volledig profiel compatibel.
De toepassing uitvoeren op Open Liberty
Als u de toepassing wilt uitvoeren op Open Liberty, moet u een Open Liberty-serverconfiguratiebestand maken, zodat de Liberty Maven-invoegtoepassing de toepassing kan verpakken voor implementatie. De Liberty Maven-invoegtoepassing is niet vereist om de toepassing te implementeren in OpenShift. We gebruiken het echter in dit voorbeeld met de ontwikkelaarsmodus (dev) van Open Liberty. Met de ontwikkelaarsmodus kunt u de toepassing eenvoudig lokaal uitvoeren. Zie Een webtoepassing bouwen met Maven voor meer informatie over de liberty-maven-plugin
webtoepassing.
Volg de stappen in deze sectie om de voorbeeldtoepassing voor te bereiden voor later gebruik in dit artikel. Deze stappen maken gebruik van Maven en de liberty-maven-plugin
.
De toepassing uitchecken
Gebruik de volgende opdrachten om de voorbeeldcode voor deze handleiding te klonen. Het voorbeeld bevindt zich op 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
Als u een bericht ziet over 'losgekoppelde HEAD'-status, is dit bericht veilig te negeren. Het betekent alleen dat je een tag hebt uitgecheckt.
Er zijn enkele voorbeelden in de opslagplaats. We gebruiken open-liberty-on-aro/3-integration/connect-db/mysql. Dit is de bestandsstructuur van de toepassing:
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
De directory's java, resources en web-app bevatten de broncode van de voorbeeldtoepassing. De code declareert en gebruikt een gegevensbron met de naam jdbc/JavaEECafeDB
.
In de aro-map hebben we twee implementatiebestanden geplaatst. db-secret.xml wordt gebruikt voor het maken van geheimen met databaseverbindingsreferenties. Het bestand openlibertyapplication.yaml wordt gebruikt om de toepassingsinstallatiekopie te implementeren.
In de hoofdmap hebben we twee Dockerfiles geplaatst. Dockerfile en Dockerfile-wlp worden gebruikt voor lokale foutopsporing en voor het bouwen van de installatiekopie voor een Azure Red Hat OpenShift-implementatie, respectievelijk met Open Liberty en WebSphere Liberty.
In de map liberty/config wordt de server.xml gebruikt om de databaseverbinding voor het Open Liberty- en WebSphere Liberty-cluster te configureren.
Het project bouwen
Voer met behulp van de eerder gedefinieerde omgevingsvariabelen de volgende opdrachten uit in uw terminal om het project te bouwen. Het POM-bestand voor het project leest veel eigenschappen uit de omgeving.
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
(Optioneel) Uw toepassing lokaal testen
U kunt de toepassing desgewenst lokaal uitvoeren om te controleren of deze werkt zoals verwacht. Eerst moet u een firewallregel toevoegen om uw lokale computer verbinding te laten maken met het Azure Database for MySQL Flexible Server-exemplaar. Gebruik de volgende stappen om de firewallregel toe te voegen:
- Meld u aan bij Azure Portal en navigeer naar het Exemplaar van Azure Database for MySQL Flexible Server dat u eerder hebt gemaakt.
- Selecteer In het linkerdeelvenster Instellingennetwerken>.
- Selecteer Huidig IP-adres van client toevoegen.
- Selecteer Opslaan en wacht totdat de firewallregel is toegevoegd.
Gebruik de volgende stappen om de liberty:devc
opdracht uit te voeren om het project en de containerinstallatiekopieën lokaal uit te voeren en te testen voordat u te maken krijgt met een azure-complexiteit. Zie de documentatie van de Liberty Plugin voor meer informatieliberty:devc
.
Start indien nodig uw lokale Docker-omgeving. De instructies hiervoor variëren afhankelijk van het hostbesturingssysteem.
Gebruik de volgende opdrachten om de toepassing in
liberty:devc
de modus te starten: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
Controleer of de toepassing werkt zoals verwacht. Als dit lukt, ziet u een bericht dat lijkt op
[INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds.
in de uitvoer van de opdracht. Ga naarhttps://localhost:9443/
uw browser en controleer of de toepassing toegankelijk is en of alle functies werken.Druk op Control+C om de modus te stoppen.
liberty:devc
De installatiekopieën van de toepassing voorbereiden
Als u uw Liberty-toepassing wilt implementeren en uitvoeren op een Azure Red Hat OpenShift-cluster, kunt u uw toepassing in een container opslaan als een Docker-installatiekopie met behulp van Open Liberty-containerinstallatiekopieën of WebSphere Liberty-containerinstallatiekopieën.
De toepassing bouwen en pushen naar de installatiekopieënstroom
Omdat u de app al hebt uitgevoerd in de Liberty Docker-container met behulp van de liberty:devc
opdracht, gaat u de installatiekopieën op afstand in het cluster bouwen met behulp van de volgende stappen:
Zorg ervoor dat u zich aanmeldt bij de OpenShift CLI met behulp van de
kubeadmin
referenties.Gebruik de volgende opdrachten om de bronmap en Dockerfile te identificeren:
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
Gebruik de volgende opdracht om project te wijzigen in open-liberty-demo:
oc project open-liberty-demo
Gebruik de volgende opdracht om een afbeeldingsstroom te maken:
oc create imagestream javaee-cafe-mysql
Gebruik de volgende opdracht om een buildconfiguratie te maken waarmee de installatiekopieënstroomtag van de build-uitvoer wordt opgegeven:
oc new-build --name javaee-cafe-mysql-config --binary --strategy docker --to javaee-cafe-mysql:v1
Gebruik de volgende opdracht om de build te starten om lokale inhoud, containerize en uitvoer te uploaden naar de tag voor de installatiekopieënstroom die eerder is opgegeven:
oc start-build javaee-cafe-mysql-config --from-dir . --follow
Toepassing implementeren in het Azure Red Hat OpenShift-cluster
U kunt nu de voorbeeldtoepassing Liberty implementeren in het Azure Red Hat OpenShift-cluster dat u eerder hebt gemaakt wanneer u aan de vereisten voldoet.
De toepassing implementeren vanuit de webconsole
Omdat we de Open Liberty Operator gebruiken om Liberty-toepassingen te beheren, moeten we een exemplaar van de aangepaste resourcedefinitie van het type OpenLibertyApplication
maken. De operator zorgt voor alle aspecten van het beheren van de OpenShift-resources die nodig zijn voor implementatie. Gebruik de volgende stappen om dit exemplaar te maken:
Meld u aan bij de OpenShift-webconsole vanuit uw browser met behulp van de
kubeadmin
referenties.Selecteer het project door naar Home>Projects>open-liberty-demo te gaan.
Navigeer naar Workloads>Secrets.
Selecteer Maken> vanuit YAML.
Vervang de gegenereerde yaml door die van u, die zich bevindt in <path-to-repo>/3-integration/connect-db/mysql/target/db-secret.yaml.
Selecteer Maken. U keert terug naar de pagina Geheime details.
Navigeer naar operators>die zijn geïnstalleerd.
Midden op de pagina ziet u Open Liberty.
Selecteer OpenLibertyApplication vanuit opgegeven API's. De navigatie van items in de gebruikersinterface weerspiegelt de werkelijke insluitingshiërarchie van gebruikte technologieën.
Selecteer OpenLibertyApplication maken.
Selecteer de YAML-weergave voor Configureren via.
Vervang de gegenereerde yaml door die van u, die zich bevindt in <path-to-repo>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.
Selecteer Maken. U keert terug naar de lijst met OpenLibertyApplications.
Navigeer naar Operators Installed Operators>>Open Liberty>OpenLibertyApplication.
Selecteer javaee-café-mysql.
Selecteer Resources in het midden van de pagina.
Selecteer in de tabel de koppeling voor javaee-café-mysql met het soort route.
Selecteer op de pagina die wordt geopend de koppeling onder Locatie.
De startpagina van de toepassing wordt geopend in de browser.
De toepassing verwijderen uit de webconsole
Wanneer u klaar bent met de toepassing, gebruikt u de volgende stappen om de toepassing te verwijderen uit Open Shift:
- Vouw in het linkernavigatiedeelvenster de vermelding voor Operators uit.
- Selecteer Geïnstalleerde operators.
- Selecteer Vrijheid openen.
- Selecteer OpenLibertyApplication in het midden van de pagina.
- Voor javaee-café-mysql selecteert u het verticale beletselteken (drie verticale puntjes) en selecteert u Vervolgens OpenLibertyApplication verwijderen.
- Selecteer Verwijderen om de toepassing te verwijderen.
Gebruik de volgende stappen om het geheim te verwijderen uit Open Shift:
- Navigeer naar Workloads>Secrets.
- Selecteer db-secret-mysql.
- Selecteer Acties>verwijderen geheim.
- Selecteer Verwijderen om het geheim te verwijderen.
Resources opschonen
Verwijder het Azure Red Hat OpenShift-cluster door de stappen in zelfstudie te volgen: Een Azure Red Hat OpenShift 4-cluster verwijderen. Zorg ervoor dat de database en eventuele bijbehorende resources ook worden verwijderd.
Volgende stappen
In deze handleiding vindt u meer informatie over verwijzingen die worden gebruikt:
- Open Liberty
- Azure Red Hat OpenShift
- Open Liberty Operator
- Open Liberty Server-configuratie
- Liberty Maven Plugin
- Open Liberty Container Images
- WebSphere Liberty-containerinstallatiekopieën
Als u opties wilt verkennen om WebSphere-producten uit te voeren in Azure, raadpleegt u Wat zijn oplossingen voor het uitvoeren van de WebSphere-producten in Azure?