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.
- 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.
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.
- Accepteer de gebruiksrechtovereenkomst.
- 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 ofzip/unzip
het werkt.
- Azure CLI. Gebruik
- 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.
Voer in de zoekbalk boven aan Azure Portal weblogic in. Selecteer In de automatisch voorgestelde zoekresultaten, in de sectie Marketplace, WebLogic Server op AKS.
U kunt ook rechtstreeks naar de WebLogic Server op AKS-aanbieding gaan.
Selecteer Maken op de pagina aanbieding.
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.
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,
ejb0723wls
bijvoorbeeld.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.
Laat onder Referenties voor WebLogic de standaardwaarde voor Gebruikersnaam voor WebLogic Beheer istrator staan.
Vul het wachtwoord voor WebLogic Beheer istrator in
wlsAksCluster2022
. Gebruik dezelfde waarde voor de bevestigings- en Wachtwoord voor weblogic-modelversleutelingsvelden .Schuif naar de onderkant van het deelvenster Basisinformatie en bekijk de nuttige koppelingen voor documentatie, communityondersteuning en het melden van problemen.
Selecteer Volgende.
In de volgende stappen ziet u hoe u het implementatieproces start.
Blader naar de sectie met het label Een Oracle-account voor eenmalige aanmelding (SSO) opgeven. Vul uw Oracle SSO-referenties in vanuit de voorwaarden.
Volg de stappen in het infovak die beginnen met Voordat u verdergaat, moet u de Standaardvoorwaarden en -beperkingen van Oracle accepteren.
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.
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.
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 ?
Selecteer Volgende om het deelvenster TLS/SSL weer te geven.
Selecteer Volgende om het deelvenster Taakverdeling weer te geven.
Selecteer naast opties voor taakverdeling de controller voor inkomend verkeer van Application Gateway.
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.
Selecteer Ja voor Inkomend verkeer maken voor Beheer beheerconsole.
Laat de standaardwaarden voor andere velden staan.
Selecteer Controleren + maken. Zorg ervoor dat de validatie niet mislukt. Als dit mislukt, lost u validatieproblemen op en selecteert u Beoordelen en opnieuw maken .
Selecteer Maken.
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.
Selecteer in de hoek van een azure-portalpagina het hamburgermenu en selecteer Resourcegroepen.
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.
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.
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.
Selecteer Uitvoer in het navigatiedeelvenster. In deze lijst worden de uitvoerwaarden van de implementatie weergegeven. Nuttige informatie wordt opgenomen in de uitvoer.
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.
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.
De shellCmdtoOutputWlsImageModelYaml-waarde is de base64-tekenreeks van het WDT-model dat is gebouwd in de containerinstallatiekopie. Sla deze waarde opzij voor later gebruik.
De waarde shellCmdtoOutputWlsImageProperties is een base64-tekenreeks met WDT-modeleigenschappen die zijn gebouwd in de containerinstallatiekopie. Sla deze waarde opzij voor later gebruik.
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.
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 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:
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
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"
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
Gebruik de volgende stappen om het toepassingsmodelbestand te maken.
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
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
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
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 metjdbc/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
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
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
Gebruik de volgende opdracht om het WDT-installatieprogramma te verwijderen:
rm weblogic-deploy.zip
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
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
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
Gebruik de volgende stappen om de hulpinstallatiekopieën naar Azure Container Registry te pushen:
Open Azure Portal en ga naar de resourcegroep die u hebt ingericht in de sectie WSL implementeren op AKS .
Selecteer de resource van het type Containerregister in de lijst met resources.
Beweeg de muisaanwijzer over de waarde naast de aanmeldingsserver en selecteer het kopieerpictogram naast de tekst.
Sla de waarde in de
ACR_LOGIN_SERVER
omgevingsvariabele op met behulp van de volgende opdracht:export ACR_LOGIN_SERVER=<value-from-clipboard>
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
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.
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
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
Ga naar de SQL-databaseresource in Azure Portal.
Selecteer in het navigatiedeelvenster onder Instellingen Verbinding maken iontekenreeksen.
Selecteer het tabblad JDBC .
Selecteer het kopieerpictogram om de verbindingsreeks naar het klembord te kopiëren.
Gebruik
DB_CONNECTION_STRING
de volledige verbindingsreeks, maar vervang de tijdelijke aanduiding{your_password_here}
door uw databasewachtwoord.Gebruik
DB_USER
voor het gedeelte van de verbindingsreeks totazureuser
maar niet inclusief;password={your_password_here}
.Gebruik
DB_PASSWORD
de waarde die u hebt ingevoerd bij het maken van de database.
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_STRING
DB_USER
instelt enDB_PASSWORD
de tijdelijke aanduidingen correct vervangt door de waarden die in de vorige stappen zijn beschreven. Plaats de waarde van deDB_
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
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 dekubectl 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
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.
- Als het goed is, ziet u eerst de
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:
Plak de waarde adminConsoleExternalUrl in de adresbalk van een webbrowser met internetverbinding. U ziet nu het vertrouwde aanmeldingsscherm van de WLS-beheerconsole.
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, iswlsAksCluster2022
deze waarde .Selecteer Services in het vak Domeinstructuur.
Selecteer onder De Services gegevensbronnen.
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.
Selecteer Implementaties in het vak Domeinstructuur.
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.Selecteer in het deelvenster Instellingen het tabblad Testen.
Selecteer weblogic-café.
Selecteer in het deelvenster Instellingen voor weblogic-café het tabblad Testen.
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 .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.
Inzicht in de
context-path
waarde van de voorbeeld-app die u hebt geïmplementeerd. Als u de aanbevolen voorbeeld-app hebt geïmplementeerd, isweblogic-cafe
datcontext-path
.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 volgthttp://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/
uitzien.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:
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: