Delen via


Een Java-toepassing implementeren met WebLogic Server in een AKS-cluster (Azure Kubernetes Service)

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

  • Voer uw Java-toepassing uit op Oracle WebLogic Server (WLS).
  • Stel een WebLogic Server-cluster op in AKS met behulp van een Azure Marketplace-aanbieding.
  • Bouw een Docker-toepassingsinstallatiekopieën met WDT-modellen (WebLogic Deploy Tooling).
  • Implementeer de containertoepassing in het WebLogic Server-cluster op AKS met verbinding met Microsoft Azure SQL.

In dit artikel wordt de Azure Marketplace-aanbieding voor WebLogic Server gebruikt om uw traject naar AKS te versnellen. Met de aanbieding worden automatisch verschillende Azure-resources ingericht, waaronder de volgende resources:

  • Een Azure Container Registry-exemplaar
  • Een AKS-cluster
  • Een AGIC-exemplaar (Azure-app Gateway Ingress Controller)
  • De WebLogic-operator
  • Een containerinstallatiekopieën met inbegrip van de WebLogic-runtime
  • Een WebLogic Server-cluster zonder toepassing

Vervolgens introduceert het artikel het bouwen van een installatiekopieën om het WebLogic Server-cluster bij te werken. De installatiekopieën bieden de toepassings- en WDT-modellen.

Als u liever een minder geautomatiseerde benadering hebt voor het implementeren van WebLogic in AKS, raadpleegt u de stapsgewijze richtlijnen in de officiële documentatie van Oracle voor Azure Kubernetes Service.

Als u feedback wilt geven of nauw wilt samenwerken aan uw migratiescenario's met het technische team dat WebLogic op AKS-oplossingen ontwikkelt, vult u deze korte enquête over WebLogic-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

  • Als u geen Azure-abonnement hebt, kunt u een gratis Azure-account maken voordat u begint.
  • Zorg ervoor dat de Azure-identiteit die u gebruikt om u aan te melden en te voltooien, de rol Eigenaar in het huidige abonnement heeft of de rollen Inzender en Beheerder voor gebruikerstoegang in het huidige abonnement. Zie Wat is op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC)voor een overzicht van Azure-rollen? Zie ingebouwde Azure-rollen voor meer informatie over de specifieke rollen die door WLS in AKS zijn vereist.
  • De referenties voor een Oracle-account voor eenmalige aanmelding (SSO) hebben. Zie Uw Oracle-account maken om er een te maken.
  • Accepteer de licentievoorwaarden voor WebLogic Server.
    • Ga naar Oracle Container Registry en meld u aan.
    • Als u een ondersteuningsrechten hebt, selecteert u Middleware, zoekt en selecteert u weblogic_cpu.
    • Als u geen ondersteuningsrechten van Oracle hebt, selecteert u Middleware en zoekt en selecteert u weblogic.
    • Accepteer de gebruiksrechtovereenkomst.

    Notitie

    Ontvang een ondersteuningsrechten van Oracle voordat u naar productie gaat. Als u dit niet doet, worden onveilige installatiekopieën uitgevoerd die niet zijn gepatcht op kritieke beveiligingsfouten. Zie Essentiële patchupdates, beveiligingswaarschuwingen en bulletins van Oracle voor meer informatie over essentiële patchupdates van Oracle.

  • Bereid een lokale computer voor waarop unix-achtige besturingssystemen zijn geïnstalleerd, bijvoorbeeld Ubuntu, Azure Linux, macOS Windows-subsysteem voor Linux.
    • Azure CLI. Gebruik az --version dit om te testen of az works. Dit document is getest met versie 2.55.1.
    • Docker. Dit document is getest met Docker versie 20.10.7. Gebruik docker info dit om te testen of Docker Daemon wordt uitgevoerd.
    • kubectl. Gebruik kubectl version dit om te testen of kubectl werkt. Dit document is getest met versie v1.21.2.
    • Een Java Development Kit (JDK) die compatibel is met de versie van WebLogic Server die u wilt uitvoeren. In het artikel wordt u omgevraagd een versie van WebLogic Server te installeren die gebruikmaakt van JDK 11. Zorg ervoor dat uw JAVA_HOME omgevingsvariabele juist is ingesteld in de shells waarin u de opdrachten uitvoert.
    • Maven 3.5.0 of hoger.
    • Zorg ervoor dat het zip-/unzip-hulpprogramma is geïnstalleerd. Gebruik zip/unzip -v dit om te testen of zip/unzip het werkt.

    Notitie

    U kunt alle stappen van dit artikel uitvoeren in De Azure Cloud Shell, met uitzondering van de stappen die betrekking hebben op Docker. Zie Wat is Azure Cloud Shell?

WebLogic Server implementeren in AKS

