Freigeben über


Manuelles Bereitstellen einer Java-Anwendung mit Open Liberty oder WebSphere Liberty in einem Azure Kubernetes Service-Cluster (AKS)

Dieser Artikel enthält schrittweise Anleitungen für die manuelle Bereitstellung von Open/WebSphere Liberty in Azure.

In diesem Artikel wird insbesondere erläutert, wie Sie die folgenden Aufgaben ausführen:

  • Führen Sie Ihre Java-, Java Enterprise Edition (EE),Jakarta EE- oder MicroProfile-Anwendung auf der Open Liberty- oder WebSphere Liberty-Laufzeit aus.
  • Erstellen Sie das Docker-Image der Anwendung mit az acr build unter Verwendung von Liberty-Container-Images.
  • Stellen Sie die containerisierte Anwendung mithilfe eines Liberty-Operators auf einem Azure Kubernetes Service (AKS)-Cluster bereit.

Ein Liberty-Operator vereinfacht die Bereitstellung und Verwaltung von Anwendungen, die auf Kubernetes-Clustern ausgeführt werden. Mit dem Open Liberty- oder WebSphere Liberty-Operator können Sie auch komplexere Vorgänge ausführen, wie z. B. das Sammeln von Ablaufverfolgungen und Sicherungskopien.

Eine automatisiertere Lösung, die Ihre Reise zu AKS mit einer Marketplace-Lösung beschleunigt, die im Azure-Portal verfügbar ist, finden Sie unter Bereitstellen einer Java-Anwendung mit Open Liberty/WebSphere Liberty auf einem Azure Kubernetes Service (AKS)-Cluster.

Weitere Informationen zu Open Liberty finden Sie auf der Open Liberty-Projektseite. Weitere Informationen zu IBM WebSphere Liberty finden Sie auf der WebSphere Liberty-Produktseite.

Dieser Artikel soll Ihnen helfen, schnell zur Bereitstellung zu gelangen. Bevor Sie in die Produktion gehen, sollten Sie Tuning Liberty erkunden.

Wenn Sie an Feedback oder daran interessiert sind, eng mit dem Entwicklungsteam, das die WebSphere-Lösungen für Azure entwickelt, an Ihren Migrationsszenarien zu arbeiten, füllen Sie diese kurze Umfrage zur WebSphere-Migration aus und geben Sie Ihre Kontaktinformationen an. Das Team aus Programmmanagern, Architekten und Technikern wird sich umgehend mit Ihnen in Verbindung setzen, um eine enge Zusammenarbeit zu initiieren.

Voraussetzungen

Anmelden bei Azure

Wenn Sie dies noch nicht getan haben, führen Sie die folgenden Schritte aus, um sich bei Ihrem Azure-Abonnement anzumelden:

  1. Öffnen Sie die Azure CLI oder PowerShell, und melden Sie sich dann mit az login. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Weitere Anmeldemöglichkeiten finden Sie unter Anmeldung bei Azure mit Azure CLI.

    Hinweis

    Wenn Sie mehrere Azure-Mandanten mit Ihren Anmeldeinformationen verknüpft haben, müssen Sie angeben, bei welchem Mandanten Sie sich anmelden möchten. Sie können einen Mandanten mit der --tenant-Option angeben, z. B. az login --tenant contoso.onmicrosoft.com.

  2. Finden Sie die installierte Version und die abhängigen Bibliotheken, die unter Verwendung von az version installiert sind.

  3. Führen Sie ein Upgrade auf die neueste Version mithilfe von az upgrade.

Hinweis

Wenn Sie die Azure CLI verwenden, führen Sie dies aus, wenn Sie aufgefordert werden, eine Azure CLI-Erweiterung zu installieren. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten von Erweiterungen mit der Azure CLI.

Sie können die meisten Azure CLI-Befehle in PowerShell wie in Bash ausführen. Es gibt nur einen Unterschied bei der Verwendung von Variablen. In den folgenden Abschnitten wird bei Bedarf in verschiedenen Registerkarten auf die Unterschiede eingegangen.

Erstellen einer Ressourcengruppe

Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Azure-Ressourcen bereitgestellt und verwaltet werden.

Erstellen Sie eine Ressourcengruppe mit dem Namen java-liberty-project, indem Sie az group create am Speicherort eastus2 verwenden. Diese Ressourcengruppe wird später zum Erstellen der Azure Container Registry-Instanz und des AKS-Clusters verwendet.

export RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --location eastus2

Erstellen einer Containerregistrierungsinstanz

Verwenden Sie az acr create, um die Containerregistrierungsinstanz zu erstellen. Im folgenden Beispiel wird eine Containerregistrierungsinstanz mit dem Namen erstellt <your-unique-ACR-name>. Ersetzen Sie diesen Platzhalter durch einen Wert, der in Azure eindeutig ist.

Hinweis

In diesem Artikel wird der empfohlene kennwortlose Authentifizierungsmechanismus für die Azure-Containerregistrierung verwendet. Es ist immer noch möglich, einen Benutzernamen und ein Passwort mit docker login zu verwenden, nachdem Sie az acr credential show verwendet haben, um den Benutzernamen und das Passwort zu erhalten. Die Verwendung eines Benutzernamens und Kennworts ist jedoch weniger sicher als die kennwortlose Authentifizierung.

export REGISTRY_NAME=<your-unique-ACR-name>
az acr create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $REGISTRY_NAME \
    --sku Basic

Nach kurzer Zeit sollte eine JSON-Ausgabe mit folgenden Zeilen angezeigt werden:

"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "java-liberty-project",

Rufen Sie den Anmeldeservernamen für die Containerregistrierungsinstanz ab. Sie benötigen diesen Wert, wenn Sie das Anwendungsimage später im AKS-Cluster bereitstellen.

export LOGIN_SERVER=$(az acr show \
    --name $REGISTRY_NAME \
    --query 'loginServer' \
    --output tsv)

Erstellen eines AKS-Clusters

Verwenden Sie az aks create, um einen AKS-Cluster zu erstellen, wie im folgenden Beispiel gezeigt. In diesem Beispiel wird ein AKS-Cluster mit dem Namen myAKSCluster und einem Knoten erstellt, und die Containerregistrierungsinstanz wird daran angefügt. Der Befehl dauert mehrere Minuten, bis er abgeschlossen ist.

export CLUSTER_NAME=myAKSCluster
az aks create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --node-count 1 \
    --node-vm-size Standard_DS2_V2 \
    --generate-ssh-keys \
    --enable-managed-identity \
    --attach-acr $REGISTRY_NAME

Nach Abschluss des Befehls werden JSON-formatierte Informationen zum Cluster zurückgegeben, einschließlich der folgenden Ausgabe:

"nodeResourceGroup": "MC_java-liberty-project_myAKSCluster_eastus2",
"privateFqdn": null,
"provisioningState": "Succeeded",
"resourceGroup": "java-liberty-project",

Herstellen einer Verbindung mit dem AKS-Cluster

Führen Sie die folgenden Schritte aus, um Ihren Kubernetes-Cluster zu verwalten:

  1. Installieren Sie den Kubernetes-Befehlszeilenclient kubectl mit az aks install-cli mithilfe des folgenden Beispiels:

    az aks install-cli
    
  2. Verwenden Sie az aks get-credentials, um kubectl mit Ihrem Kubernetes-Cluster zu verbinden. Mit diesem Befehl werden Anmeldeinformationen heruntergeladen und die Kubernetes CLI so konfiguriert, dass sie verwendet werden, wie im folgenden Beispiel gezeigt:

    Hinweis

    Der Befehl verwendet den Standardspeicherort für die Kubernetes-Konfigurationsdatei( ~/.kube/config). Sie können einen anderen Speicherort für Ihre Kubernetes-Konfigurationsdatei mithilfe von --file.

    az aks get-credentials \
        --resource-group $RESOURCE_GROUP_NAME \
        --name $CLUSTER_NAME \
        --overwrite-existing \
        --admin
    
  3. Überprüfen Sie die Verbindung zu Ihrem Cluster, indem Sie kubectl get verwenden, um eine Liste der Clusterknoten auszugeben, wie im folgenden Beispiel gezeigt.

    kubectl get nodes
    

    In der folgenden Beispielausgabe wird der Knoten gezeigt, der in den vorherigen Schritten erstellt wurde. Stellen Sie sicher, dass der Status des Knotens lautet Ready:

    NAME                                STATUS   ROLES   AGE     VERSION
    aks-nodepool1-xxxxxxxx-yyyyyyyyyy   Ready    <none>  76s     v1.29.9
    

Erstellen einer Azure-SQL-Datenbank

Erstellen Sie eine einzelne Azure SQL-Datenbank für Ihre App mithilfe der folgenden Schritte:

  1. Verwenden Sie die folgenden Befehle, um datenbankbezogene Umgebungsvariablen festzulegen. Ersetzen Sie sie <your-unique-sql-server-name> durch einen eindeutigen Namen für Ihren Azure SQL-Datenbank-Server.

    export SQL_SERVER_NAME=<your-unique-sql-server-name>
    export DB_NAME=demodb
    
  2. Verwenden Sie die folgenden Befehle, um eine einzelne Datenbank zu erstellen und den aktuellen angemeldeten Benutzer als Microsoft Entra-Administrator festzulegen. Weitere Informationen finden Sie in der Schnellstartanleitung: Erstellen einer einzelnen Datenbank – Azure SQL-Datenbank.

    export ENTRA_ADMIN_NAME=$(az account show \
        --query user.name \
        --output tsv)
    
    az sql server create \
        --resource-group $RESOURCE_GROUP_NAME \
        --name $SQL_SERVER_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 \
        --name $DB_NAME \
        --server $SQL_SERVER_NAME \
        --edition GeneralPurpose \
        --compute-model Serverless \
        --family Gen5 \
        --capacity 2
    

Hinweis

Sie erstellen einen Azure SQL-Server mit deaktivierter SQL-Authentifizierung für Sicherheitsaspekte. Nur Microsoft Entra-ID wird verwendet, um sich beim Server zu authentifizieren. Weitere Informationen zum Aktivieren der SQL-Authentifizierung finden Sie unter az sql server create.

Erstellen einer Dienstverbindung in AKS mit Service Connector

Verwenden Sie die folgenden Befehle, um eine Verbindung zwischen dem AKS-Cluster und der SQL-Datenbank mithilfe der Microsoft Entra Workload ID mit Service Connector zu erstellen. Weitere Informationen finden Sie unter Erstellen einer Dienstverbindung in AKS mit Service Connector.

# 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

Problembehandlung bei Fehlermeldungen

Wenn der az aks connection create sql Befehl eine Fehlermeldung erzeugt, suchen Sie die Fehlermeldung in der folgenden Liste, und verwenden Sie dann die Anweisungen, um das Problem zu beheben:

  • Dependency pyodbc can't be installed, please install it manually

    Diese Fehlermeldung gibt an, dass das pyodbc Paket aufgrund von Berechtigungsproblemen nicht installiert werden kann. Beheben Sie das Problem mithilfe der folgenden Schritte:

    1. Suchen Sie den Speicherort von Python, der mit der Azure CLI funktioniert, indem Sie den folgenden Befehl ausführen:

      az --version
      

      Die Ausgabe sollte Python location enthalten, z.B. Python location '/opt/az/bin/python3'.

    2. Kopieren Sie den Python location-Wert.

    3. Verwenden Sie den folgenden Befehl, um das pyodbc Paket im sudo Modus zu installieren. Ersetzen Sie <python-location> durch den Python-Speicherort, den Sie im vorherigen Schritt kopiert haben.

      sudo <python-location> -m pip install pyodbc
      
  • libodbc.so: Shared-Object-Datei kann nicht geöffnet werden: Keine solche Datei oder Verzeichnis

  • Installieren Sie odbc 17/18 für SQL Server manuell.

    Diese Fehler deuten darauf hin, dass der odbc Treiber nicht installiert ist. Beheben Sie das Problem mithilfe der folgenden Schritte:

    Hinweis

    Sie sollten die Microsoft Entra Workload-ID verwenden, um sicheren Zugriff auf Ihre Azure SQL-Datenbank ohne SQL-Authentifizierung zu erhalten. Wenn Sie die SQL-Authentifizierung verwenden müssen, ignorieren Sie die Schritte in diesem Abschnitt, und verwenden Sie den Benutzernamen und das Kennwort, um eine Verbindung mit der Azure SQL-Datenbank herzustellen.

    1. Wenn Sie Linux verwenden, öffnen Sie den Microsoft ODBC-Treiber für SQL Server (Linux) installieren. Wenn Sie MacOS verwenden, öffnen Sie " Installieren des Microsoft ODBC-Treibers für SQL Server (macOS)".

    2. Befolgen Sie die Anweisungen zum Installieren des Microsoft ODBC-Treibers (18 oder 17) für SQL Server.

    3. Verwenden Sie erneut az aks connection create sql, um die Dienstverbindung zu erstellen, wie im folgenden Beispiel gezeigt:

      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
      

Abrufen des von Dienstconnector erstellten Dienstkontos und geheimen Schlüssels

Führen Sie die folgenden Schritte aus, um sich mit Azure SQL-Datenbank zu authentifizieren:

  1. Rufen Sie das dienstkonto und den geheimen Schlüssel ab, der von Service Connector erstellt wurde, indem Sie die Anweisungen im Abschnitt " Aktualisieren Ihres Containers " des Lernprogramms befolgen: Verbinden einer AKS-App mit azure SQL-Datenbank. Verwenden Sie die Option, um eine Bereitstellung direkt mithilfe des bereitgestellten YAML-Beispielcodeausschnitts zu erstellen.

    Hinweis

    Der geheime Schlüssel, der von Service Connector erstellt wurde, enthält einen AZURE_SQL_CONNECTIONSTRING Wert, bei dem es sich um eine kennwortfreie Verbindungszeichenfolge mit der Azure SQL-Datenbank handelt. Weitere Informationen finden Sie im Beispielwert aus dem Abschnitt " Vom Benutzer zugewiesene verwaltete Identität " der Integration von Azure SQL-Datenbank in Service Connector.

  2. Kopieren Sie aus den hervorgehobenen Abschnitten in der Kubernetes-Bereitstellungs-YAML die Werte serviceAccountName und secretRef.name, wie im folgenden Beispiel dargestellt:

    serviceAccountName: <service-account-name>
    containers:
    - name: raw-linux
       envFrom:
          - secretRef:
             name: <secret-name>
    
  3. Definieren Sie Umgebungsvariablen mithilfe der folgenden Befehle. Achten Sie darauf, die Werte mit <service-account-name> und <secret-name> zu ersetzen, die Sie im vorherigen Schritt kopiert haben.

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

    Diese Werte werden im nächsten Abschnitt verwendet, um die Liberty-Anwendung im AKS-Cluster bereitzustellen.

Installieren des Open Liberty-Operators

In diesem Abschnitt installieren Sie den Open Liberty Operator auf dem AKS-Cluster, um die Liberty-Anwendung zu hosten.

Installieren Sie den Open Liberty-Operator mithilfe der folgenden Befehle:

Hinweis

In diesem Leitfaden werden Sie aufgefordert, den Open Liberty Operator zu installieren. Informationen zur Verwendung des WebSphere Liberty Operators finden Sie unter Installing WebSphere Liberty operator with the Kubernetes CLI.

# Install cert-manager Operator
export CERT_MANAGER_VERSION=v1.11.2
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.yaml

# Install the Open Liberty Operator
export OPERATOR_VERSION=1.4.2
mkdir -p overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/olo-all-namespaces.yaml -q -P ./overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/cluster-roles.yaml -q -P ./overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/kustomization.yaml -q -P ./overlays/watch-all-namespaces
mkdir base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/kustomization.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-crd.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-operator.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-roles.yaml -q -P ./base
kubectl create namespace open-liberty
kubectl apply --server-side -k overlays/watch-all-namespaces

# Remove the downloaded files
rm -rf overlays base

Konfigurieren und Erstellen des Anwendungsimages

Um Ihre Liberty-Anwendung im AKS-Cluster bereitzustellen und auszuführen, containern Sie Ihre Anwendung als Docker-Image mit Open Liberty Images oder WebSphere Liberty-Containerimages.

Führen Sie die Schritte in diesem Abschnitt aus, um die Beispielanwendung in der Liberty-Laufzeit zu implementieren. In diesen Schritten wird Maven verwendet.

Auschecken der Anwendung

Klonen Sie den Beispielcode für diese Anleitung mithilfe der folgenden Befehle. Das Beispiel befindet sich im Open Liberty/WebSphere Liberty auf Azure Kubernetes Service Samples GitHub-Repository, das einige Beispiele enthält. In diesem Artikel wird das java-app Beispiel verwendet.

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

Wenn eine Meldung darüber angezeigt wird, dass der Zustand detached HEAD lautet, kann diese Nachricht problemlos ignoriert werden. Sie bedeutet nur, dass Sie ein Tag ausgecheckt haben. Durch das Klonen des Repositorys wird die folgende Dateistruktur erstellt:

java-app
├─ src/main/
│  ├─ aks/
│  │  ├─ openlibertyapplication-passwordless-db.yaml
│  ├─ docker/
│  │  ├─ Dockerfile
│  │  ├─ Dockerfile-wlp
│  ├─ liberty/config/
│  │  ├─ server.xml
│  ├─ java/
│  ├─ resources/
│  ├─ webapp/
├─ pom.xml
├─ pom-azure-identity.xml

Die Verzeichnisse java, resources und webapp enthalten den Quellcode der Beispielanwendung. Der Code deklariert und verwendet eine Datenquelle mit dem Namen jdbc/JavaEECafeDB.

Im aks-Verzeichnis wird die Datei openlibertyapplication-passwordless-db.yaml verwendet, um das Anwendungsimage bereitzustellen. Im Docker-Verzeichnis gibt es zwei Dateien, um das Anwendungsimage entweder mit Open Liberty oder WebSphere Liberty zu erstellen.

Im Verzeichnis "liberty/config " wird die server.xml Datei verwendet, um die Datenbankverbindung für den Open Liberty- und WebSphere Liberty-Cluster zu konfigurieren. Sie definiert eine Variable, die zum Herstellen einer azure.sql.connectionstring Verbindung mit der Azure SQL-Datenbank verwendet wird.

Die datei pom.xml ist die Datei maven project object model (POM), die die Konfigurationsinformationen für das Projekt enthält. Die dateipom-azure-identity.xml deklariert die azure-identity Abhängigkeit, die zum Authentifizieren bei Azure-Diensten mithilfe der Microsoft Entra-ID verwendet wird.

Hinweis

In diesem Beispiel wird die azure-identity-Bibliothek verwendet, um die Azure SQL-Datenbank mittels Microsoft Entra-Authentifizierung zu verifizieren, was aus Sicherheitsgründen empfohlen wird. Weitere Informationen zur Verwendung der SQL-Authentifizierung in Ihrer Liberty-Anwendung finden Sie unter Relationale Datenbankverbindungen mit Java Database Connectivity (JDBC).

Erstellen des Projekts

Nachdem Sie nun die erforderlichen Eigenschaften gesammelt haben, erstellen Sie die Anwendung mithilfe der folgenden Befehle. Die POM-Datei für das Projekt liest viele Variablen aus der Umgebung. Im Rahmen des Maven-Builds werden diese Variablen verwendet, um Werte in den YAML-Dateien in src/main/aks aufzufüllen. Sie können etwas Ähnliches für Ihre Anwendung außerhalb von Maven tun, wenn Sie möchten.

cd $BASE_DIR/java-app

# The following variables are used for deployment file generation into target/
export LOGIN_SERVER=${LOGIN_SERVER}
export SC_SERVICE_ACCOUNT_NAME=${SERVICE_ACCOUNT_NAME}
export SC_SECRET_NAME=${SECRET_NAME}

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

Erstellen des Images für die AKS-Bereitstellung

Verwenden Sie az acr build, um das Bild zu erstellen, wie im folgenden Beispiel gezeigt:

cd $BASE_DIR/java-app/target

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

Mit az acr build dem Befehl werden die in der Dockerfile-Datei angegebenen Artefakte in die Containerregistrierungsinstanz hochgeladen, das Image erstellt und in der Containerregistrierungsinstanz gespeichert.

Stellen Sie die Anwendung im AKS-Cluster bereit.

Verwenden Sie die folgenden Schritte, um die Liberty-Anwendung im AKS-Cluster bereitzustellen:

  1. Wenden Sie die Bereitstellungsdatei mithilfe der folgenden Befehle an:

    cd $BASE_DIR/java-app/target
    
    # Apply deployment file
    kubectl apply -f openlibertyapplication-passwordless-db.yaml
    
  2. Ermitteln Sie, ob die OpenLibertyApplication Instanz mithilfe des folgenden Befehls erstellt wird:

    kubectl get openlibertyapplication javaee-cafe-cluster --watch
    

    Die folgende Ausgabe ist typisch. Verwenden Sie STRG+C, um zu beenden.

    NAME                  IMAGE                                        EXPOSED   RECONCILED   RESOURCESREADY   READY   WARNING   AGE
    javaee-cafe-cluster   <registry-name>.azurecr.io/javaee-cafe:v1              True         True             True              57s
    
  3. Ermitteln Sie, ob die vom Operator erstellte Bereitstellung mit dem folgenden Befehl bereit ist:

    kubectl get deployment javaee-cafe-cluster --watch
    

    Das folgende Ergebnis ist typisch:

    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    javaee-cafe-cluster         0/3     3            0           20s
    
  4. Warten Sie, bis Ihnen 3/3 unter der Spalte READY und 3 unter der Spalte AVAILABLE angezeigt werden, verwenden Sie dann Strg+C, um den Überwachungsprozess kubectl zu beenden.

Testen der Anwendung

Wenn die Anwendung ausgeführt wird, macht ein Kubernetes-Lastenausgleichsdienst das Anwendungs-Front-End im Internet verfügbar. Dieser Vorgang kann einige Zeit in Anspruch nehmen.

Verwenden Sie kubectl get service, um die externe IP-Adresse des Dienstes abzurufen, wenn er verfügbar ist, wie im folgenden Beispiel gezeigt:

export APP_URL=http://$(kubectl get service javaee-cafe-cluster -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo $APP_URL

Hinweis

Wenn keine gültige URL aus der Ausgabe angezeigt wird, warten Sie eine Weile, und führen Sie den Befehl erneut aus.

Öffnen Sie die URL in einem Webbrowser, und überprüfen Sie die Startseite der Anwendung. Wenn die Seite nicht ordnungsgemäß geladen wird, aktualisieren Sie die Seite später, nachdem die App gestartet wurde. Der Podname Ihrer Anwendungsreplikate sollte oben links auf der Seite angezeigt werden. Warten Sie ein paar Minuten, und aktualisieren Sie die Seite. Es wird aufgrund des vom AKS-Cluster bereitgestellten Lastenausgleichs ein anderer Podname angezeigt.

Screenshot der Startseite der Java-Freiheitsanwendung.

Hinweis

Derzeit verwendet die Anwendung kein HTTPS. Es wird empfohlen, Transport Layer Security (TLS) mit Ihren eigenen Zertifikaten zu aktivieren. Weitere Informationen finden Sie unter Verwenden von TLS mit einem Eingangs-Controller in Azure Kubernetes Service (AKS).

Bereinigen von Ressourcen

Zum Vermeiden von Azure-Gebühren sollten Sie nicht benötigte Ressourcen bereinigen. Wenn der Cluster nicht mehr benötigt wird, verwenden Sie az group delete zum Entfernen der Ressourcengruppe, des Containerdienstes, der Containerregistrierung, der Datenbank und aller zugehörigen Ressourcen.

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

Nächste Schritte

Weitere Informationen finden Sie in den folgenden Verweisen, die in diesem Handbuch verwendet werden:

Informationen zum Integrieren von Azure Cache für Redis in eine Java-App finden Sie in der Schnellstartanleitung: Verwenden von Azure Cache für Redis in Java mit Redisson Redis-Client.

Informationen zu Optionen zum Ausführen von WebSphere-Produkten auf Azure finden Sie unter Welche Lösungen gibt es zum Ausführen der WebSphere-Produktfamilie auf Azure?