Bereitstellen einer Java-Anwendung mit WebLogic Server in einem Azure Kubernetes Service-Cluster (AKS)

Dieser Artikel demonstriert Folgendes:

  • Führen Sie Ihre Java-Anwendung unter Oracle WebLogic Server (WLS) aus.
  • Richten Sie ein WebLogic Server-Cluster auf AKS mithilfe eines Azure Marketplace-Angebots.
  • Erstellen Sie ein Docker-Image der Anwendung, das WebLogic Deploy Tooling (WDT)-Modelle enthält.
  • Stellen Sie die containerisierte Anwendung im WebLogic Server-Cluster in AKS mit einer Verbindung mit Microsoft Azure SQL bereit.

In diesem Artikel wird das Azure Marketplace-Angebot für WebLogic Server verwendet, um Ihre Journey zu AKS zu beschleunigen. Das Angebot stellt automatisch mehrere Azure-Ressourcen bereit, u. a. folgende:

  • Eine Azure Container Registry-Instanz
  • Ein AKS-Cluster
  • Eine Instanz des Azure App Gateway-Eingangsdatencontrollers (App Gateway Ingress Controller, AGIC)
  • Der WebLogic Kubernetes-Operator
  • Ein Containerimage, einschließlich der WebLogic-Runtime
  • Ein WebLogic Server-Cluster ohne Anwendung

Anschließend wird in diesem Artikel die Erstellung eines Images zur Aktualisierung des WebLogic Server-Clusters vorgestellt. Das Image stellt die Anwendungs- und WDT-Modelle bereit.

Wenn Sie einen weniger automatisierten Ansatz für die Bereitstellung von WebLogic auf AKS bevorzugen, lesen Sie die Schritt-für-Schritt-Anleitung in der offiziellen Dokumentation von Oracle für Azure Kubernetes Service.

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

Voraussetzungen

  • Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.
  • Stellen Sie sicher, dass die Azure-Identität, die Sie zum Anmelden und Durcharbeiten dieses Artikels verwenden, im aktuellen Abonnement entweder über die Rolle Besitzer oder über die Rollen Mitwirkender und Benutzerzugriffsadministrator verfügt. Eine Übersicht über Azure-Rollen finden Sie unter Was ist die rollenbasierte Zugriffssteuerung in Azure (Azure Role-Based Access Control, Azure RBAC)? Ausführliche Informationen zu den spezifischen Rollen, die für WLS in AKS erforderlich sind, finden Sie unter Integrierte Azure-Rollen.
  • Sie benötigen Anmeldeinformationen für ein Oracle-Konto mit einmaligem Anmelden (Single Sign-On, SSO). Informationen zum Erstellen eines Kontos finden Sie unter Oracle Account erstellen.
  • Akzeptieren Sie die Lizenzbedingungen für WebLogic Server.
    • Besuchen Sie die Oracle Container Registry, und melden Sie sich an.
    • Wenn Sie über eine Supportberechtigung verfügen, wählen Sie Middleware aus, suchen Sie weblogic_cpu, und wählen Sie den Eintrag aus.
    • Wenn Sie keine Supportberechtigung von Oracle besitzen, wählen Sie Middleware aus, suchen Sie weblogic, und wählen Sie den Eintrag aus.
    • Akzeptieren Sie den Lizenzvertrag.

    Hinweis

    Erwerben Sie eine Supportberechtigung von Oracle, bevor Sie in die Produktionsumgebung wechseln. Andernfalls, sind Ihre ausgeführten Images nicht sicher und erhalten keine Patches zur Beseitigung kritischer Sicherheitsfehler. Weitere Informationen zu wichtigen Patchupdates von Oracle finden Sie unter Critical Patch Updates, Security Alerts and Bulletins (Kritische Patchupdates, Sicherheitswarnungen und Bulletins) bei Oracle.

  • Bereiten Sie einen lokalen Computer mit installiertem UNIX-ähnlichem Betriebssystem vor, z. B. Ubuntu, Azure Linux, macOS, Windows-Subsystem für Linux.
    • Azure-Befehlszeilenschnittstelle. Testen Sie mithilfe von az --version, ob az funktioniert. Dieses Dokument wurde mit Version 2.55.1 getestet.
    • kubectl. Testen Sie mithilfe von kubectl version, ob kubectl funktioniert. Dieses Dokument wurde mit Version v1.21.2 getestet.
    • Ein Java Development Kit (JDK). Der Artikel hilft Ihnen, den Microsoft-Build von OpenJDK 11 zu installieren. Stellen Sie sicher, dass die Umgebungsvariable JAVA_HOME in den Shells korrekt festgelegt ist, in denen Sie die Befehle ausführen.
    • Maven 3.5.0 oder höher
    • Stellen Sie sicher, dass das Zip-/Unzip-Hilfsprogramm installiert ist. Testen Sie mithilfe von zip/unzip -v, ob zip/unzip funktioniert.

Erstellen einer Azure-SQL-Datenbank

In diesem Abschnitt wird eine Azure SQL-Datenbank mit Microsoft Entra-Authentifizierung erstellt, wobei die Verbindung für verwaltete Identitäten aktiviert ist.

Erstellen einer Ressourcengruppe

Erstellen Sie mit az group create eine Ressourcengruppe. Da Ressourcengruppen innerhalb eines Abonnements eindeutig sein müssen, wählen Sie einen eindeutigen Namen aus. Eine einfache Möglichkeit, eindeutige Namen zu haben, besteht darin, eine Kombination aus Ihren Initialen, dem heutigen Datum und einer Kennung zu verwenden. Beispiel: abc1228rg. In diesem Beispiel wird eine Ressourcengruppe mit dem Namen abc1228rg am Standort eastus erstellt:

export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
    --name ${RESOURCE_GROUP_NAME} \
    --location eastus

Erstellen eines Datenbankservers und einer Datenbank

Erstellen Sie einen Server mit dem Befehl az sql server create. In diesem Beispiel wird ein Server mit dem Namen myazuresql20130213 mit dem Administratorbenutzer azureuser und einem Administratorkennwort erstellt. Ersetzen Sie <your-password> durch Ihr Kennwort. Weitere Informationen finden Sie unter Quickstart: Erstellen einer Einzeldatenbank – Azure SQL-Datenbank.

Hinweis

Zwar verwenden Sie hier einen Benutzernamen und ein Kennwort, diese Anmeldeinformationen werden jedoch nicht außerhalb der Datenbank verfügbar gemacht. Die Verbindung zwischen der Anwendungsschicht und der Datenbank wird durch verwaltete Identitäten gesichert.

export AZURESQL_SERVER_NAME="myazuresql20130213"
export AZURESQL_ADMIN_USER="azureuser"
export AZURESQL_ADMIN_PASSWORD="<your-password>"
export DATABASE_NAME="mysingledatabase20230213"
az sql server create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $AZURESQL_SERVER_NAME \
    --location westus \
    --admin-user $AZURESQL_ADMIN_USER \
    --admin-password $AZURESQL_ADMIN_PASSWORD

Erstellen Sie mit dem Befehl az sql db create eine Datenbank auf der serverlosen Computeebene.

az sql db create \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $AZURESQL_SERVER_NAME \
    --name $DATABASE_NAME \
    --sample-name AdventureWorksLT \
    --edition GeneralPurpose \
    --compute-model Serverless \
    --family Gen5 \
    --capacity 2

Konfigurieren eines Microsoft Entra-Administrators

Informationen dazu, wie Azure SQL Server mit verwalteten Identitäten interagiert, finden Sie unter Herstellen einer Verbindung mit der Microsoft Entra-Authentifizierung.

Führen Sie die folgenden Schritte aus, um ein Microsoft Entra-Administratorkonto für den Azure SQL-Server über das Azure-Portal zu konfigurieren:

  1. Öffnen Sie im Azure-Portal die Azure SQL-Serverinstanz myazuresql20130213.
  2. Wählen Sie Einstellungen und dann Microsoft Entra ID aus. Wählen Sie auf der Seite Microsoft Entra ID die Option Administrator festlegen aus.
  3. Suchen Sie auf der Seite Administrator hinzufügen nach einem Benutzer, wählen Sie den Benutzer oder die Gruppe aus, den bzw. die Sie als Administrator festlegen möchten, und wählen Sie dann Auswählen aus.
  4. Wählen Sie oben auf der Seite Microsoft Entra ID die Option Speichern aus. Für Microsoft Entra-Benutzer und -Gruppen wird die Objekt-ID neben dem Administratornamen angezeigt.
  5. Der Vorgang zum Ändern des Administrators kann einige Minuten in Anspruch nehmen. Anschließend wird der neue Administrator im Feld Microsoft Entra ID angezeigt.

Erstellen einer benutzerseitig zugewiesenen verwalteten Identität

Erstellen Sie als Nächstes in Azure CLI eine Identität in Ihrem Abonnement, indem Sie den Befehl az identity create verwenden. Sie verwenden diese verwaltete Identität, um eine Verbindung mit Ihrer Datenbank herzustellen.

az identity create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myManagedIdentity

Erstellen eines Datenbankbenutzers für Ihre verwaltete Identität

Stellen Sie nun eine Verbindung als Microsoft Entra-Administratorbenutzer mit Ihrer Azure SQL-Datenbank aus dem Azure-Portal her, und erstellen Sie einen Benutzer für Ihre verwaltete Identität.

Erstellen Sie zunächst eine Firewallregel für den Zugriff auf den Azure SQL-Server über das Portal, wie in den folgenden Schritten gezeigt:

  1. Öffnen Sie im Azure-Portal die Azure SQL-Serverinstanz myazuresql20130213.
  2. Wählen Sie Sicherheit und dann Netzwerk aus.
  3. Wählen Sie unter Firewallregeln die Option Ihre Client-IPv4-Adresse hinzufügen aus.
  4. Aktivieren Sie unter Ausnahmen das Kontrollkästchen Azure-Diensten und -Ressourcen den Zugriff auf diesen Server gestatten.
  5. Wählen Sie Speichern.

Nachdem die Firewallregel erstellt wurde, können Sie über das Portal auf den Azure SQL-Server zugreifen. Verwenden Sie die folgenden Schritte, um einen Datenbankbenutzer zu erstellen:

  1. Wählen Sie Einstellungen und dann SQL-Datenbanken aus. Wählen Sie mysingledatabase20230213 aus.

  2. Wählen Sie Abfrage-Editor aus. Suchen Sie auf der Seite Willkommen beim Abfrage-Editor für SQL-Datenbank unter Active Directory-Authentifizierung eine Meldung wie Logged in as user@contoso.com.

  3. Wählen Sie Fortfahren alsuser@contoso.com aus, wobei user Ihr AD-Administratorkontoname ist.

  4. Führen Sie nach der Anmeldung beim Query 1-Editor die folgenden Befehle aus, um einen Datenbankbenutzer für die verwaltet Identität myManagedIdentity auszuführen.

    CREATE USER "myManagedIdentity" FROM EXTERNAL PROVIDER
    ALTER ROLE db_datareader ADD MEMBER "myManagedIdentity";
    ALTER ROLE db_datawriter ADD MEMBER "myManagedIdentity";
    ALTER ROLE db_ddladmin ADD MEMBER "myManagedIdentity";
    GO
    
  5. Wählen Sie im Query 1-Editor die Option Ausführen aus, um die SQL-Befehle auszuführen.

  6. Wenn die Befehle erfolgreich abgeschlossen wurden, finden Sie eine Meldung, die Query succeeded: Affected rows: 0 lautet.

Verwenden Sie den folgenden Befehl, um die Verbindungszeichenfolge abzurufen, die Sie im nächsten Abschnitt verwenden:

export CONNECTION_STRING="jdbc:sqlserver://${AZURESQL_SERVER_NAME}.database.windows.net:1433;database=${DATABASE_NAME};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
echo ${CONNECTION_STRING}

Erstellen eines Schemas für die Beispielanwendung

Wählen Sie Neue Abfrage aus, und führen Sie dann im Abfrage-Editor die folgende Abfrage aus:

CREATE TABLE COFFEE (ID NUMERIC(19) NOT NULL, NAME VARCHAR(255) NULL, PRICE FLOAT(32) NULL, PRIMARY KEY (ID));
CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT NUMERIC(28) NULL, PRIMARY KEY (SEQ_NAME));
INSERT INTO SEQUENCE VALUES ('SEQ_GEN',0);

Nach einer erfolgreichen Ausführung sollte die Meldung Die Abfrage war erfolgreich: Betroffene Zeilen: 1 angezeigt werden. Wenn diese Meldung nicht angezeigt wird, beheben Sie das Problem, bevor Sie fortfahren.

Sie können mit der Bereitstellung des Angebots für WLS in AKS fortfahren.

Bereitstellen von WebLogic Server in AKS

Führen Sie die folgenden Schritte aus, um das Angebot für WebLogic Server in AKS zu finden und den Bereich Grundlagen auszufüllen:

  1. Geben Sie in der Suchleiste oben im Azure-Portal weblogic ein. Wählen Sie in den automatisch vorgeschlagenen Suchergebnissen im Abschnitt Marketplace die Option WebLogic Server in AKS aus.

    Screenshot: Azure-Portal, das WebLogic Server in den Suchergebnissen anzeigt

    Sie können auch direkt zum Angebot für WebLogic Server in AKS navigieren.

  2. Wählen Sie auf der Angebotsseite Erstellen aus.

  3. Stellen Sie im Bereich Grundlagen sicher, dass im Feld für Abonnement derselbe Wert angezeigt wird, mit dem Sie sich bei Azure angemeldet haben. Stellen Sie sicher, dass Sie über eine der Rollen verfügen, die im Abschnitt „Voraussetzungen“ für das Abonnement aufgeführt sind.

    Screenshot des Azure-Portals, das WebLogic Server auf AKS zeigt.

  4. Sie müssen das Angebot in einer leeren Ressourcengruppe bereitstellen. Wählen Sie im Feld Ressourcengruppe die Option Neu erstellen aus, und geben Sie einen Wert für die Ressourcengruppe ein. Da Ressourcengruppen innerhalb eines Abonnements eindeutig sein müssen, wählen Sie einen eindeutigen Namen aus. Eine einfache Möglichkeit, eindeutige Namen zu erhalten, besteht darin, eine Kombination aus Ihren Initialen, dem heutigen Datum und einem Bezeichner zu verwenden, z. B. ejb0723wls.

  5. Wählen Sie unter Instanzdetails die Region für die Bereitstellung aus. Eine Liste der Azure-Regionen, in denen AKS verfügbar ist, finden Sie unter Verfügbarkeit der AKS-Regionen.

  6. Behalten Sie unter Anmeldeinformationen für WebLogic für Benutzername für WebLogic Administrator den Standardwert bei.

  7. Geben Sie wlsAksCluster2022 als Kennwort für WebLogic-Administrator ein. Verwenden Sie denselben Wert für das Feld „Bestätigung“ und das Feld Kennwort für WebLogic Model-Verschlüsselung.

  8. Wählen Sie Weiter aus.

Führen Sie die folgenden Schritte aus, um den Bereitstellungsprozess zu starten:

  1. Scrollen Sie zum Abschnitt Oracle Single Sign-On-Konto (SSO) bereitstellen. Geben Sie Ihre Oracle-SSO-Anmeldeinformationen ein, die unter „Voraussetzungen“ beschrieben sind.

    Screenshot des Azure-Portals, das den konfigurierten SSO-Bereich zeigt.

  2. Notieren Sie sich die Schritte im Infofeld. Beginnen Sie mit Bevor Sie fortfahren, müssen Sie die Bedingungen und Einschränkungen für Oracle Standard akzeptieren..

  3. Wählen Sie je nachdem, ob das Oracle SSO-Konto über eine Oracle-Supportberechtigung verfügt, die entsprechende Option für Wählen Sie den Typ von WebLogic Server-Images aus.. Wenn das Konto über eine Supportberechtigung verfügt, wählen Sie Gepatchte WebLogic Server-Images aus. Wählen Sie andernfalls Allgemeine WebLogic Server-Images aus.

  4. Übernehmen Sie für Wählen Sie die gewünschte Kombination aus WebLogic Server... den Standardwert. Sie haben zahlreiche Auswahlmöglichkeiten für WebLogic Server, JDK und Betriebssystemversionen.

  5. Wählen Sie im Abschnitt Anwendung neben Eine Anwendung bereitstellen? die Option Nein aus.

In den folgenden Schritten werden die WebLogic Server-Administratorkonsole und die Beispiel-App mit einem integrierten Application Gateway-Add-On für eingehenden Datenverkehr im öffentlichen Internet verfügbar gemacht. Weitere Informationen finden Sie unter Was ist der Application Gateway-Eingangscontroller?.

  1. Wählen Sie Weiter aus, um den Bereich TLS/SSL anzuzeigen.

  2. Wählen Sie Weiter aus, um den Bereich Lastenausgleich anzuzeigen.

  3. Wählen Sie neben Optionen für den Lastenausgleich die Option Application Gateway-Eingangsdatencontroller aus.

    Screenshot des Azure-Portals, der die einfachste mögliche Lastenausgleichskonfiguration auf der Seite Oracle WebLogic Server auf Azure Kubernetes Service erstellen zeigt.

  4. Unter dem Application Gateway-Eingangsdatencontroller sollten bereits alle Felder mit den Standardwerten für Virtuelles Netzwerk und Subnetz ausgefüllt sein. Lassen Sie die Standardwerte unverändert.

  5. Wählen Sie für Eingangsdaten für Verwaltungskonsole erstellen die Option Ja aus.

    Screenshot des Azure-Portals, das die Konfiguration des Application Gateway-Eingangscontroller auf der Seite „Oracle WebLogic Server auf Azure Kubernetes Service erstellen“ zeigt.

  6. Wählen Sie Weiter aus, um den Bereich DNS anzuzeigen.

  7. Wählen Sie Weiter aus, um den Bereich Datenbank anzuzeigen.

Führen Sie die folgenden Schritte aus, um eine Datenbankverbindung mithilfe einer verwalteten Identität zu konfigurieren:

  1. Wählen Sie unter Mit Datenbank verbinden? die Option Ja aus.
  2. Öffnen Sie unter Verbindungseinstellungen für Datenbanktyp auswählen das Dropdownmenü, und wählen Sie dann Microsoft SQL Server (mit Unterstützung für die kennwortlose Verbindung) aus.
  3. Geben Sie für JNDI-Name den Namen jdbc/WebLogicCafeDB ein.
  4. Geben Sie für DataSource-Verbindungszeichenfolge die Verbindungszeichenfolge ein, die Sie im letzten Abschnitt erhalten haben.
  5. Wählen Sie Kennwortlose Datenquellenverbindung verwenden aus.
  6. Wählen Sie für Vom Benutzer zugewiesene verwaltete Identität die verwaltete Identität aus, die Sie im vorherigen Schritt erstellt haben. In diesem Beispiel lautet ihr Name myManagedIdentity.
  7. Wählen Sie Hinzufügen.

Der Abschnitt Verbindungseinstellungen sollte wie der folgende Screenshot aussehen:

Screenshot des Azure-Portals, auf dem die Registerkarte „Datenbank“ der Seite „Oracle WebLogic Server in Azure Kubernetes Service erstellen“ dargestellt wird.

Führen Sie die folgenden Schritte aus, um die Bereitstellung abzuschließen:

  1. Klicken Sie auf Überprüfen + erstellen. Vergewissern Sie sich, dass die Überprüfung erfolgreich ist. Falls nicht, beheben Sie etwaige Probleme bei der Überprüfung, und wählen Sie dann erneut Überprüfen und erstellen aus.
  2. Klicken Sie auf Erstellen.
  3. Verfolgen Sie den Status der Bereitstellung auf der Seite Bereitstellung wird durchgeführt.

Abhängig von den Netzwerkbedingungen und anderen Aktivitäten in der ausgewählten Region kann die Bereitstellung bis zu 50 Minuten dauern.

Hinweis

Wenn Ihre Organisation erfordert, dass Sie die Workload in einem virtuellen Unternehmensnetzwerk bereitstellen, in dem öffentliche IP-Adressen nicht zulässig sind, können Sie den internen Lastenausgleichsdienst auswählen. Führen Sie zum Konfigurieren des internen Lastenausgleichsdiensts die folgenden Schritte auf der Registerkarte Lastenausgleich aus:

  1. Wählen Sie für Lastenausgleichsoptionen den Dienst Load Balancer Standard aus.

  2. Wählen Sie Internen Lastenausgleich verwenden aus.

  3. Fügen Sie die folgenden Zeilen zu der Tabelle hinzu:

    Dienstnamenspräfix Ziel Port
    wls-admin-internal admin-server 7001
    wls-cluster-internal cluster-1 8001

Die Registerkarte Lastenausgleich sollte wie im folgenden Screenshot aussehen:

Screenshot des Azure-Portals, auf dem die Registerkarte „Lastenausgleich“ der Seite „Oracle WebLogic Server in Azure Kubernetes Service erstellen“ dargestellt wird.

Nach der Bereitstellung finden Sie die Zugriffs-URLs des Administratorservers und des Clusters in der Ausgabe. Sie haben die Bezeichnung adminConsoleExternalUrl und clusterExternalUrl.

Untersuchen der Bereitstellungsausgabe

Führen Sie die Schritte in diesem Abschnitt aus, um zu überprüfen, ob die Bereitstellung erfolgreich war.

Wenn Sie die Seite Bereitstellung läuft verlassen haben, zeigen Ihnen die folgenden Schritte, wie Sie zu dieser Seite zurückkehren. Wenn Sie sich noch auf der Seite befinden, auf der Ihre Bereitstellung wurde abgeschlossen. angezeigt wird, können Sie mit Schritt 5 nach dem nächsten Screenshot fortfahren.

  1. Wählen Sie in der Ecke oben links einer beliebigen Azure-Portalseite das Hamburger-Menü und dann Ressourcengruppen aus.

  2. Geben Sie in das Feld mit dem Text nach beliebigem Feld filtern die ersten Buchstaben der zuvor erstellten Ressourcengruppe ein. Wenn Sie der empfohlenen Konvention gefolgt sind, geben Sie Ihre Initialen ein und wählen Sie dann die entsprechende Ressourcengruppe aus.

  3. Wählen Sie im linken Navigationsbereich im Abschnitt Einstellungen die Option Bereitstellungen aus. Es wird eine sortierte Liste der Bereitstellungen für diese Ressourcengruppe angezeigt, wobei die neueste Bereitstellung zuerst aufgeführt wird.

  4. Scrollen Sie zum ältesten Eintrag in dieser Liste. Dieser Eintrag entspricht der Bereitstellung, die Sie im vorherigen Abschnitt gestartet haben. Wählen Sie die älteste Bereitstellung aus, wie im folgenden Screenshot dargestellt.

    Screenshot des Azure-Portals, der die Liste der Bereitstellungen der Ressourcengruppen zeigt.

  5. Wählen Sie im linken Navigationsbereich Ausgaben aus. In dieser Liste werden die Ausgabewerte der Bereitstellung angezeigt. Die Ausgaben enthalten hilfreiche Informationen.

  6. Der Wert von adminConsoleExternalUrl ist der vollqualifizierte, im öffentlichen Internet sichtbare Link zur WebLogic Server-Administratorkonsole für diesen AKS-Cluster. Wählen Sie das Kopiersymbol neben dem Feldwert aus, um den Link in die Zwischenablage zu kopieren. Diesen Wert benötigen Sie später.

  7. Der Wert von clusterExternalUrl ist der vollqualifizierte, im öffentlichen Internet sichtbare Link zur Beispiel-App, die in WebLogic Server auf diesem AKS-Cluster bereitgestellt wurde. Wählen Sie das Kopiersymbol neben dem Feldwert aus, um den Link in die Zwischenablage zu kopieren. Diesen Wert benötigen Sie später.

  8. Der Wert shellCmdtoOutputWlsImageModelYaml ist die base64-Zeichenfolge des WDT-Modells, das zum Erstellen des Containerimages verwendet wird. Diesen Wert benötigen Sie später.

  9. Der Wert shellCmdtoOutputWlsImageProperties ist die base64-Zeichenfolge der Eigenschaften des WDT-Modells, das zum Erstellen des Containerimages verwendet wird. Diesen Wert benötigen Sie später.

  10. Der Wert shellCmdtoConnectAks ist der Azure CLI-Befehl, um eine Verbindung mit diesem bestimmten AKS-Cluster herzustellen.

Die anderen Ausgabewerte gehen über den Rahmen dieses Artikels hinaus, werden aber im Benutzerhandbuch zu WebLogic in AKS ausführlich erläutert.

Konfigurieren und Bereitstellen der Beispielanwendung

Das Angebot stellt den WebLogic Server-Cluster über Modell in Image bereit. Derzeit hat der WebLogic Server-Cluster keine Anwendung bereitgestellt.

In diesem Abschnitt wird der WebLogic Server-Cluster aktualisiert, indem eine Beispielanwendung mithilfe des Hilfsimages bereitgestellt wird.

Auschecken der Anwendung

In diesem Abschnitt klonen Sie den Beispielcode für diesen Leitfaden. Das Beispiel befindet sich auf GitHub im Repository weblogic-on-azure im Ordner javaee/weblogic-cafe/. Hier ist die Dateistruktur der Anwendung.

weblogic-cafe
├── pom.xml
└── src
    └── main
        ├── java
        │   └── cafe
        │       ├── model
        │       │   ├── CafeRepository.java
        │       │   └── entity
        │       │       └── Coffee.java
        │       └── web
        │           ├── rest
        │           │   └── CafeResource.java
        │           └── view
        │               └── Cafe.java
        ├── resources
        │   ├── META-INF
        │   │   └── persistence.xml
        │   └── cafe
        │       └── web
        │           ├── messages.properties
        │           └── messages_es.properties
        └── webapp
            ├── WEB-INF
            │   ├── beans.xml
            │   ├── faces-config.xml
            │   └── web.xml
            ├── index.xhtml
            └── resources
                └── components
                    └── inputPrice.xhtml

Führen Sie die folgenden Befehle aus, um das Repository zu klonen:

# cd <parent-directory-to-check-out-sample-code>
export BASE_DIR=$PWD

git clone --single-branch https://github.com/microsoft/weblogic-on-azure.git --branch 20240201 $BASE_DIR/weblogic-on-azure

Wenn eine Meldung angezeigt wird, dass Sie sich im Status „detached HEAD“ befinden, können Sie diese Meldung problemlos ignorieren. Sie bedeutet nur, dass Sie ein Tag ausgecheckt haben.

Verwenden Sie den folgenden Befehl, um javaee/weblogic-cafe/ zu erstellen:

mvn clean package --file $BASE_DIR/weblogic-on-azure/javaee/weblogic-cafe/pom.xml

Das Paket sollte erfolgreich in $BASE_DIR/weblogic-on-azure/javaee/weblogic-cafe/target/weblogic-cafe.war generiert werden. Wenn das Paket nicht angezeigt wird, müssen Sie das Problem beheben, bevor Sie fortfahren.

Verwenden von Azure Container Registry zum Erstellen eines Hilfsimages

Führen Sie zum Erstellen eines Hilfsimages die Schritte in diesem Abschnitt aus. Dieses Image schließt die folgenden Komponenten ein:

  • Die Modell in Image-Modelldateien
  • Ihre Anwendung
  • Die Treiberarchivdatei Java Database Connectivity (JDBC)
  • Die Installation von WebLogic Deploy Tooling

Ein Hilfsimage ist ein Docker-Containerimage, das Ihre App und die Konfiguration enthält. Der WebLogic Kubernetes-Operator kombiniert das Hilfsimage mit domain.spec.image im AKS-Cluster, der WebLogic Server, das JDK und das Betriebssystem enthält. Weitere Informationen zu Hilfsimages finden Sie in der Oracle-Dokumentation im Abschnitt zu Hilfsimages.

In diesem Abschnitt ist ein Linux-Terminal erforderlich, in dem die Azure CLI und kubectl installiert sind.

Führen Sie zum Erstellen des Images die folgenden Schritte aus:

  1. Verwenden Sie die folgenden Befehle, um ein Verzeichnis zu erstellen und die Modelle und die Anwendung zu stagen:

    mkdir -p ${BASE_DIR}/mystaging/models
    cd ${BASE_DIR}/mystaging/models
    
  2. Kopieren Sie den Wert shellCmdtoOutputWlsImageModelYaml, den Sie aus den Bereitstellungsausgaben gespeichert haben, fügen Sie ihn in das Bash-Fenster ein, und führen Sie den Befehl aus. Der Befehl sollte in etwa wie im folgenden Beispiel aussehen:

    echo -e IyBDb3B5cmlna...Cgo= | base64 -d > model.yaml
    

    Dieser Befehl erzeugt die Datei ${BASE_DIR}/mystaging/models/model.yaml mit einem Inhalt ähnlich dem folgenden Beispiel:

    # Copyright (c) 2020, 2021, Oracle and/or its affiliates.
    # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
    
    # Based on ./kubernetes/samples/scripts/create-weblogic-domain/model-in-image/model-images/model-in-image__WLS-v1/model.10.yaml
    # in https://github.com/oracle/weblogic-kubernetes-operator.
    
    domainInfo:
      AdminUserName: "@@SECRET:__weblogic-credentials__:username@@"
      AdminPassword: "@@SECRET:__weblogic-credentials__:password@@"
      ServerStartMode: "prod"
    
    topology:
      Name: "@@ENV:CUSTOM_DOMAIN_NAME@@"
      ProductionModeEnabled: true
      AdminServerName: "admin-server"
      Cluster:
        "cluster-1":
          DynamicServers:
            ServerTemplate: "cluster-1-template"
            ServerNamePrefix: "@@ENV:MANAGED_SERVER_PREFIX@@"
            DynamicClusterSize: "@@PROP:CLUSTER_SIZE@@"
            MaxDynamicClusterSize: "@@PROP:CLUSTER_SIZE@@"
            MinDynamicClusterSize: "0"
            CalculatedListenPorts: false
      Server:
        "admin-server":
          ListenPort: 7001
      ServerTemplate:
        "cluster-1-template":
          Cluster: "cluster-1"
          ListenPort: 8001
      SecurityConfiguration:
        NodeManagerUsername: "@@SECRET:__weblogic-credentials__:username@@"
        NodeManagerPasswordEncrypted: "@@SECRET:__weblogic-credentials__:password@@"
    
    resources:
      SelfTuning:
        MinThreadsConstraint:
          SampleMinThreads:
            Target: "cluster-1"
            Count: 1
        MaxThreadsConstraint:
          SampleMaxThreads:
            Target: "cluster-1"
            Count: 10
        WorkManager:
          SampleWM:
            Target: "cluster-1"
            MinThreadsConstraint: "SampleMinThreads"
            MaxThreadsConstraint: "SampleMaxThreads"
    
  3. Kopieren Sie auf ähnliche Weise den Wert shellCmdtoOutputWlsImageProperties, fügen Sie sie in das Bash-Fenster ein, und führen Sie den Befehl aus. Der Befehl sollte in etwa wie im folgenden Beispiel aussehen:

    echo -e IyBDb3B5cml...pFPTUK | base64 -d > model.properties
    

    Dieser Befehl erzeugt die Datei ${BASE_DIR}/mystaging/models/model.properties mit einem Inhalt ähnlich dem folgenden Beispiel:

    # Copyright (c) 2021, Oracle Corporation and/or its affiliates.
    # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
    
    # Based on ./kubernetes/samples/scripts/create-weblogic-domain/model-in-image/model-images/model-in-image__WLS-v1/model.10.properties
    # in https://github.com/oracle/weblogic-kubernetes-operator.
    
    CLUSTER_SIZE=5
    
  4. Führen Sie die folgenden Schritte aus, um die Anwendungsmodelldatei zu erstellen:

    1. Verwenden Sie die folgenden Befehle, um weblogic-cafe.war zu kopieren und in wlsdeploy/applications zu speichern:

      mkdir -p ${BASE_DIR}/mystaging/models/wlsdeploy/applications
      cp $BASE_DIR/weblogic-on-azure/javaee/weblogic-cafe/target/weblogic-cafe.war ${BASE_DIR}/mystaging/models/wlsdeploy/applications/weblogic-cafe.war
      
    2. Verwenden Sie die folgenden Befehle, um die Anwendungsmodelldatei mit den angezeigten Inhalten zu erstellen. Speichern Sie die Modelldatei in ${BASE_DIR}/mystaging/models/appmodel.yaml.

      cat <<EOF >appmodel.yaml
      appDeployments:
        Application:
          weblogic-cafe:
            SourcePath: 'wlsdeploy/applications/weblogic-cafe.war'
            ModuleType: ear
            Target: 'cluster-1'
      EOF
      
  5. Sie können die Datenquellenverbindung mithilfe der folgenden Schritte konfigurieren.

    1. Führen Sie die folgenden Schritte aus, um den Microsoft SQL Server JDBC-Treiber und die Azure-Identitätserweiterung herunterzuladen und zu installieren, die Datenbankverbindungen mithilfe von verwalteten Azure-Identitäten ermöglicht.

      1. Verwenden Sie die folgenden Befehle, um den Microsoft SQL Server JDBC-Treiber herunterzuladen und in wlsdeploy/externalJDBCLibraries zu installieren:

        export DRIVER_VERSION="10.2.1.jre8"
        export MSSQL_DRIVER_URL="https://repo.maven.apache.org/maven2/com/microsoft/sqlserver/mssql-jdbc/${DRIVER_VERSION}/mssql-jdbc-${DRIVER_VERSION}.jar"
        
        mkdir ${BASE_DIR}/mystaging/models/wlsdeploy/externalJDBCLibraries
        curl -m 120 -fL ${MSSQL_DRIVER_URL} -o ${BASE_DIR}/mystaging/models/wlsdeploy/externalJDBCLibraries/mssql-jdbc-${DRIVER_VERSION}.jar
        
      2. Verwenden Sie die folgenden Befehle, um die Azure-Identitätserweiterung in wlsdeploy/classpathLibraries zu installieren:

        curl -LO https://github.com/oracle/weblogic-azure/raw/refs/heads/main/weblogic-azure-aks/src/main/resources/azure-identity-extensions.xml
        
        mvn dependency:copy-dependencies -f azure-identity-extensions.xml
        
        mkdir -p ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/azureLibraries
        mkdir ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson
        # fix JARs conflict issue in GA images, put jackson libraries to PRE_CLASSPATH to upgrade the existing libs.
        mv target/dependency/jackson-annotations-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/
        mv target/dependency/jackson-core-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/
        mv target/dependency/jackson-databind-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/
        mv target/dependency/jackson-dataformat-xml-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/
        # Thoes jars will be appended to CLASSPATH
        mv target/dependency/*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/azureLibraries/
        
      3. Verwenden Sie die folgenden Befehle, um Ressourcen zu bereinigen:

        rm target -f -r
        rm azure-identity-extensions.xml
        
    2. Stellen Sie eine Verbindung mit dem AKS-Cluster her. Kopieren Sie dazu den Wert shellCmdtoConnectAks, den Sie zuvor gespeichert haben, fügen Sie ihn in das Bash-Fenster ein, und führen Sie dann den Befehl aus. Der Befehl sollte in etwa wie im folgenden Beispiel aussehen:

      az account set --subscription <subscription>;
      az aks get-credentials \
          --resource-group <resource-group> \
          --name <name>
      

      Die Ausgabe sollte etwa folgendem Beispiel entsprechen. Wenn diese Ausgabe nicht angezeigt wird, beheben Sie das Problem, bevor Sie fortfahren.

      Merged "<name>" as current context in /Users/<username>/.kube/config
      
    3. Exportieren Sie das Datenbankverbindungsmodell, und speichern Sie es in ${BASE_DIR}/mystaging/models/dbmodel.yaml. Die folgenden Schritte extrahieren das Datenbankkonfigurationsmodell aus ConfigMap sample-domain1-wdt-config-map. Der Name hat das Format <domain-uid>-wdt-config-map, wobei <domain-uid> während der Angebotsbereitstellung festgelegt wird. Wenn Sie den Standardwert geändert haben, ersetzen Sie ihn durch Ihre eigene Domänen-UID.

      1. Der Datenschlüssel ist <db-secret-name>.yaml. Verwenden Sie den folgenden Befehl, um den Datenbankgeheimnisnamen abzurufen:

        export WLS_DOMAIN_UID=sample-domain1
        export WLS_DOMAIN_NS=${WLS_DOMAIN_UID}-ns
        export DB_K8S_SECRET_NAME=$(kubectl get secret -n ${WLS_DOMAIN_NS} | grep "ds-secret" | awk '{print $1}')
        
      2. Extrahieren Sie als Nächstes das Datenbankmodell mit diesem Befehl:

        kubectl get configmap sample-domain1-wdt-config-map -n ${WLS_DOMAIN_NS} -o=jsonpath="{['data']['${DB_K8S_SECRET_NAME}\.yaml']}" >${BASE_DIR}/mystaging/models/dbmodel.yaml
        
      3. Verwenden Sie schließlich den folgenden Befehl, um den Inhalt von dbmodel.yaml zu überprüfen.

        cat ${BASE_DIR}/mystaging/models/dbmodel.yaml
        

        Die Ausgabe dieses Befehls sollte der folgenden Struktur ähneln:

        # Copyright (c) 2020, 2021, Oracle and/or its affiliates.
        # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
        
        resources:
          JDBCSystemResource:
            jdbc/WebLogicCafeDB:
              Target: 'cluster-1'
              JdbcResource:
              JDBCDataSourceParams:
                 JNDIName: [
                    jdbc/WebLogicCafeDB
                 ]
                 GlobalTransactionsProtocol: OnePhaseCommit
              JDBCDriverParams:
                 DriverName: com.microsoft.sqlserver.jdbc.SQLServerDriver
                 URL: '@@SECRET:ds-secret-sqlserver-1727147748:url@@'
                 PasswordEncrypted: '@@SECRET:ds-secret-sqlserver-1727147748:password@@'
                 Properties:
                    user:
                    Value: '@@SECRET:ds-secret-sqlserver-1727147748:user@@'
              JDBCConnectionPoolParams:
                    TestTableName: SQL SELECT 1
                    TestConnectionsOnReserve: true
        
  6. Verwenden Sie die folgenden Befehle, um eine Archivdatei zu erstellen und dann den Ordner wlsdeploy zu entfernen, den Sie nicht mehr benötigen:

    cd ${BASE_DIR}/mystaging/models
    zip -r archive.zip wlsdeploy
    
    rm -f -r wlsdeploy
    
  7. Verwenden Sie die folgenden Befehle, um WebLogic Deploy Tooling (WDT) herunterzuladen und im Stagingverzeichnis zu installieren und die Dateien vom Typ weblogic-deploy/bin/*.cmd zu entfernen, die in UNIX-Umgebungen nicht verwendet werden:

    cd ${BASE_DIR}/mystaging
    curl -m 120 -fL https://github.com/oracle/weblogic-deploy-tooling/releases/latest/download/weblogic-deploy.zip -o weblogic-deploy.zip
    
    unzip weblogic-deploy.zip -d .
    rm ./weblogic-deploy/bin/*.cmd
    
  8. Verwenden Sie den folgenden Befehl, um das WDT-Installationsprogramm zu bereinigen:

    rm weblogic-deploy.zip
    
  9. Verwenden Sie die folgenden Befehle, um eine Docker-Datei zu erstellen:

    cd ${BASE_DIR}/mystaging
    cat <<EOF >Dockerfile
    FROM busybox
    ARG AUXILIARY_IMAGE_PATH=/auxiliary
    ARG USER=oracle
    ARG USERID=1000
    ARG GROUP=root
    ENV AUXILIARY_IMAGE_PATH=\${AUXILIARY_IMAGE_PATH}
    RUN adduser -D -u \${USERID} -G \$GROUP \$USER
    COPY --chown=\$USER:\$GROUP ./ \${AUXILIARY_IMAGE_PATH}/
    USER \$USER
    EOF
    
  10. Führen Sie den Befehl az acr build unter Verwendung von ${BASE_DIR}/mystaging/Dockerfile aus, wie im folgenden Beispiel gezeigt:

    export ACR_NAME=<value-from-clipboard>
    export IMAGE="wlsaks-auxiliary-image:1.0"
    
  11. Verwenden Sie die folgenden Befehle, um die Stagingdateien zu überprüfen:

    cd ${BASE_DIR}/mystaging
    find -maxdepth 2 -type f -print
    

    Diese Befehle erzeugen eine Ausgabe ähnlich dem folgenden Beispiel:

    ./models/model.properties
    ./models/model.yaml
    ./models/appmodel.yaml
    ./models/dbmodel.yaml
    ./models/archive.zip
    ./Dockerfile
    ./weblogic-deploy/VERSION.txt
    ./weblogic-deploy/LICENSE.txt
    
  12. Erstellen Sie das Image mit az acr build, wie im folgenden Beispiel gezeigt:

    az acr build -t ${IMAGE} --build-arg AUXILIARY_IMAGE_PATH=/auxiliary -r ${ACR_NAME} --platform linux/amd64 .
    

    Wenn das Image erfolgreich erstellt wird, sieht die Ausgabe ähnlich wie im folgenden Beispiel aus:

    ...
    Step 1/9 : FROM busybox
    latest: Pulling from library/busybox
    Digest: sha256:9ae97d36d26566ff84e8893c64a6dc4fe8ca6d1144bf5b87b2b85a32def253c7
    Status: Image is up to date for busybox:latest
    ---> 65ad0d468eb1
    Step 2/9 : ARG AUXILIARY_IMAGE_PATH=/auxiliary
    ---> Running in 1f8f4e82ccb6
    Removing intermediate container 1f8f4e82ccb6
    ---> 947fde618be9
    Step 3/9 : ARG USER=oracle
    ---> Running in dda021591e41
    Removing intermediate container dda021591e41
    ---> f43d84be4517
    Step 4/9 : ARG USERID=1000
    ---> Running in cac4df6dfd13
    Removing intermediate container cac4df6dfd13
    ---> e5513f426c74
    Step 5/9 : ARG GROUP=root
    ---> Running in 8fec1763270c
    Removing intermediate container 8fec1763270c
    ---> 9ef233dbe279
    Step 6/9 : ENV AUXILIARY_IMAGE_PATH=${AUXILIARY_IMAGE_PATH}
    ---> Running in b7754f58157a
    Removing intermediate container b7754f58157a
    ---> 4a26a97eb572
    Step 7/9 : RUN adduser -D -u ${USERID} -G $GROUP $USER
    ---> Running in b6c1f1a81af1
    Removing intermediate container b6c1f1a81af1
    ---> 97d3e5ad7540
    Step 8/9 : COPY --chown=$USER:$GROUP ./ ${AUXILIARY_IMAGE_PATH}/
    ---> 21088171876f
    Step 9/9 : USER $USER
    ---> Running in 825e0abc9f6a
    Removing intermediate container 825e0abc9f6a
    ---> b81d6430fcda
    Successfully built b81d6430fcda
    Successfully tagged wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0
    2024/08/28 03:06:19 Successfully executed container: build
    2024/08/28 03:06:19 Executing step ID: push. Timeout(sec): 3600, Working directory: '', Network: ''
    2024/08/28 03:06:19 Pushing image: wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0, attempt 1
    The push refers to repository [wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image]
    ee589b3cda86: Preparing
    c1fd1adab3b9: Preparing
    d51af96cf93e: Preparing
    c1fd1adab3b9: Pushed
    d51af96cf93e: Pushed
    ee589b3cda86: Pushed
    1.0: digest: sha256:c813eb75576eb07a179c3cb4e70106ca7dd280f933ab33a2f6858de673b12eac size: 946
    2024/08/28 03:06:21 Successfully pushed image: wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0
    2024/08/28 03:06:21 Step ID: build marked as successful (elapsed time in seconds: 8.780235)
    2024/08/28 03:06:21 Populating digests for step ID: build...
    2024/08/28 03:06:22 Successfully populated digests for step ID: build
    2024/08/28 03:06:22 Step ID: push marked as successful (elapsed time in seconds: 1.980158)
    2024/08/28 03:06:22 The following dependencies were found:
    2024/08/28 03:06:22
    - image:
       registry: wlsaksacru6jyly7kztoqu.azurecr.io
       repository: wlsaks-auxiliary-image
       tag: "1.0"
       digest: sha256:c813eb75576eb07a179c3cb4e70106ca7dd280f933ab33a2f6858de673b12eac
    runtime-dependency:
       registry: registry.hub.docker.com
       repository: library/busybox
       tag: latest
       digest: sha256:9ae97d36d26566ff84e8893c64a6dc4fe8ca6d1144bf5b87b2b85a32def253c7
    git: {}
    
    Run ID: ca1 was successful after 14s
    

    Das Image wird nach einem erfolgreichen Build an ACR übertragen.

  13. Sie können az acr repository show ausführen, um zu testen, ob das Image erfolgreich an das Remoterepository übertragen wird, wie im folgenden Beispiel gezeigt:

    az acr repository show --name ${ACR_NAME} --image ${IMAGE}
    

    Dieser Befehl sollte eine Ausgabe ähnlich wie im folgenden Beispiel erzeugen:

    {
       "changeableAttributes": {
          "deleteEnabled": true,
          "listEnabled": true,
          "readEnabled": true,
          "writeEnabled": true
       },
       "createdTime": "2024-01-24T06:14:19.4546321Z",
       "digest": "sha256:a1befbefd0181a06c6fe00848e76f1743c1fecba2b42a975e9504ba2aaae51ea",
       "lastUpdateTime": "2024-01-24T06:14:19.4546321Z",
       "name": "1.0",
       "quarantineState": "Passed",
       "signed": false
    }
    

Anwenden des Hilfsimages

In den vorherigen Schritten haben Sie das Hilfsimage einschließlich der Modelle und WDT erstellt. Wenden Sie das Hilfsimage auf den WebLogic Server-Cluster mit den folgenden Schritten an.

  1. Wenden Sie das Hilfsimage an, indem Sie die benutzerdefinierte Ressourcendefinition (Custom Resource Definition, CRD) der Domäne mithilfe des Befehls kubectl patch patchen.

    Das Hilfsimage wird in spec.configuration.model.auxiliaryImages definiert, wie im folgenden Beispiel dargestellt:

    spec:
      clusters:
      - name: sample-domain1-cluster-1
      configuration:
        model:
          auxiliaryImages:
          - image: wlsaksacrafvzeyyswhxek.azurecr.io/wlsaks-auxiliary-image:1.0
            imagePullPolicy: IfNotPresent
            sourceModelHome: /auxiliary/models
            sourceWDTInstallHome: /auxiliary/weblogic-deploy
    

    Verwenden Sie die folgenden Befehle, um den Wert restartVersion zu erhöhen, und kubectl patch, um das Hilfsimage mithilfe der gezeigten Definition auf die CRD der Domäne anzuwenden:

    export VERSION=$(kubectl -n ${WLS_DOMAIN_NS} get domain ${WLS_DOMAIN_UID} -o=jsonpath='{.spec.restartVersion}' | tr -d "\"")
    export VERSION=$((VERSION+1))
    
    export ACR_LOGIN_SERVER=$(az acr show --name ${ACR_NAME} --query "loginServer" --output tsv)
    
    cat <<EOF >patch-file.json
    [
      {
        "op": "replace",
        "path": "/spec/restartVersion",
        "value": "${VERSION}"
      },
      {
        "op": "add",
        "path": "/spec/configuration/model/auxiliaryImages",
        "value": [{"image": "$ACR_LOGIN_SERVER/$IMAGE", "imagePullPolicy": "IfNotPresent", "sourceModelHome": "/auxiliary/models", "sourceWDTInstallHome": "/auxiliary/weblogic-deploy"}]
      },
      {
       "op": "remove",
       "path": "/spec/configuration/model/configMap"
      }
    ]
    EOF
    
    kubectl -n ${WLS_DOMAIN_NS} patch domain ${WLS_DOMAIN_UID} \
        --type=json \
        --patch-file patch-file.json
    
  2. Da die Datenbankverbindung im Hilfsimage konfiguriert ist, führen Sie den folgenden Befehl aus, um ConfigMap zu entfernen:

    kubectl delete configmap sample-domain1-wdt-config-map -n ${WLS_DOMAIN_NS}
    

Bevor Sie fortfahren, warten Sie, bis der folgende Befehl die folgende Ausgabe für den Administratorserver und verwaltete Server erzeugt:

kubectl get pod -n ${WLS_DOMAIN_NS} -w
NAME                             READY   STATUS    RESTARTS   AGE
sample-domain1-admin-server      1/1     Running   0          20m
sample-domain1-managed-server1   1/1     Running   0          19m
sample-domain1-managed-server2   1/1     Running   0          18m

Es kann 5 bis 10 Minuten dauern, bis das System diesen Zustand erreicht. Die folgende Liste gibt einen Überblick darüber, was passiert, während Sie warten:

  • Sie sollten sehen, dass sample-domain1-introspector zuerst ausgeführt wird. Diese Software sucht nach Änderungen an der benutzerdefinierten Domänenressource, damit sie die erforderlichen Aktionen für den Kubernetes-Cluster ausführen kann.
  • Wenn Änderungen erkannt werden, beendet und startet der Domänen-Introspector neue Pods gestartet, um ein Rollout der Änderungen auszuführen.
  • Als Nächstes sollten Sie sehen, wie der Pod sample-domain1-admin-server beendet und neu gestartet wird.
  • Dann sollten die beiden verwalteten Server beendet und neu gestartet werden.
  • Nur wenn alle drei Pods den Zustand 1/1 Running haben, ist es in Ordnung, den Vorgang fortzusetzen.

Überprüfen der Funktionsfähigkeit der Bereitstellung

Führen Sie die folgenden Schritte aus, um die Bereitstellung auf ihre Funktionsfähigkeit überprüfen, indem Sie die WebLogic Server-Administratorkonsole und die Beispiel-App anzeigen:

  1. Fügen Sie den Wert adminConsoleExternalUrl in die Adressleiste eines mit dem Internet verbundenen Webbrowsers ein. Der vertraute Anmeldebildschirm der WebLogic Server-Administratorkonsole sollte angezeigt werden.

  2. Melden Sie sich mit dem Benutzernamen weblogic und dem Kennwort an, das Sie beim Bereitstellen von WebLogic Server über das Azure-Portal eingegeben haben. Dieser Wert ist wlsAksCluster2022.

  3. Wählen Sie im Feld Domänenstruktur die Option Dienste aus.

  4. Wählen Sie unter Dienste die Option Datenquellen aus.

  5. Wählen Sie im Bereich Zusammenfassung der JDBC-Datenquellen die Option Überwachung aus. Ihr Bildschirm sollte ähnlich wie im folgenden Beispiel aussehen. Der Status der Datenquelle wird auf verwalteten Servern ausgeführt.

    Screenshot des Datenquellenstatus.

  6. Wählen Sie im Feld Domänenstruktur die Option Bereitstellungen aus.

  7. Die Tabelle Bereitstellungen sollte eine Zeile enthalten. Der Name sollte mit dem Application-Wert in der Datei appmodel.yaml identisch sein. Wählen Sie den Namen aus.

  8. Wählen Sie die Registerkarte Testen aus.

  9. Wählen Sie weblogic-cafe aus.

  10. Wählen Sie im Bereich Einstellungen für weblogic-cafe die Registerkarte Testen aus.

  11. Erweitern Sie das Symbol + neben weblogic-cafe. Ihr Bildschirm sollte ähnlich wie im folgenden Beispiel aussehen. Insbesondere sollten Werte wie http://sample-domain1-managed-server1:8001/weblogic-cafe/index.xhtml in der Spalte Testpunkt angezeigt werden.

    Screenshot der Weblogic-Café Testpunkte.

    Hinweis

    Die Links in der Spalte Testpunkt sind nicht auswählbar, da die Verwaltungskonsole nicht mit der externen URL konfiguriert wurde, unter der sie ausgeführt wird. In diesem Artikel wird die WebLogic Server-Administratorkonsole nur zu Demonstrationszwecken dargestellt. Verwenden Sie die WebLogic Server-Administratorkonsole beim Ausführen von WebLogic Server in AKS nicht für dauerhafte Konfigurationsänderungen. Das cloudnative Design von WebLogic Server in AKS erfordert, dass jede dauerhafte Konfiguration in den anfänglichen Docker-Images dargestellt wird oder mithilfe von CI/CD-Techniken wie dem Aktualisieren des Modells auf den ausgeführten AKS-Cluster angewendet wird, wie in der Oracle-Dokumentation beschrieben wird.

  12. Vergegenwärtigen Sie sich den context-path-Wert der von Ihnen bereitgestellten Beispiel-App. Wenn Sie die empfohlene Beispiel-App bereitgestellt haben, entspricht context-pathweblogic-cafe.

  13. Erstellen Sie eine vollqualifizierte URL für die Beispiel-App, indem Sie context-path an den clusterExternalUrl-Wert anfügen. Wenn Sie die empfohlene Beispiel-App bereitgestellt haben, sollte die vollqualifizierte URL etwa http://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/ lauten.

  14. Fügen Sie die vollqualifizierte URL in einen mit dem Internet verbundenen Webbrowser ein. Wenn Sie die empfohlene Beispiel-App bereitgestellt haben, sollten Ergebnisse ähnlich wie im folgenden Screenshot angezeigt werden:

    Screenshot: Test-Web-App

Bereinigen von Ressourcen

Zum Vermeiden von Azure-Gebühren sollten Sie nicht benötigte Ressourcen bereinigen. Wenn Sie den Cluster nicht mehr benötigen, verwenden Sie den Befehl az group delete. Mit dem folgenden Befehl werden die Ressourcengruppe, der Containerdienst, die Containerregistrierung, die Datenbank und alle zugehörigen Ressourcen entfernt:

az group delete --name <resource-group-name> --yes --no-wait
az group delete --name <db-resource-group-name> --yes --no-wait

Nächste Schritte

Weitere Informationen zum Ausführen von WebLogic Server in AKS oder auf virtuellen Computern finden Sie unter folgenden Links:

Weitere Informationen zu den Oracle WebLogic-Angeboten auf dem Azure Marketplace finden Sie unter Oracle WebLogic Server in Azure. Für alle diese Angebote gilt Bring-Your-Own-License. Es wird davon ausgegangen, dass Sie bereits über die entsprechenden Lizenzen bei Oracle verfügen und die richtigen Lizenzen haben, um Angebote in Azure auszuführen.