In de volgende stappen ziet u hoe u de WebLogic Server in AKS-aanbieding kunt vinden en het deelvenster Basisbeginselen kunt invullen.

  1. Voer in de zoekbalk boven aan Azure Portal weblogic in. Selecteer in de zoekresultaten met automatische suggesties in de sectie Marketplace de optie WebLogic Server op AKS.

    Schermopname van Azure Portal met WebLogic Server in de zoekresultaten.

    U kunt ook rechtstreeks naar de WebLogic Server op AKS-aanbieding gaan.

  2. Selecteer Maken op de pagina aanbieding.

  3. Controleer in het deelvenster Basisbeginselen of de waarde die wordt weergegeven in het veld Abonnement hetzelfde is als waarmee u bent aangemeld in Azure. Zorg ervoor dat u de rollen hebt die worden vermeld in de sectie Vereisten voor het abonnement.

    Schermopname van Azure Portal met WebLogic Server op AKS.

  4. U moet de aanbieding implementeren in een lege resourcegroep. Selecteer Nieuwe maken in het veld Resourcegroep en vul vervolgens een waarde in voor de resourcegroep. Omdat resourcegroepen uniek moeten zijn binnen een abonnement, kiest u een unieke naam. Een eenvoudige manier om unieke namen te hebben, is door een combinatie van uw initialen, de datum van vandaag en een id te gebruiken, ejb0723wlsbijvoorbeeld.

  5. Selecteer onder Exemplaardetails de regio voor de implementatie. Zie beschikbaarheid van AKS-regio's voor een lijst met Azure-regio's waar AKS beschikbaar is.

  6. Laat onder Referenties voor WebLogic de standaardwaarde voor Gebruikersnaam voor WebLogic-beheerder staan.

  7. Vul het wachtwoord voor WebLogic Administrator inwlsAksCluster2022. Gebruik dezelfde waarde voor de bevestigings- en Wachtwoord voor weblogic-modelversleutelingsvelden .

  8. Selecteer Volgende.

In de volgende stappen ziet u hoe u het implementatieproces start.

  1. Blader naar de sectie met het label Een Oracle-account voor eenmalige aanmelding (SSO) opgeven. Vul uw Oracle SSO-referenties in vanuit de voorwaarden.

    Schermopname van Azure Portal met het geconfigureerde deelvenster eenmalige aanmelding.

  2. Let op de stappen in het infovak die beginnen met Voordat u verdergaat, moet u de Standaardvoorwaarden en -beperkingen van Oracle accepteren.

  3. Afhankelijk van of het Oracle SSO-account een Oracle-ondersteuningsrechten heeft, selecteert u de juiste optie voor Het type WebLogic Server-installatiekopieën selecteren. Als het account een ondersteuningsrechten heeft, selecteert u Patched WebLogic Server-installatiekopieën. Selecteer anders General WebLogic Server Images.

  4. Laat de waarde in de gewenste combinatie van WebLogic Server selecteren staan... op de standaardwaarde. U hebt een breed scala aan keuzemogelijkheden voor WebLogic Server, JDK en besturingssysteemversie.

  5. Selecteer Nee in de sectie Toepassing naast Een toepassing implementeren?.

De volgende stappen zorgen ervoor dat de WebLogic Server-beheerconsole en de voorbeeld-app worden blootgesteld aan het openbare internet met een ingebouwde invoegtoepassing voor inkomend verkeer van Application Gateway. Zie Wat is application gateway toegangsbeheerobjectcontroller voor meer informatie ?

  1. Selecteer Volgende om het deelvenster TLS/SSL weer te geven.

  2. Selecteer Volgende om het deelvenster Taakverdeling weer te geven.

  3. Selecteer naast opties voor taakverdeling de controller voor inkomend verkeer van Application Gateway.

    Schermopname van Azure Portal met de eenvoudigste configuratie van de load balancer op de pagina Oracle WebLogic Server maken in Azure Kubernetes Service.

  4. Onder de controller voor inkomend verkeer van Application Gateway ziet u alle velden die vooraf zijn ingevuld met de standaardwaarden voor virtueel netwerk en subnet. Laat de standaardwaarden staan.

  5. Selecteer Ja voor Toegangsbeheerconsole maken.

    Schermopname van Azure Portal met de configuratie van de application gateway-ingangscontroller op de pagina Oracle WebLogic Server maken op de pagina Azure Kubernetes Service maken.

  6. Laat de standaardwaarden voor andere velden staan.

  7. Selecteer Controleren + maken. Zorg ervoor dat de validatie niet mislukt. Als dit mislukt, lost u validatieproblemen op en selecteert u Beoordelen en opnieuw maken .

  8. Selecteer Maken.

  9. Houd de voortgang van de implementatie op de implementatiepagina bij .

