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-, Java EE- of Jakarta EE uit op Oracle WebLogic Server (WLS).
  • Stel een WLS-cluster op met behulp van de Azure Marketplace-aanbieding.
  • Bouw de Docker-installatiekopieën van de toepassing om te fungeren als hulpinstallatiekopieën om WDT-modellen (WebLogic Deploy Tooling) en -toepassingen te bieden.
  • Implementeer de containertoepassing in het bestaande WLS-cluster op AKS met verbinding met Microsoft Azure SQL.

In dit artikel wordt de Azure Marketplace-aanbieding voor WLS 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 WLS-cluster zonder toepassing

In dit artikel maakt u stapsgewijs kennis met het bouwen van een hulpinstallatiekopieën om een bestaand WLS-cluster bij te werken. De hulpinstallatiekopieën bieden toepassings- en WDT-modellen.

Voor volledige automatisering kunt u uw toepassing selecteren en een gegevensbronverbinding configureren vanuit De Azure-portal voordat de aanbieding wordt geïmplementeerd. Ga naar Azure Portal om de aanbieding te bekijken.

Zie de officiële documentatie van Oracle bij Azure Kubernetes Service voor stapsgewijze instructies voor het instellen van WebLogic Server in Azure Kubernetes Service.

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 dit artikel de rol Eigenaar in het huidige abonnement heeft of de rollen Inzender en Gebruikerstoegang Beheer istrator 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 WLS.
  • Bereid een lokale computer voor waarop unix-achtig besturingssysteem is 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 JDK die compatibel is met de versie van WLS die u wilt uitvoeren. In het artikel wordt u begeleid bij het installeren van een versie van WLS die gebruikmaakt van JDK 11. Azure raadt Microsoft Build van OpenJDK aan. 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.
  • Alle stappen in dit artikel, met uitzondering van die met Docker, kunnen ook worden uitgevoerd in Azure Cloud Shell. Zie Wat is Azure Cloud Shell?

WLS implementeren in AKS

Met de stappen in deze sectie kunt u WLS op de eenvoudigste manier implementeren op AKS. WLS op AKS biedt een brede en uitgebreide selectie van Azure-integraties. Zie Wat zijn oplossingen voor het uitvoeren van Oracle WebLogic Server in de Azure Kubernetes Service voor meer informatie?

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

  1. Voer in de zoekbalk boven aan Azure Portal weblogic in. Selecteer In de automatisch voorgestelde zoekresultaten, in de sectie Marketplace, WebLogic Server op AKS.

    Schermopname van Azure Portal met WLS 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 de rollen worden vermeld in de sectie Vereisten.

    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 Beheer istrator staan.

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

  8. Schuif naar de onderkant van het deelvenster Basisinformatie en bekijk de nuttige koppelingen voor documentatie, communityondersteuning en het melden van problemen.

  9. 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. Volg 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 WLS-, JDK- en besturingssysteemversie.

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

De volgende stappen zorgen ervoor dat de WLS-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 ?

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

  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.

  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 Inkomend verkeer maken voor Beheer beheerconsole.

    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 WLS-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 WLS 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 shellCmdtoOutputWlsImageModelYaml-waarde is de base64-tekenreeks van het WDT-model dat is gebouwd in de containerinstallatiekopie. Sla deze waarde opzij voor later gebruik.

  9. De waarde shellCmdtoOutputWlsImageProperties is een base64-tekenreeks met WDT-modeleigenschappen die zijn gebouwd in de containerinstallatiekopie. Sla deze waarde opzij voor later gebruik.

  10. De waarde shellCmdto Verbinding maken Aks is de Azure CLI-opdracht om verbinding te maken met dit specifieke AKS-cluster. Hiermee kunt u kubectl het cluster beheren.

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 netwerkstap Verbinding maken iviteitsmethode in op openbaar eindpunt, stel Azure-services en -resources toegang tot deze server 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 Verbinding maken iviteitsmethode en de instellingen voor 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;.

  1. Maak een schema voor de voorbeeldtoepassing. Volg query's in de database om het deelvenster Query-editor te openen. 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 dat de berichtquery is geslaagd: Betrokken rijen: 0. Als u dit bericht niet ziet, lost u het probleem op voordat u doorgaat.

De database, tabellen, het AKS-cluster en het WLS-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 WLS 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 WLS-cluster in via het model in de installatiekopieën. Op dit moment is er geen toepassing geïmplementeerd voor het WLS-cluster.

In deze sectie wordt het WLS-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
  • 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 op de Docker-installatiekopieën om dit resultaat 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 WSL implementeren 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 WLS-cluster, gebruikt u de volgende stappen om het geheim voor de gegevensbron-URL, gebruikersnaam en wachtwoord te maken. Het geheim wordt gebruikt als onderdeel van de tijdelijke aanduiding in dbmodel.yaml.

  1. Verbinding maken naar het AKS-cluster door de shellCmdto Verbinding maken Aks-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 later om het geheim voor de gegevensbronverbinding te maken.

    Variabele Beschrijving Voorbeeld
    DB_CONNECTION_STRING De verbindingsreeks van SQL Server. jdbc:sqlserver://sqlserverforwlsaks.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 Verbinding maken iontekenreeksen.

    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. Plaats de waarde van de DB_ variabelen tussen enkele aanhalingstekens om te voorkomen dat de shell de waarden verstoort.

    export DB_CONNECTION_STRING='<example-jdbc:sqlserver://sqlserverforwlsaks.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. Zie hulpafbeeldingen voor meer informatie.

    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 WLS-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 WLS-beheerconsole.

  2. Meld u aan met de gebruikersnaam weblogic en het wachtwoord dat u hebt ingevoerd bij het implementeren van WLS 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 . Selecteer de naam.

  8. Selecteer in het deelvenster Instellingen 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 WLS-beheerconsole slechts via demonstratie getoond. Gebruik de WLS-beheerconsole niet voor duurzame configuratiewijzigingen bij het uitvoeren van WLS op AKS. Voor het cloudeigen ontwerp van WLS 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-pathwaarde 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, de containerservice, het containerregister 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 WLS op AKS of virtuele machines: