Delen via


Een Java-toepassing implementeren met Open Liberty of WebSphere Liberty op een AKS-cluster (Azure Kubernetes Service)

In dit artikel wordt uitgelegd hoe u het volgende kunt doen:

  • Voer uw Java-, Java EE-, Jakarta EE- of MicroProfile-toepassing uit op de Open Liberty - of IBM WebSphere Liberty-runtime .
  • Bouw de Docker-installatiekopieën van de toepassing met az acr build behulp van Open Liberty- of WebSphere Liberty-containerinstallatiekopieën.
  • Implementeer de containertoepassing in een AKS-cluster (Azure Kubernetes Service) met behulp van de Open Liberty Operator of WebSphere Liberty Operator.

De Open Liberty Operator vereenvoudigt de implementatie en het beheer van toepassingen die worden uitgevoerd op Kubernetes-clusters. Met de Open Liberty Operator of WebSphere Liberty Operator kunt u ook geavanceerdere bewerkingen uitvoeren, zoals het verzamelen van traceringen en dumps.

In dit artikel wordt gebruikgemaakt van de Azure Marketplace-aanbieding voor Open Liberty of WebSphere Liberty om uw reis naar AKS te versnellen. De aanbieding richt automatisch enkele Azure-resources in, waaronder:

  • Een Azure Container Registry-exemplaar.
  • Een AKS-cluster.
  • Een AGIC-exemplaar (Application Gateway Ingress Controller).
  • De Open Liberty Operator en WebSphere Liberty Operator.
  • Eventueel een containerinstallatiekopieën met Liberty en uw toepassing.

Als u de voorkeur geeft aan handmatige stapsgewijze richtlijnen voor het uitvoeren van Liberty op AKS, raadpleegt u Handmatig een Java-toepassing implementeren met Open Liberty of WebSphere Liberty op een AKS-cluster (Azure Kubernetes Service).

Dit artikel is bedoeld om u snel te helpen bij de implementatie. Voordat u naar productie gaat, moet u de IBM-documentatie over het afstemmen van 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.

Vereisten

  • Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
  • Bereid een lokale computer voor waarop unix-achtig besturingssysteem is geïnstalleerd, bijvoorbeeld Ubuntu, Azure Linux, macOS of Windows-subsysteem voor Linux.
  • Installeer de Azure CLI om Azure CLI-opdrachten uit te voeren.
    • Meld u aan bij de Azure CLI met behulp van de az login opdracht. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Zie Aanmelden bij Azure met Azure CLI voor andere aanmeldingsopties.
    • Installeer de Azure CLI-extensie bij het eerste gebruik, wanneer u hierom wordt gevraagd. Zie Extensies gebruiken en beheren met de Azure CLI voor meer informatie over extensies.
    • Voer az version uit om de versie en afhankelijke bibliotheken te vinden die zijn geïnstalleerd. Als u wilt upgraden naar de nieuwste versie, voert u uit az upgrade. Voor dit artikel is ten minste versie 2.61.0 van Azure CLI vereist.
  • Installeer een Java Standard Edition(SE)-implementatie, versie 17 (bijvoorbeeld Eclipse Open J9).
  • Installeer Maven 3.9.8 of hoger.
  • Zorg ervoor dat Git is geïnstalleerd.
  • Zorg ervoor dat u de Owner rol of de Contributor User Access Administrator rollen in het abonnement hebt toegewezen. U kunt dit controleren door de stappen te volgen in Roltoewijzingen weergeven voor een gebruiker of groep.

Een Liberty on AKS-implementatie maken met behulp van de portal

De volgende stappen helpen u bij het maken van een Liberty Runtime op AKS. Nadat u deze stappen hebt voltooid, hebt u een Container Registry-exemplaar en een AKS-cluster voor het implementeren van uw containertoepassing.

  1. Ga naar de Azure Portal. Voer in het zoekvak boven aan de pagina WebSphere Liberty/Open Liberty in Kubernetes in. Wanneer de suggesties worden weergegeven, selecteert u het ene en alleen de overeenkomst in de sectie Marketplace .

    Als u wilt, kunt u rechtstreeks naar de aanbieding gaan.

  2. Selecteer Maken.

  3. In het deelvenster Basisbeginselen :

    1. Een nieuwe resourcegroep maken. Omdat resourcegroepen uniek moeten zijn binnen een abonnement, kiest u een unieke naam. Een eenvoudige manier om unieke namen te hebben, is door gebruik te maken van een combinatie van uw initialen, de datum van vandaag en een id (bijvoorbeeld ejb0913-java-liberty-project-rg). Sla de naam van de resourcegroep op voor later gebruik in dit artikel.
    2. Selecteer voor Regio een regio die bij u in de buurt is. Selecteer bijvoorbeeld VS - oost 2.
  4. Selecteer Volgende. In het AKS-deelvenster kunt u desgewenst een bestaand AKS-cluster en containerregister-exemplaar selecteren in plaats van ervoor te zorgen dat de implementatie nieuwe maakt. Met deze keuze kunt u het sidecar-patroon gebruiken, zoals wordt weergegeven in het Azure Architecture Center. U kunt ook de instellingen voor de grootte en het aantal virtuele machines in de AKS-knooppuntgroep aanpassen.

    Voor dit artikel moet u alle standaardinstellingen in dit deelvenster behouden.

  5. Selecteer Volgende. Selecteer Ja in het deelvenster Taakverdeling, naast Verbinding maken met Azure-toepassing Gateway?. In deze sectie kunt u de volgende implementatieopties aanpassen:

    • Voor virtueel netwerk en subnet kunt u desgewenst het virtuele netwerk en subnet aanpassen waarin de implementatie de resources plaatst. U hoeft de resterende waarden niet te wijzigen op basis van de standaardwaarden.

    • Voor TLS/SSL-certificaat kunt u het TLS/SSL-certificaat opgeven vanuit Azure-toepassing Gateway. Laat de standaardwaarden staan om ervoor te zorgen dat de aanbieding een zelfondertekend certificaat genereert.

      Ga niet naar productie met een zelfondertekend certificaat. Zie Een zelfondertekend openbaar certificaat maken om uw toepassing te verifiëren voor meer informatie over zelfondertekende certificaten.

    • U kunt op cookies gebaseerde affiniteit inschakelen selecteren, ook wel plaksessies genoemd. In dit artikel worden plaksessies gebruikt, dus zorg ervoor dat u deze optie selecteert.

  6. Selecteer Volgende. In het deelvenster Operator en toepassing worden in dit artikel alle standaardinstellingen gebruikt. U kunt echter de volgende implementatieopties aanpassen:

    • U kunt WebSphere Liberty Operator implementeren door Ja te selecteren voor de optie die DOOR IBM wordt ondersteund? Als u de standaardwaarde Nee verlaat, wordt Open Liberty Operator geïmplementeerd.
    • U kunt een toepassing voor de geselecteerde operator implementeren door Ja te selecteren voor de optie Een toepassing implementeren?. Als u de standaardwaarde Nee verlaat, wordt er geen toepassing geïmplementeerd.
  7. Selecteer Beoordelen en maken om de geselecteerde opties te valideren. Wanneer u Maken ziet in het deelvenster Controleren en maken, selecteert u deze nadat de validatie is geslaagd.

    De implementatie kan maximaal 20 minuten duren. Terwijl u wacht tot de implementatie is voltooid, kunt u de stappen in de sectie Een Azure SQL Database-exemplaar maken volgen. Nadat u deze sectie hebt voltooid, komt u hier terug en gaat u verder.

Geselecteerde gegevens uit de implementatie vastleggen

Als u van het deelvenster Implementatie bent verwijderd, ziet u in de volgende stappen hoe u terug kunt gaan naar dat deelvenster. Als u zich nog steeds in het deelvenster bevindt waarin wordt weergegeven dat uw implementatie is voltooid, gaat u naar de zojuist gemaakte resourcegroep en gaat u verder met de derde stap.

  1. Selecteer in de hoek van een portalpagina de menuknop en selecteer vervolgens Resourcegroepen.

  2. Voer in het vak met het tekstfilter voor een veld de eerste paar tekens in van de resourcegroep die u eerder hebt gemaakt. Als u de aanbevolen conventie hebt gevolgd, voert u uw initialen in en selecteert u vervolgens de juiste resourcegroep.

  3. Selecteer in de lijst met resources in de resourcegroep de resource met de waarde Type van containerregister.

  4. Selecteer toegangssleutels in het navigatiedeelvenster onder Instellingen.

  5. Sla de waarden voor de registernaam en aanmeldingsserver op. U kunt het kopieerpictogram naast elk veld gebruiken om de waarde naar het systeem klembord te kopiëren.

    Notitie

    In dit artikel wordt de opdracht gebruikt voor het az acr build bouwen en pushen van de Docker-installatiekopieën naar het Container Registry, zonder username gebruik en password van het Container Registry. Het is nog steeds mogelijk om een gebruikersnaam en wachtwoord te gebruiken met docker login en docker push. Het gebruik van gebruikersnaam en wachtwoord is minder veilig dan verificatie zonder wachtwoord.

  6. Ga terug naar de resourcegroep waarin u de resources hebt geïmplementeerd.

  7. Selecteer Implementaties in de sectie Instellingen.

  8. Selecteer de meest onderste implementatie in de lijst. De waarde van de implementatienaam komt overeen met de uitgevers-id van de aanbieding. Deze bevat de tekenreeks ibm.

  9. Selecteer Uitvoer in het navigatiedeelvenster.

  10. Als u dezelfde kopieertechniek gebruikt als bij de voorgaande waarden, slaat u de waarden voor de volgende uitvoer op:

    • cmdToConnectToCluster

    • appDeploymentTemplateYaml als de implementatie geen toepassing bevat. Dat wil zeggen dat u Nee hebt geselecteerd voor Het implementeren van een toepassing? wanneer u de Marketplace-aanbieding hebt geïmplementeerd. Dit artikel heeft Nee geselecteerd. Als u Echter Ja hebt geselecteerd, slaat u de waarde op van appDeploymentYaml, waaronder de implementatie van de toepassing.

      Plak de waarde van appDeploymentTemplateYaml of appDeploymentYaml in een Bash-shell en voer de opdracht uit.

      De uitvoer van deze opdracht is de YAML voor de implementatie van de toepassing. Zoek naar het inkomende TLS-geheim met trefwoord secretName, zoals - secretName: secret785e2c. Sla de secretName waarde op.

Voer de volgende opdrachten uit om de omgevingsvariabelen in te stellen die u in de vorige stappen hebt vastgelegd. Deze omgevingsvariabelen worden verderop in dit artikel gebruikt.

export RESOURCE_GROUP_NAME=<your-resource-group-name>
export REGISTRY_NAME=<your-registry-nam-of-container-registry>
export LOGIN_SERVER=<your-login-server-of-container-registry>
export INGRESS_TLS_SECRET=<your-ingress-tls-secret-name>

Een Azure SQL Database-exemplaar maken

In deze sectie maakt u een individuele Azure SQL Database-database voor gebruik met uw app.

Stel eerst omgevingsvariabelen in die betrekking hebben op databases. Vervang door <your-unique-sql-server-name> een unieke naam voor uw Azure SQL Database-server.

export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb

Voer de volgende opdracht uit in uw terminal om één database te maken in Azure SQL Database en stel de huidige aangemelde gebruiker in als Microsoft Entra-beheerder. Zie quickstart: Een individuele database maken - Azure SQL Database voor meer informatie.

export ENTRA_ADMIN_NAME=$(az account show --query user.name --output tsv)

az sql server create \
    --name $SQL_SERVER_NAME \
    --resource-group $RESOURCE_GROUP_NAME \
    --enable-ad-only-auth \
    --external-admin-principal-type User \
    --external-admin-name $ENTRA_ADMIN_NAME \
    --external-admin-sid $(az ad signed-in-user show --query id --output tsv)
az sql db create \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $SQL_SERVER_NAME \
    --name $DB_NAME \
    --edition GeneralPurpose \
    --compute-model Serverless \
    --family Gen5 \
    --capacity 2

Voeg vervolgens het lokale IP-adres toe aan de firewallregels van de Azure SQL Database-server zodat uw lokale computer verbinding kan maken met de database voor later lokaal testen.

export AZ_LOCAL_IP_ADDRESS=$(curl -s https://whatismyip.akamai.com)
az sql server firewall-rule create \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $SQL_SERVER_NAME \
    --name AllowLocalIP \
    --start-ip-address $AZ_LOCAL_IP_ADDRESS \
    --end-ip-address $AZ_LOCAL_IP_ADDRESS

Notitie

In dit artikel wordt SQL-verificatie uitgeschakeld om aanbevolen beveiligingsprocedures te illustreren. Microsoft Entra-id wordt gebruikt om de verbinding met de server te verifiëren. Als u SQL-verificatie wilt inschakelen, raadpleegt az sql server createu .

Een serviceverbinding maken in AKS met serviceconnector

In deze sectie maakt u een serviceverbinding tussen het AKS-cluster en de Azure SQL Database met behulp van Microsoft Entra Workload-ID met serviceconnector. Met deze verbinding kan het AKS-cluster toegang krijgen tot de Azure SQL Database zonder SQL-verificatie.

Verdeel eerst de resourceprovider van de Azure Service Connector-app toe aan de Application Gateway die eerder is geïmplementeerd. Deze stap is vereist om een serviceverbinding te maken tussen het AKS-cluster en de Azure SQL Database.

  1. Ga naar Azure Portal en navigeer naar de resourcegroep die u eerder hebt gemaakt.
  2. Selecteer in de lijst met resources in de resourcegroep de resource met de waarde Type van Application Gateway.
  3. Klik op Toegangsbeheer (IAM) . Vouw vervolgens Toevoegen uit en selecteer Roltoewijzing toevoegen.
  4. Selecteer op het tabblad Rol bevoorrechte beheerdersrollen. Selecteer vervolgens Inzender. Selecteer Volgende.
  5. Selecteer leden selecteren op het tabblad Leden. Zoek vervolgens naar de resourceprovider-app van De Azure Service Connector. Selecteer de app en selecteer Selecteren. Selecteer Volgende.
  6. Selecteer Controleren + toewijzen. Wacht enkele seconden totdat de roltoewijzing is voltooid.

Voer vervolgens de volgende opdrachten uit om een verbinding te maken tussen het AKS-cluster en de SQL-database met behulp van Microsoft Entra Workload-ID met Service Connector. Zie Een serviceverbinding maken in AKS met Service Connector (preview) voor meer informatie.

# Register the Service Connector and Kubernetes Configuration resource providers
az provider register --namespace Microsoft.ServiceLinker --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait

# Install the Service Connector passwordless extension
az extension add --name serviceconnector-passwordless --upgrade --allow-preview true

# Retrieve the AKS cluster and Azure SQL Server resource IDs
export AKS_CLUSTER_RESOURCE_ID=$(az aks show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --query id \
    --output tsv)
export AZURE_SQL_SERVER_RESOURCE_ID=$(az sql server show \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $SQL_SERVER_NAME \
    --query id \
    --output tsv)

# Create a user-assigned managed identity used for workload identity
export USER_ASSIGNED_IDENTITY_NAME=workload-identity-uami
az identity create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name ${USER_ASSIGNED_IDENTITY_NAME}

# Retrieve the user-assigned managed identity resource ID
export UAMI_RESOURCE_ID=$(az identity show \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name ${USER_ASSIGNED_IDENTITY_NAME} \
    --query id \
    --output tsv)

# Create a service connection between your AKS cluster and your SQL database using Microsoft Entra Workload ID
az aks connection create sql \
    --connection akssqlconn \
    --client-type java \
    --source-id $AKS_CLUSTER_RESOURCE_ID \
    --target-id $AZURE_SQL_SERVER_RESOURCE_ID/databases/$DB_NAME \
    --workload-identity $UAMI_RESOURCE_ID

Notitie

U wordt aangeraden Microsoft Entra Workload-ID te gebruiken voor beveiligde toegang tot uw Azure SQL Database zonder SQL-verificatie. Als u SQL-verificatie wilt gebruiken, negeert u de vorige stappen in deze sectie en gebruikt u de gebruikersnaam en het wachtwoord om verbinding te maken met de Azure SQL Database.

Serviceaccount en geheim ophalen dat is gemaakt door Service Connector

Als u zich wilt verifiëren bij de Azure SQL Database, moet u het serviceaccount en geheim ophalen dat is gemaakt door serviceconnector. Volg de instructies in de sectie Uw container bijwerken van de zelfstudie: Een AKS-app verbinden met Azure SQL Database. Maak de optie Rechtstreeks een implementatie met behulp van het opgegeven YAML-voorbeeldcodefragment en gebruik de volgende stappen:

  1. Kopieer vanuit de gemarkeerde secties in de YAML van de Kubernetes-voorbeeldimplementatie de serviceAccountName en secretRef.name waarden, zoals wordt weergegeven in het volgende voorbeeld:

    serviceAccountName: <service-account-name>
    containers:
    - name: raw-linux
       envFrom:
          - secretRef:
             name: <secret-name>
    
  2. Gebruik de volgende opdrachten om omgevingsvariabelen te definiëren. Vervang <service-account-name> en <secret-name> door de waarden die u in de vorige stap hebt gekopieerd.

    export SERVICE_ACCOUNT_NAME=<service-account-name>
    export SECRET_NAME=<secret-name>
    

    Deze waarden worden in de volgende sectie gebruikt om de Liberty-toepassing te implementeren in het AKS-cluster.

Notitie

Het geheim dat door serviceconnector is gemaakt, bevat het AZURE_SQL_CONNECTIONSTRING, een wachtwoordloze verbindingsreeks voor de Azure SQL Database. Zie de voorbeeldwaarde in de sectie Door de gebruiker toegewezen beheerde identiteitverificatie van Azure SQL Database integreren met Service Connector voor meer informatie.

Nu u de database en het AKS-cluster hebt ingesteld, kunt u doorgaan met het voorbereiden van AKS om uw Open Liberty-toepassing te hosten.

De voorbeeldtoepassing configureren en implementeren

Volg de stappen in deze sectie om de voorbeeldtoepassing te implementeren in de Liberty Runtime. In deze stappen wordt Maven gebruikt.

De toepassing uitchecken

Kloon de voorbeeldcode voor dit artikel. Het voorbeeld bevindt zich op GitHub.

Er zijn enkele voorbeelden in de opslagplaats. In dit artikel wordt java-app gebruikt. Voer de volgende opdrachten uit om het voorbeeld op te halen:

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

Als u een bericht ziet over 'losgekoppelde HEAD'-status, kunt u het veilig negeren. Het bericht betekent alleen dat u een tag hebt uitgecheckt.

Hier volgt de bestandsstructuur van de toepassing, met belangrijke bestanden en mappen:

java-app
├─ src/main/
│  ├─ aks/
│  │  ├─ openlibertyapplication-agic-passwordless-db.yaml
│  ├─ docker/
│  │  ├─ Dockerfile
│  │  ├─ Dockerfile-wlp
│  ├─ liberty/config/
│  │  ├─ server.xml
│  ├─ java/
│  ├─ resources/
│  ├─ webapp/
├─ pom.xml
├─ pom-azure-identity.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 aks-map wordt het bestand openlibertyapplication-agic-passwordless-db.yaml gebruikt om de toepassingsinstallatiekopie te implementeren met AGIC en verbinding zonder wachtwoord met de Azure SQL Database. In dit artikel wordt ervan uitgegaan dat u dit bestand gebruikt.

In de docker-map zijn er twee bestanden om de toepassingsinstallatiekopieën te maken met Open Liberty of WebSphere Liberty.

In de map liberty/config wordt het server.xml-bestand gebruikt om de databaseverbinding voor het Open Liberty- en WebSphere Liberty-cluster te configureren. Hiermee wordt een variabele azure.sql.connectionstring gedefinieerd die wordt gebruikt om verbinding te maken met de Azure SQL Database.

Het bestand pom.xml is het POM-bestand (Project Object Model) van Maven dat de configuratiegegevens voor het project bevat. Het bestand pom-azure-identity.xml declareert een afhankelijkheid van azure-identity. Dit bestand wordt gebruikt voor verificatie bij Azure-services met behulp van Microsoft Entra-id.

Notitie

In dit voorbeeld wordt de azure-identity bibliotheek gebruikt om te verifiëren bij Azure SQL Database met behulp van Microsoft Entra-verificatie. Als u SQL-verificatie in uw Liberty-toepassing wilt gebruiken, raadpleegt u Relationele databaseverbindingen met JDBC.

Het project bouwen

Nu u de benodigde eigenschappen hebt verzameld, bouwt u de toepassing. Het POM-bestand voor het project leest veel variabelen uit de omgeving. Als onderdeel van de Maven-build worden deze variabelen gebruikt om waarden in te vullen in de YAML-bestanden in src/main/aks. U kunt iets soortgelijks doen voor uw toepassing buiten Maven als u wilt.

cd $BASE_DIR/java-app
# The following variables are used for deployment file generation into the target.
export LOGIN_SERVER=${LOGIN_SERVER}
export SC_SERVICE_ACCOUNT_NAME=${SERVICE_ACCOUNT_NAME}
export SC_SECRET_NAME=${SECRET_NAME}
export INGRESS_TLS_SECRET=${INGRESS_TLS_SECRET}

mvn clean install
mvn dependency:copy-dependencies -f pom-azure-identity.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources

Uw project lokaal testen

Voer het project lokaal uit en test het voordat u implementeert in Azure. Voor het gemak gebruikt liberty-maven-plugindit artikel . Zie het Open Liberty-artikel Over het bouwen van een webtoepassing met Maven voor meer informatieliberty-maven-plugin.

Notitie

Als u een serverloze database-implementatie hebt geselecteerd, controleert u of uw SQL-database niet in de onderbrekingsmodus is gegaan. Een manier om dit te doen, is om u aan te melden bij de databasequery-editor, zoals beschreven in quickstart: De Azure Portal-queryeditor (preview) gebruiken om een query uit te voeren op Azure SQL Database.

  1. Start de toepassing met behulp van liberty:run.

    cd $BASE_DIR/java-app
    
    # The value of environment variable AZURE_SQL_CONNECTIONSTRING is read by configuration variable `azure.sql.connectionstring` in server.xml
    export AZURE_SQL_CONNECTIONSTRING="jdbc:sqlserver://$SQL_SERVER_NAME.database.windows.net:1433;databaseName=$DB_NAME;authentication=ActiveDirectoryDefault"
    mvn liberty:run
    
  2. Controleer of de toepassing werkt zoals verwacht. Er wordt een bericht weergegeven dat lijkt op [INFO] [AUDIT ] CWWKZ0001I: Application javaee-cafe started in 18.235 seconds. in de uitvoer van de opdracht. Ga naar http://localhost:9080/ in uw browser en controleer of de toepassing toegankelijk is en of alle functies werken.

  3. Druk op Ctrl+C om te stoppen. Druk op Y als u wordt gevraagd de batchtaak te beëindigen.

Wanneer u klaar bent, verwijdert u de firewallregel waarmee uw lokale IP-adres toegang heeft tot de Azure SQL Database met behulp van de volgende opdracht:

az sql server firewall-rule delete \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $SQL_SERVER_NAME \
    --name AllowLocalIP

De installatiekopieën voor AKS-implementatie bouwen

U kunt nu de az acr build opdracht uitvoeren om de installatiekopieën te bouwen, zoals wordt weergegeven in het volgende voorbeeld:

cd $BASE_DIR/java-app/target

az acr build \
    --registry ${REGISTRY_NAME} \
    --image javaee-cafe:v1 \
    .

De az acr build opdracht uploadt de artefacten die zijn opgegeven in het Dockerfile naar het Container Registry-exemplaar, bouwt de installatiekopieën en slaat deze op in de Container Registry-instantie.

De toepassing implementeren in het AKS-cluster

Gebruik de volgende stappen om de Liberty-toepassing te implementeren op het AKS-cluster:

  1. Maak verbinding met het AKS-cluster.

    Plak de waarde van cmdToConnectToCluster in een shell en voer de opdracht uit.

  2. Pas het implementatiebestand toe door de volgende opdrachten uit te voeren:

    cd $BASE_DIR/java-app/target
    
    # Apply deployment file
    kubectl apply -f openlibertyapplication-agic-passwordless-db.yaml
    
  3. Wacht totdat alle pods opnieuw zijn opgestart met behulp van de volgende opdracht:

    kubectl get pods --watch
    

    Uitvoer die vergelijkbaar is met het volgende voorbeeld geeft aan dat alle pods worden uitgevoerd:

    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
    

De toepassing testen

Wanneer de pods worden uitgevoerd, kunt u de toepassing testen met behulp van het openbare IP-adres van het Application Gateway-exemplaar.

Voer de volgende opdracht uit om het openbare IP-adres van het Application Gateway-exemplaar op te halen en weer te geven, weergegeven door de toegangsbeheerobjectresource die is gemaakt door AGIC:

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

Kopieer de URL en open deze in uw browser om de startpagina van de toepassing weer te geven. Als de webpagina niet correct wordt weergegeven of een 502 Bad Gateway fout retourneert, wordt de app nog steeds op de achtergrond gestart. Wacht enkele minuten en probeer het opnieuw.

Schermopname van de Java liberty-toepassing die is geïmplementeerd op AKS.

Resources opschonen

Om Azure-kosten te voorkomen, moet u overbodige resources opschonen. Wanneer u het cluster niet meer nodig hebt, gebruikt u de az group delete opdracht om de resourcegroep, de containerservice, het containerregister, de database en alle gerelateerde resources te verwijderen:

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

Volgende stappen

Meer informatie vindt u in de volgende verwijzingen:

Zie Wat zijn oplossingen voor het uitvoeren van de WebSphere-serie van producten in Azure voor meer informatie over het implementeren van de IBM WebSphere-serie op Azure.