Afhankelijk van netwerkvoorwaarden en andere activiteiten in uw geselecteerde regio kan het tot 50 minuten duren voordat de implementatie is voltooid.

U kunt de stappen uitvoeren in de sectie Een Azure SQL Database maken terwijl u wacht. Ga terug naar deze sectie wanneer u klaar bent met het maken van de database.

De uitvoer van de implementatie onderzoeken

Gebruik de stappen in deze sectie om te controleren of de implementatie is geslaagd.

Als u weg navigeert van de implementatiepagina wordt uitgevoerd , ziet u in de volgende stappen hoe u terug kunt gaan naar die pagina. Als u nog steeds op de pagina bent waarin wordt aangegeven dat uw implementatie is voltooid, kunt u doorgaan naar stap 5 na de volgende schermopname.

  1. Selecteer in de hoek van een azure-portalpagina het hamburgermenu en selecteer 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 Implementaties in het navigatiedeelvenster in de sectie Instellingen. U ziet een geordende lijst met de implementaties voor deze resourcegroep, met de meest recente eerst.

  4. Schuif naar het oudste item in deze lijst. Deze vermelding komt overeen met de implementatie die u in de vorige sectie hebt gestart. Selecteer de oudste implementatie, zoals wordt weergegeven in de volgende schermopname.

    Schermopname van Azure Portal waarin de lijst met resourcegroepimplementaties wordt weergegeven.

  5. Selecteer Uitvoer in het navigatiedeelvenster. In deze lijst worden de uitvoerwaarden van de implementatie weergegeven. Nuttige informatie wordt opgenomen in de uitvoer.

  6. De waarde adminConsoleExternalUrl is de volledig gekwalificeerde, openbare internet zichtbare koppeling naar de WebLogic Server-beheerconsole voor dit AKS-cluster. Selecteer het kopieerpictogram naast de veldwaarde om de koppeling naar het klembord te kopiëren. Sla deze waarde opzij voor later gebruik.

  7. De clusterExternalUrl-waarde is de volledig gekwalificeerde, openbare internet zichtbare koppeling naar de voorbeeld-app die is geïmplementeerd in WebLogic Server op dit AKS-cluster. Selecteer het kopieerpictogram naast de veldwaarde om de koppeling naar het klembord te kopiëren. Sla deze waarde opzij voor later gebruik.

  8. De waarde shellCmdtoOutputWlsImageModelYaml is de base64-tekenreeks van het WDT-model dat wordt gebruikt om de containerinstallatiekopie te bouwen. Sla deze waarde opzij voor later gebruik.

  9. De waarde shellCmdtoOutputWlsImageProperties is de base64-tekenreeks van de eigenschappen van het WDT-model die wordt gebruikt om de containerinstallatiekopie te bouwen. Sla deze waarde opzij voor later gebruik.

  10. De shellCmdtoConnectAks-waarde is de Azure CLI-opdracht om verbinding te maken met dit specifieke AKS-cluster.

De andere waarden in de uitvoer vallen buiten het bereik van dit artikel, maar worden uitgebreid beschreven in de gebruikershandleiding voor WebLogic in AKS.

Een Azure SQL-database maken

Als u een individuele Azure SQL Database-database wilt maken voor gebruik met uw app, volgt u de stappen in quickstart: Een individuele database maken in Azure SQL Database. Let goed op de volgende verschillen:

  • Noteer in de stap Basisinformatie de waarden voor resourcegroep, databasenaam,< servernaam.database.windows.net>, aanmelding van serverbeheerder en wachtwoord. Dit artikel verwijst naar de waarde van de databaseresourcegroep als <db-resource-group>.

  • Stel in de stap Netwerken de connectiviteitsmethode in op een openbaar eindpunt, stel Azure-services en -resources toestaan in op Ja en stel huidig CLIENT-IP-adres toevoegen in op Ja.

    Schermopname van Azure Portal met het tabblad Netwerken van de pagina SQL Database maken met de instellingen voor connectiviteitsmethode en firewallregels gemarkeerd.

Notitie

De serverloze rekenlaag die u voor deze database hebt geselecteerd, bespaart geld door de database in de slaapstand te zetten tijdens perioden van inactiviteit. De voorbeeld-app mislukt als de database in slaapstand is wanneer de app wordt gestart.

Als u wilt afdwingen dat de database wordt geactiveerd, kunt u een query uitvoeren met behulp van de queryeditor. Volg de stappen in De database opvragen. Hier volgt een voorbeeldquery: SELECT * FROM COFFEE;.

Maak vervolgens een schema voor de voorbeeldtoepassing met behulp van de volgende stappen:

  1. Open het deelvenster Query-editor door de stappen te volgen in de sectie Query in de sectie Database van Quickstart: Een individuele database maken - Azure SQL Database.

  2. Voer de volgende query in en voer deze uit:

    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);
    

    Na een geslaagde uitvoering ziet u het bericht Query is voltooid: Betrokken rijen: 1. Als u dit bericht niet ziet, lost u het probleem op voordat u doorgaat.

De database, tabellen, het AKS-cluster en het WebLogic Server-cluster worden gemaakt. Als u wilt, kunt u de beheerconsole verkennen door een browser te openen en naar het adres van adminConsoleExternalUrl te navigeren. Meld u aan met de waarden die u hebt ingevoerd tijdens de WebLogic Server op AKS-implementatie.

U kunt doorgaan met het voorbereiden van AKS voor het hosten van uw WebLogic-toepassing.

De voorbeeldtoepassing configureren en implementeren

De aanbieding richt het WebLogic Server-cluster in via een model in de afbeelding. Op dit moment is er geen toepassing geïmplementeerd voor het WebLogic Server-cluster.

In deze sectie wordt het WebLogic Server-cluster bijgewerkt door een voorbeeldtoepassing te implementeren met behulp van een hulpinstallatiekopieën.

De toepassing uitchecken

In deze sectie kloont u de voorbeeldcode voor deze handleiding. Het voorbeeld bevindt zich op GitHub in de opslagplaats weblogic-on-azure in de map javaee/weblogic-café/ . Hier ziet u de bestandsstructuur van de toepassing.

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

Gebruik de volgende opdrachten om de opslagplaats te 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

Als u een bericht ziet over 'losgekoppelde HEAD'-status, is dit bericht veilig te negeren. Het betekent alleen dat je een tag hebt uitgecheckt.

Gebruik de volgende opdracht om javaee/weblogic-café/te bouwen:

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

Het pakket moet worden gegenereerd en zich bevinden op $BASE_DIR/weblogic-on-azure/javaee/weblogic-café/target/weblogic-café.war. Als u het pakket niet ziet, moet u het probleem oplossen voordat u doorgaat.

Docker gebruiken om een hulpinstallatiekopieën te maken

In de stappen in deze sectie ziet u hoe u een hulpinstallatiekopieën bouwt. Deze afbeelding bevat de volgende onderdelen:

  • Het model in afbeeldingsmodelbestanden
  • Uw toepassing
  • Het archiefbestand van het JDBC-stuurprogramma (Java Database Connectivity)
  • De installatie van de WebLogic Deploy Tooling

Een hulpinstallatiekopie is een Docker-containerinstallatiekopie die uw app en configuratie bevat. De WebLogic Kubernetes Operator combineert uw hulpinstallatiekopieën met het domain.spec.image in het AKS-cluster dat de WebLogic Server, JDK en het besturingssysteem bevat. Zie Hulpinstallatiekopieën in de Oracle-documentatie voor meer informatie over hulpinstallatiekopieën .

Voor deze sectie is een Linux-terminal vereist waarop Azure CLI en kubectl zijn geïnstalleerd.

Gebruik de volgende stappen om de installatiekopieën te bouwen:

  1. Gebruik de volgende opdrachten om een map te maken om de modellen en toepassingen te faseringen:

    mkdir -p ${BASE_DIR}/mystaging/models
    cd ${BASE_DIR}/mystaging/models
    
  2. Kopieer de shellCmdtoOutputWlsImageModelYaml-waarde die u hebt opgeslagen uit de uitvoer van de implementatie, plak deze in het Bash-venster en voer de opdracht uit. De opdracht moet er ongeveer uitzien als in het volgende voorbeeld:

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

    Met deze opdracht wordt een bestand ${BASE_DIR}/mystaging/models/model.yaml gegenereerd met inhoud die vergelijkbaar is met het volgende voorbeeld:

    # 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. Kopieer op een vergelijkbare manier de waarde shellCmdtoOutputWlsImageProperties , plak deze in het Bash-venster en voer de opdracht uit. De opdracht moet er ongeveer uitzien als in het volgende voorbeeld:

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

    Met deze opdracht wordt een bestand ${BASE_DIR}/mystaging/models/model.properties gegenereerd met inhoud die vergelijkbaar is met het volgende voorbeeld:

    # 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. Gebruik de volgende stappen om het toepassingsmodelbestand te maken.

    1. Gebruik de volgende opdrachten om weblogic-café.war te kopiëren en op te slaan in wlsdeploy/applications:

      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. Gebruik de volgende opdrachten om het toepassingsmodelbestand te maken met de weergegeven inhoud. Sla het modelbestand op 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. Gebruik de volgende opdrachten om het JDBC-stuurprogramma van Microsoft SQL Server te downloaden en te installeren voor wlsdeploy/externalJDBCLibraries:

    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
    
  6. Gebruik vervolgens de volgende opdrachten om het databaseverbindingsmodelbestand te maken met de weergegeven inhoud. Sla het modelbestand op in ${BASE_DIR}/mystaging/models/dbmodel.yaml. Het model maakt gebruik van tijdelijke aanduidingen (geheim sqlserver-secret) voor de gebruikersnaam, het wachtwoord en de URL van de database. Zorg ervoor dat de volgende velden juist zijn ingesteld. Het volgende model noemt de resource met jdbc/WebLogicCafeDB.

    Itemnaam Veld Waarde
    JNDI-naam resources.JDBCSystemResource.<resource-name>.JdbcResource.JDBCDataSourceParams.JNDIName jdbc/WebLogicCafeDB
    Stuurprogrammanaam resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.DriverName com.microsoft.sqlserver.jdbc.SQLServerDriver
    Database-URL resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.URL @@SECRET:sqlserver-secret:url@@
    Databasewachtwoord resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.PasswordEncrypted @@SECRET:sqlserver-secret:password@@
    Gebruikersnaam van database resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.Properties.user.Value '@@SECRET:sqlserver-secret:user@@'
    cat <<EOF >dbmodel.yaml
    resources:
      JDBCSystemResource:
        jdbc/WebLogicCafeDB:
          Target: 'cluster-1'
          JdbcResource:
            JDBCDataSourceParams:
              JNDIName: [
                jdbc/WebLogicCafeDB
              ]
              GlobalTransactionsProtocol: None
            JDBCDriverParams:
              DriverName: com.microsoft.sqlserver.jdbc.SQLServerDriver
              URL: '@@SECRET:sqlserver-secret:url@@'
              PasswordEncrypted: '@@SECRET:sqlserver-secret:password@@'
              Properties:
                user:
                  Value: '@@SECRET:sqlserver-secret:user@@'
            JDBCConnectionPoolParams:
              TestTableName: SQL SELECT 1
              TestConnectionsOnReserve: true
    EOF
    
  7. Gebruik de volgende opdrachten om een archiefbestand voor toepassingen te maken en verwijder vervolgens de map wlsdeploy , die u niet meer nodig hebt:

    cd ${BASE_DIR}/mystaging/models
    zip -r archive.zip wlsdeploy
    
    rm -f -r wlsdeploy
    
  8. Gebruik de volgende opdrachten om WebLogic Deploy Tooling (WDT) te downloaden en te installeren in de faseringsmap en de bijbehorende weblogic-deploy/bin/*.cmd-bestanden te verwijderen, die niet worden gebruikt in UNIX-omgevingen:

    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
    
  9. Gebruik de volgende opdracht om het WDT-installatieprogramma te verwijderen:

    rm weblogic-deploy.zip
    
  10. Gebruik de volgende opdrachten om een hulpinstallatiekopieën te bouwen met behulp van docker:

    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
    # ARG expansion in COPY command's --chown is available in docker version 19.03.1+.
    # For older docker versions, change the Dockerfile to use separate COPY and 'RUN chown' commands.
    COPY --chown=\$USER:\$GROUP ./ \${AUXILIARY_IMAGE_PATH}/
    USER \$USER
    EOF
    
  11. Voer de docker buildx build opdracht uit met ${BASE_DIR}/mystaging/Dockerfile, zoals wordt weergegeven in het volgende voorbeeld:

    cd ${BASE_DIR}/mystaging
    docker buildx build --platform linux/amd64 --build-arg AUXILIARY_IMAGE_PATH=/auxiliary --tag model-in-image:WLS-v1 .
    

    Wanneer u de installatiekopieën bouwt, ziet de uitvoer er ongeveer als volgt uit:

    [+] Building 12.0s (8/8) FINISHED                                   docker:default
    => [internal] load build definition from Dockerfile                          0.8s
    => => transferring dockerfile: 473B                                          0.0s
    => [internal] load .dockerignore                                             1.1s
    => => transferring context: 2B                                               0.0s
    => [internal] load metadata for docker.io/library/busybox:latest             5.0s
    => [1/3] FROM docker.io/library/busybox@sha256:6d9ac9237a84afe1516540f40a0f  0.0s
    => [internal] load build context                                             0.3s
    => => transferring context: 21.89kB                                          0.0s
    => CACHED [2/3] RUN adduser -D -u 1000 -G root oracle                        0.0s
    => [3/3] COPY --chown=oracle:root ./ /auxiliary/                             1.5s
    => exporting to image                                                        1.3s
    => => exporting layers                                                       1.0s
    => => writing image sha256:2477d502a19dcc0e841630ea567f50d7084782499fe3032a  0.1s
    => => naming to docker.io/library/model-in-image:WLS-v1                      0.2s
    
  12. Als u de installatiekopieën hebt gemaakt, moet deze zich nu in de Docker-opslagplaats van uw lokale computer bevindt. U kunt controleren of de installatiekopie is gemaakt met behulp van de volgende opdracht:

    docker images model-in-image:WLS-v1
    

    Met deze opdracht moet uitvoer worden geproduceerd die vergelijkbaar is met het volgende voorbeeld:

    REPOSITORY       TAG       IMAGE ID       CREATED       SIZE
    model-in-image   WLS-v1    76abc1afdcc6   2 hours ago   8.61MB
    

    Nadat de installatiekopieën zijn gemaakt, moeten de WDT-uitvoerbare bestanden in /auxiliary/weblogic-deploy en WDT-model, eigenschap en archiefbestanden in /auxiliary/models zijn. Gebruik de volgende opdracht om de inhoud van de afbeelding te controleren:

    docker run -it --rm model-in-image:WLS-v1 find /auxiliary -maxdepth 2 -type f -print
    

    Met deze opdracht moet uitvoer worden geproduceerd die vergelijkbaar is met het volgende voorbeeld:

    /auxiliary/models/model.properties
    /auxiliary/models/dbmodel.yaml
    /auxiliary/models/model.yaml
    /auxiliary/models/archive.zip
    /auxiliary/models/appmodel.yaml
    /auxiliary/Dockerfile
    /auxiliary/weblogic-deploy/LICENSE.txt
    /auxiliary/weblogic-deploy/VERSION.txt
    
  13. Gebruik de volgende stappen om de hulpinstallatiekopieën naar Azure Container Registry te pushen:

    1. Open Azure Portal en ga naar de resourcegroep die u hebt ingericht in de sectie Deploy WebLogic Server op AKS .

    2. Selecteer de resource van het type Containerregister in de lijst met resources.

    3. Beweeg de muisaanwijzer over de waarde naast de aanmeldingsserver en selecteer het kopieerpictogram naast de tekst.

    4. Sla de waarde in de ACR_LOGIN_SERVER omgevingsvariabele op met behulp van de volgende opdracht:

      export ACR_LOGIN_SERVER=<value-from-clipboard>
      
    5. Voer de volgende opdrachten uit om de installatiekopieën te taggen en te pushen. Zorg ervoor dat Docker wordt uitgevoerd voordat u deze opdrachten uitvoert.

      export ACR_NAME=$(echo ${ACR_LOGIN_SERVER} | cut -d '.' -f 1)
      az acr login -n $ACR_NAME
      docker tag model-in-image:WLS-v1 $ACR_LOGIN_SERVER/wlsaks-auxiliary-image:1.0
      docker push $ACR_LOGIN_SERVER/wlsaks-auxiliary-image:1.0
      
    6. U kunt uitvoeren az acr repository show om te testen of de installatiekopieën naar de externe opslagplaats zijn gepusht, zoals wordt weergegeven in het volgende voorbeeld:

      az acr repository show --name ${ACR_NAME} --image wlsaks-auxiliary-image:1.0
      

      Met deze opdracht moet uitvoer worden geproduceerd die vergelijkbaar is met het volgende voorbeeld:

      {
        "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
      }
      

De hulpinstallatiekopieën toepassen

In de vorige stappen hebt u de hulpinstallatiekopieën gemaakt, inclusief modellen en WDT. Voordat u de hulpinstallatiekopieën toepast op het WebLogic Server-cluster, gebruikt u de volgende stappen om het geheim te maken voor de URL, gebruikersnaam en wachtwoord van de gegevensbron. Het geheim wordt gebruikt als onderdeel van de tijdelijke aanduiding in dbmodel.yaml.

  1. Maak verbinding met het AKS-cluster door de shellCmdtoConnectAks-waarde te kopiëren die u eerder hebt opgeslagen, deze in het Bash-venster te plakken en vervolgens de opdracht uit te voeren. De opdracht moet er ongeveer uitzien als in het volgende voorbeeld:

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

    De uitvoer moet er ongeveer uitzien als in het volgende voorbeeld. Als u deze uitvoer niet ziet, kunt u het probleem oplossen voordat u doorgaat.

    Merged "<name>" as current context in /Users/<username>/.kube/config
    
  2. Gebruik de volgende stappen om waarden op te halen voor de variabelen die worden weergegeven in de volgende tabel. U gebruikt deze waarden om het geheim voor de gegevensbronverbinding te maken.

    Variabele Beschrijving Voorbeeld
    DB_CONNECTION_STRING De verbindingsreeks van SQL Server. jdbc:sqlserver://server-name.database.windows.net:1433;database=wlsaksquickstart0125
    DB_USER De gebruikersnaam om u aan te melden bij de SQL-server. welogic@sqlserverforwlsaks
    DB_PASSWORD Het wachtwoord om u aan te melden bij de sQL-server. Secret123456
    1. Ga naar de SQL-databaseresource in Azure Portal.

    2. Selecteer in het navigatiedeelvenster onder Instellingen de verbindingsreeksen.

    3. Selecteer het tabblad JDBC .

    4. Selecteer het kopieerpictogram om de verbindingsreeks naar het klembord te kopiëren.

    5. Gebruik DB_CONNECTION_STRINGde volledige verbindingsreeks, maar vervang de tijdelijke aanduiding {your_password_here} door uw databasewachtwoord.

    6. Gebruik DB_USERvoor het gedeelte van de verbindingsreeks tot azureuser maar niet inclusief;password={your_password_here}.

    7. Gebruik DB_PASSWORDde waarde die u hebt ingevoerd bij het maken van de database.

  3. Gebruik de volgende opdrachten om het Kubernetes-geheim te maken. In dit artikel wordt de geheime naam sqlserver-secret gebruikt voor het geheim van de gegevensbronverbinding. Als u een andere naam gebruikt, moet u ervoor zorgen dat de waarde hetzelfde is als de waarde in dbmodel.yaml.

    Zorg ervoor dat u in de volgende opdrachten de variabelen DB_CONNECTION_STRINGDB_USERinstelt en DB_PASSWORD de tijdelijke aanduidingen correct vervangt door de waarden die in de vorige stappen zijn beschreven. Als u wilt voorkomen dat de shell deze verstoort, plaatst u de waarde van de DB_ variabelen tussen enkele aanhalingstekens.

    export DB_CONNECTION_STRING='<example-jdbc:sqlserver://server-name.database.windows.net:1433;database=wlsaksquickstart0125>'
    export DB_USER='<example-welogic@sqlserverforwlsaks>'
    export DB_PASSWORD='<example-Secret123456>'
    export WLS_DOMAIN_NS=sample-domain1-ns
    export WLS_DOMAIN_UID=sample-domain1
    export SECRET_NAME=sqlserver-secret
    
    kubectl -n ${WLS_DOMAIN_NS} create secret generic \
        ${SECRET_NAME} \
        --from-literal=password="${DB_PASSWORD}" \
        --from-literal=url="${DB_CONNECTION_STRING}" \
        --from-literal=user="${DB_USER}"
    
    kubectl -n ${WLS_DOMAIN_NS} label secret \
        ${SECRET_NAME} \
        weblogic.domainUID=${WLS_DOMAIN_UID}
    

    U moet de volgende uitvoer zien voordat u doorgaat. Als u deze uitvoer niet ziet, lost u het probleem op voordat u doorgaat.

    secret/sqlserver-secret created
    secret/sqlserver-secret labeled
    
  4. Pas de hulpinstallatiekopieën toe door de aangepaste resourcedefinitie van het domein (CRD) te patchen met behulp van de kubectl patch opdracht.

    De hulpafbeelding wordt gedefinieerd in spec.configuration.model.auxiliaryImages, zoals wordt weergegeven in het volgende voorbeeld.

    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
    

    Gebruik de volgende opdrachten om de restartVersion waarde te verhogen en de kubectl patch hulpinstallatiekopieën toe te passen op het domein CRD met behulp van de weergegeven definitie:

    export VERSION=$(kubectl -n ${WLS_DOMAIN_NS} get domain ${WLS_DOMAIN_UID} -o=jsonpath='{.spec.restartVersion}' | tr -d "\"")
    export VERSION=$((VERSION+1))
    
    cat <<EOF >patch-file.json
    [
      {
        "op": "replace",
        "path": "/spec/restartVersion",
        "value": "${VERSION}"
      },
      {
        "op": "add",
        "path": "/spec/configuration/model/auxiliaryImages",
        "value": [{"image": "$ACR_LOGIN_SERVER/wlsaks-auxiliary-image:1.0", "imagePullPolicy": "IfNotPresent", "sourceModelHome": "/auxiliary/models", "sourceWDTInstallHome": "/auxiliary/weblogic-deploy"}]
      },
      {
        "op": "add",
        "path": "/spec/configuration/secrets",
        "value": ["${SECRET_NAME}"]
      }
    ]
    EOF
    
    kubectl -n ${WLS_DOMAIN_NS} patch domain ${WLS_DOMAIN_UID} \
        --type=json \
        --patch-file patch-file.json
    
    kubectl get pod -n ${WLS_DOMAIN_NS} -w
    
  5. Wacht totdat de beheerserver en beheerde servers de waarden in het volgende uitvoerblok weergeven voordat u verdergaat:

    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
    

    Het kan 5-10 minuten duren voordat het systeem deze status heeft bereikt. De volgende lijst bevat een overzicht van wat er gebeurt terwijl u wacht:

    • Als het goed is, ziet u eerst de sample-domain1-introspector uitvoering. Deze software zoekt naar wijzigingen in de aangepaste domeinresource, zodat deze de benodigde acties op het Kubernetes-cluster kan uitvoeren.
    • Wanneer er wijzigingen worden gedetecteerd, wordt de introspector van het domein gedood en worden nieuwe pods gestart om de wijzigingen uit te rollen.
    • Vervolgens ziet u dat de sample-domain1-admin-server pod wordt beëindigd en opnieuw wordt gestart.
    • Vervolgens ziet u dat de twee beheerde servers worden beëindigd en opnieuw worden gestart.
    • Alleen wanneer alle drie de pods de 1/1 Running status tonen, is het ok om door te gaan.

De functionaliteit van de implementatie controleren

Gebruik de volgende stappen om de functionaliteit van de implementatie te controleren door de WebLogic Server-beheerconsole en de voorbeeld-app te bekijken:

  1. Plak de waarde adminConsoleExternalUrl in de adresbalk van een webbrowser met internetverbinding. U ziet nu het vertrouwde aanmeldingsscherm van de WebLogic Server-beheerconsole.

  2. Meld u aan met de gebruikersnaam weblogic en het wachtwoord dat u hebt ingevoerd bij het implementeren van WebLogic Server vanuit Azure Portal. Zoals u weet, is wlsAksCluster2022deze waarde .

  3. Selecteer Services in het vak Domeinstructuur.

  4. Selecteer onder De Services gegevensbronnen.

  5. Selecteer Bewaking in het deelvenster Samenvatting van JDBC-gegevensbronnen. Uw scherm moet er ongeveer uitzien als in het volgende voorbeeld. U vindt dat de status van de gegevensbron wordt uitgevoerd op beheerde servers.

    Schermopname van de status van de gegevensbron.

  6. Selecteer Implementaties in het vak Domeinstructuur.

  7. In de tabel Implementaties moet er één rij zijn. De naam moet dezelfde waarde zijn als de Application waarde in het bestand appmodel.yaml . Klik op de naam.

  8. Selecteer het tabblad Testen .

  9. Selecteer weblogic-café.

  10. Selecteer in het deelvenster Instellingen voor weblogic-café het tabblad Testen .

  11. Vouw het + pictogram naast weblogic-café uit. Uw scherm moet er ongeveer uitzien als in het volgende voorbeeld. In het bijzonder ziet u waarden die vergelijkbaar zijn met http://sample-domain1-managed-server1:8001/weblogic-cafe/index.xhtml in de kolom Testpunt .

    Schermopname van weblogic-café-testpunten.

    Notitie

    De hyperlinks in de kolom Testpunt kunnen niet worden geselecteerd omdat we de beheerconsole niet hebben geconfigureerd met de externe URL waarop deze wordt uitgevoerd. In dit artikel wordt de WebLogic Server-beheerconsole alleen maar gedemonstreerd. Gebruik de WebLogic Server-beheerconsole niet voor duurzame configuratiewijzigingen bij het uitvoeren van WebLogic Server op AKS. Voor het cloudeigen ontwerp van WebLogic Server op AKS moet elke duurzame configuratie worden weergegeven in de eerste Docker-installatiekopieën of worden toegepast op het actieve AKS-cluster met behulp van CI/CD-technieken zoals het bijwerken van het model, zoals beschreven in de Oracle-documentatie.

  12. Inzicht in de context-path waarde van de voorbeeld-app die u hebt geïmplementeerd. Als u de aanbevolen voorbeeld-app hebt geïmplementeerd, is weblogic-cafedat context-path .

  13. Maak een volledig gekwalificeerde URL voor de voorbeeld-app door de context-path waarde clusterExternalUrl toe te voegen. Als u de aanbevolen voorbeeld-app hebt geïmplementeerd, moet de volledig gekwalificeerde URL er ongeveer als volgt http://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/uitzien.

  14. Plak de volledig gekwalificeerde URL in een webbrowser die is verbonden met internet. Als u de aanbevolen voorbeeld-app hebt geïmplementeerd, ziet u resultaten die vergelijkbaar zijn met de volgende schermopname:

    Schermopname van de testweb-app.

Resources opschonen

Om Azure-kosten te voorkomen, moet u overbodige resources opschonen. Gebruik de opdracht az group delete als u het cluster niet meer nodig hebt. Met de volgende opdracht verwijdert u de resourcegroep, containerservice, containerregister, database en alle gerelateerde resources:

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

Volgende stappen

Volg deze koppelingen voor meer informatie over het uitvoeren van WebLogic Server op AKS of virtuele machines:

Zie Oracle WebLogic Server in Azure voor meer informatie over de Oracle WebLogic-aanbiedingen op Azure Marketplace. Deze aanbiedingen zijn allemaal Bring-Your-Own-License. Ze gaan ervan uit dat u al over de juiste licenties met Oracle beschikt en dat u een juiste licentie hebt om aanbiedingen uit te voeren in Azure.