Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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-image van de toepassing dat WebLogic Deploy Tooling (WDT) modellen bevat.
- 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 Kubernetes-operator
- Een containerimage inclusief de WebLogic-runtime
- Een WebLogic Server-cluster zonder toepassing
Vervolgens introduceert het artikel het bouwen van een image om het WebLogic Server-cluster bij te werken. De afbeelding biedt 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 dit artikel te voltooien, de rol Eigenaar in het huidige abonnement heeft of de rol Bijdrager en Gebruikerstoegang beheerder rollen 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 inloggegevens voor een Oracle Single Sign-On (SSO) account hebben. Zie Maak uw Oracle-account aan om er een te maken.
- Accepteer de licentievoorwaarden voor WebLogic Server.
- Ga naar Oracle Container Registry en meld u aan.
- Als u een ondersteuningsrecht hebt, selecteert u Middleware, zoekt u naar 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 ondersteuningsrecht van Oracle voordat u in 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
om te testen of az werkt. Dit document is getest met versie 2.55.1. -
kubectl. Gebruik
kubectl version
dit om te testen of kubectl werkt. Dit document is getest met versie v1.21.2. - Een Java Ontwikkelkit (JDK). In het artikel wordt u doorverwezen om Microsoft Build van OpenJDK 11 te installeren. 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
om te testen ofzip/unzip
werkt.
-
Azure CLI. Gebruik
Een Azure SQL-database maken
In deze sectie maakt u een Azure SQL Database met behulp van Microsoft Entra-verificatie, waarbij de verbinding met beheerde identiteit is ingeschakeld.
Een brongroep maken
Maak een resourcegroep met az group create. 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 bepaalde id te gebruiken. Bijvoorbeeld: abc1228rg
. In dit voorbeeld wordt een resourcegroep gemaakt met de naam abc1228rg
op de eastus
locatie:
export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
Een databaseserver en een database maken
Maak een server met de opdracht az sql server create. In dit voorbeeld wordt een server met de naam myazuresql20130213
gemaakt, met de beheerder gebruiker azureuser
en een beheerderswachtwoord. Vervang <your-password>
door uw wachtwoord. Zie quickstart: Een individuele database maken - Azure SQL Database voor meer informatie.
Notitie
Hoewel u hier een gebruikersnaam en wachtwoord gebruikt, worden deze referenties niet buiten de database weergegeven. De verbinding tussen de toepassingslaag en de database wordt beveiligd met beheerde identiteiten.
export AZURESQL_SERVER_NAME="myazuresql20130213"
export AZURESQL_ADMIN_USER="azureuser"
export AZURESQL_ADMIN_PASSWORD="<your-password>"
export DATABASE_NAME="mysingledatabase20230213"
az sql server create \
--resource-group $RESOURCE_GROUP_NAME \
--name $AZURESQL_SERVER_NAME \
--location westus \
--admin-user $AZURESQL_ADMIN_USER \
--admin-password $AZURESQL_ADMIN_PASSWORD
Maak een database met de opdracht az sql db create in de serverloze rekenlaag.
az sql db create \
--resource-group $RESOURCE_GROUP_NAME \
--server $AZURESQL_SERVER_NAME \
--name $DATABASE_NAME \
--sample-name AdventureWorksLT \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--capacity 2
Een Microsoft Entra-beheerder configureren
Zie Verbinding maken met behulp van Microsoft Entra-verificatie voor meer informatie over hoe Azure SQL Server omgaat met beheerde identiteiten.
Gebruik de volgende stappen om vanuit Azure Portal een Microsoft Entra-beheerdersaccount te configureren voor Azure SQL-server:
- Open in Azure Portal het Azure SQL Server-exemplaar
myazuresql20130213
. - Selecteer Instellingen en selecteer vervolgens Microsoft Entra-id. Selecteer Beheerder instellen op de Microsoft Entra ID-pagina.
- Zoek op de pagina Beheerder toevoegen naar een gebruiker, selecteer de gebruiker of groep als beheerder en selecteer vervolgens Selecteren.
- Selecteer bovenaan de Microsoft Entra ID-pagina Opslaan. Voor Microsoft Entra-gebruikers en -groepen wordt de object-id weergegeven naast de naam van de beheerder.
- Het wijzigen van de beheerder kan enkele minuten duren. Vervolgens wordt de nieuwe beheerder weergegeven in het vak Microsoft Entra ID .
Een door de gebruiker toegewezen beheerde identiteit maken
Maak vervolgens in Azure CLI een identiteit in uw abonnement met behulp van de opdracht az identity create . U gebruikt deze beheerde identiteit om verbinding te maken met uw database.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
Een databasegebruiker maken voor uw beheerde identiteit
Maak nu vanuit Azure Portal verbinding als de Microsoft Entra-beheerdergebruiker met uw Azure SQL-database en maak een gebruiker voor uw beheerde identiteit.
Maak eerst een firewallregel voor toegang tot de Azure SQL-server vanuit de portal, zoals wordt weergegeven in de volgende stappen:
- Open in Azure Portal het Azure SQL Server-exemplaar
myazuresql20130213
. - Selecteer Beveiliging en selecteer vervolgens Netwerken.
- Selecteer onder Firewallregels het IPV4-IP-adres van de client toevoegen.
- Selecteer Onder Uitzonderingen de optie Azure-services en -resources toegang geven tot deze server.
- Selecteer Opslaan.
Nadat de firewallregel is gemaakt, hebt u toegang tot de Azure SQL-server vanuit de portal. Gebruik de volgende stappen om een databasegebruiker te maken:
Selecteer Instellingen en selecteer vervolgens SQL-databases. Selecteer
mysingledatabase20230213
.Selecteer Queryeditor. Zoek op de pagina Welkom bij SQL Database Query-editor onder Active Directory-verificatie een bericht zoals
Logged in as user@contoso.com
.Selecteer Doorgaan als user@contoso.com, waar
user
is de naam van uw AD-beheerdersaccount.Nadat u zich hebt aangemeld, voert u in de query 1-editor de volgende opdrachten uit om een databasegebruiker voor beheerde identiteit
myManagedIdentity
te maken.CREATE USER "myManagedIdentity" FROM EXTERNAL PROVIDER ALTER ROLE db_datareader ADD MEMBER "myManagedIdentity"; ALTER ROLE db_datawriter ADD MEMBER "myManagedIdentity"; ALTER ROLE db_ddladmin ADD MEMBER "myManagedIdentity"; GO
Selecteer Uitvoeren in de query 1-editor om de SQL-opdrachten uit te voeren.
Als de opdrachten zijn voltooid, kunt u een bericht vinden met de tekst
Query succeeded: Affected rows: 0
.
Gebruik de volgende opdracht om de verbindingsreeks op te halen die u in de volgende sectie gebruikt:
export CONNECTION_STRING="jdbc:sqlserver://${AZURESQL_SERVER_NAME}.database.windows.net:1433;database=${DATABASE_NAME};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
echo ${CONNECTION_STRING}
Een schema voor de voorbeeldtoepassing maken
Selecteer Nieuwe query en voer vervolgens in de query-editor de volgende query 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.
U kunt doorgaan met het implementeren van WLS in de AKS-aanbieding.
WebLogic Server implementeren in AKS
Gebruik de volgende stappen om de WebLogic Server op AKS-aanbieding te vinden en vul het deelvenster Basisbeginselen in:
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.
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 u de rollen hebt die worden vermeld in de sectie Vereisten voor het abonnement.
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-beheerder staan.
Vul het
wlsAksCluster2022
in. Gebruik dezelfde waarde voor de bevestigings- en Wachtwoord voor weblogic-modelversleutelingsvelden .Selecteer Volgende.
Gebruik de volgende stappen om het implementatieproces te starten:
Blader naar de sectie met het label Een Oracle-account voor eenmalige aanmelding (SSO) opgeven. Vul uw Oracle SSO-referenties in vanuit de voorwaarden.
Let op 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 WebLogic Server, JDK en besturingssysteemversie.
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 ?
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 Toegangsbeheerconsole maken.
Selecteer Volgende om het DNS-deelvenster weer te geven.
Klik op Volgende om het deelvenster Database weer te geven.
Gebruik de volgende stappen om een databaseverbinding te configureren met behulp van een beheerde identiteit:
- Voor Verbinding maken met database?, selecteert u Ja.
- Onder Verbindingsinstellingen, open de vervolgkeuzelijst bij Databasetype kiezen en selecteer Microsoft SQL Server (met ondersteuning voor verbinding zonder wachtwoord).
- Voer voor JNDI-naam jdbc/WebLogicCafeDB in.
- Voer voor DataSource-verbindingsreeks de verbindingsreeks in die u in de laatste sectie hebt verkregen.
- Selecteer Wachtwoordloze gegevensbronverbinding gebruiken.
-
Voor door de gebruiker toegewezen beheerde identiteit selecteert u de beheerde identiteit die u in de vorige stap hebt gemaakt. In dit voorbeeld is de naam
myManagedIdentity
. - Selecteer Toevoegen.
De sectie Verbindingsinstellingen moet er als volgt uitzien:
Gebruik de volgende stappen om de implementatie te voltooien:
- 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.
Notitie
Als uw organisatie vereist dat u de workload in een virtueel bedrijfsnetwerk implementeert zonder openbare IP-adressen toegestaan, kunt u de interne Load Balancer-service kiezen. Als u de interne Load Balancer-service wilt configureren, gebruikt u de volgende stappen op het tabblad Taakverdeling :
Selecteer Standard Load Balancer Service voor opties voor taakverdeling.
Selecteer Interne load balancer gebruiken.
Voeg de volgende rijen toe aan de tabel:
Servicenaamvoorvoegsel Doel Poort wls-admin-internal
admin-server
7001 wls-cluster-internal
cluster-1
8001
Het tabblad Taakverdeling moet er als volgt uitzien:
Na de implementatie kunt u de toegangs-URL's van de beheerserver en het cluster vinden vanuit de uitvoer, gelabeld adminConsoleExternalUrl en clusterExternalUrl.
De uitvoer van de implementatie onderzoeken
Gebruik de stappen in deze sectie om te controleren of de implementatie is geslaagd.
Als u bent weggenavigeerd van de De implementatie is bezig pagina, laten de volgende stappen zien 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 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.
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.
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.
De waarde shellCmdtoOutputWlsImageProperties is de base64-tekenreeks van de eigenschappen van het WDT-model die worden gebruikt om de containerimage te bouwen. Sla deze waarde opzij voor later gebruik.
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.
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 uit te rollen met behulp van een hulpimage.
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 bekeken.
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 succesvol worden gegenereerd en zich bevinden op $BASE_DIR/weblogic-on-azure/javaee/weblogic-cafe/target/weblogic-cafe.war. Als u het pakket niet ziet, moet u het probleem oplossen voordat u doorgaat.
Azure Container Registry gebruiken om een hulpafbeelding te maken
In dit gedeelte wordt getoond hoe u een hulpafbeelding 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 Hulpafbeeldingen in de Oracle-documentatie voor meer informatie over hulpafbeeldingen.
Voor deze sectie is een Linux-terminal vereist waarop Azure CLI en kubectl zijn geïnstalleerd.
Gebruik de volgende stappen om de afbeelding 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 stappen om de verbinding met de gegevensbron te configureren.
Gebruik de volgende stappen om het JDBC-stuurprogramma van Microsoft SQL Server en de Azure Identity Extension te downloaden en te installeren waarmee databaseverbindingen worden ingeschakeld met behulp van Azure Managed Identity.
Gebruik de volgende commando's om het JDBC-stuurprogramma van Microsoft SQL Server te downloaden en te installeren naar
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 de volgende opdrachten om de Azure Identity Extension te installeren voor
wlsdeploy/classpathLibraries
:curl -LO https://github.com/oracle/weblogic-azure/raw/refs/heads/main/weblogic-azure-aks/src/main/resources/azure-identity-extensions.xml mvn dependency:copy-dependencies -f azure-identity-extensions.xml mkdir -p ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/azureLibraries mkdir ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson # fix JARs conflict issue in GA images, put jackson libraries to PRE_CLASSPATH to upgrade the existing libs. mv target/dependency/jackson-annotations-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/ mv target/dependency/jackson-core-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/ mv target/dependency/jackson-databind-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/ mv target/dependency/jackson-dataformat-xml-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/ # Thoes jars will be appended to CLASSPATH mv target/dependency/*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/azureLibraries/
Gebruik de volgende opdrachten om resources op te schonen:
rm target -f -r rm azure-identity-extensions.xml
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>
Je zou een uitvoer moeten zien die lijkt op 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
Exporteer het databaseverbindingsmodel en sla het op in ${BASE_DIR}/mystaging/models/dbmodel.yaml. Met de volgende stappen wordt het databaseconfiguratiemodel uit de ConfigMap
sample-domain1-wdt-config-map
geëxtraheerd. De naam volgt het formaat<domain-uid>-wdt-config-map
, waar<domain-uid>
is ingesteld tijdens de implementatie van de aanbieding. Als u de standaardwaarde hebt gewijzigd, vervangt u deze door uw eigen domein-UID.De gegevenssleutel is >. Gebruik de volgende opdracht om de naam van het databasegeheim op te halen:
export WLS_DOMAIN_UID=sample-domain1 export WLS_DOMAIN_NS=${WLS_DOMAIN_UID}-ns export DB_K8S_SECRET_NAME=$(kubectl get secret -n ${WLS_DOMAIN_NS} | grep "ds-secret" | awk '{print $1}')
Pak vervolgens het databasemodel uit met deze opdracht:
kubectl get configmap sample-domain1-wdt-config-map -n ${WLS_DOMAIN_NS} -o=jsonpath="{['data']['${DB_K8S_SECRET_NAME}\.yaml']}" >${BASE_DIR}/mystaging/models/dbmodel.yaml
Gebruik ten slotte de volgende opdracht om de inhoud van dbmodel.yaml te controleren.
cat ${BASE_DIR}/mystaging/models/dbmodel.yaml
De uitvoer van deze opdracht moet lijken op de volgende structuur:
# Copyright (c) 2020, 2021, Oracle and/or its affiliates. # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. resources: JDBCSystemResource: jdbc/WebLogicCafeDB: Target: 'cluster-1' JdbcResource: JDBCDataSourceParams: JNDIName: [ jdbc/WebLogicCafeDB ] GlobalTransactionsProtocol: OnePhaseCommit JDBCDriverParams: DriverName: com.microsoft.sqlserver.jdbc.SQLServerDriver URL: '@@SECRET:ds-secret-sqlserver-1727147748:url@@' PasswordEncrypted: '@@SECRET:ds-secret-sqlserver-1727147748:password@@' Properties: user: Value: '@@SECRET:ds-secret-sqlserver-1727147748:user@@' JDBCConnectionPoolParams: TestTableName: SQL SELECT 1 TestConnectionsOnReserve: true
Gebruik de volgende opdrachten om een archiefbestand 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 op te schonen:
rm weblogic-deploy.zip
Gebruik de volgende opdrachten om een Docker-bestand te maken:
cd ${BASE_DIR}/mystaging cat <<EOF >Dockerfile FROM busybox ARG AUXILIARY_IMAGE_PATH=/auxiliary ARG USER=oracle ARG USERID=1000 ARG GROUP=root ENV AUXILIARY_IMAGE_PATH=\${AUXILIARY_IMAGE_PATH} RUN adduser -D -u \${USERID} -G \$GROUP \$USER COPY --chown=\$USER:\$GROUP ./ \${AUXILIARY_IMAGE_PATH}/ USER \$USER EOF
Voer de
az acr build
opdracht uit met ${BASE_DIR}/mystaging/Dockerfile, zoals wordt weergegeven in het volgende voorbeeld:export ACR_NAME=<value-from-clipboard> export IMAGE="wlsaks-auxiliary-image:1.0"
Gebruik de volgende opdrachten om de faseringsbestanden te controleren:
cd ${BASE_DIR}/mystaging find -maxdepth 2 -type f -print
Deze opdrachten produceren uitvoer die vergelijkbaar is met het volgende voorbeeld:
./models/model.properties ./models/model.yaml ./models/appmodel.yaml ./models/dbmodel.yaml ./models/archive.zip ./Dockerfile ./weblogic-deploy/VERSION.txt ./weblogic-deploy/LICENSE.txt
Bouw de afbeelding met
az acr build
, zoals getoond in het volgende voorbeeld:az acr build -t ${IMAGE} --build-arg AUXILIARY_IMAGE_PATH=/auxiliary -r ${ACR_NAME} --platform linux/amd64 .
Wanneer u de image met succes hebt gebouwd, lijkt de uitvoer op het volgende voorbeeld:
... Step 1/9 : FROM busybox latest: Pulling from library/busybox Digest: sha256:9ae97d36d26566ff84e8893c64a6dc4fe8ca6d1144bf5b87b2b85a32def253c7 Status: Image is up to date for busybox:latest ---> 65ad0d468eb1 Step 2/9 : ARG AUXILIARY_IMAGE_PATH=/auxiliary ---> Running in 1f8f4e82ccb6 Removing intermediate container 1f8f4e82ccb6 ---> 947fde618be9 Step 3/9 : ARG USER=oracle ---> Running in dda021591e41 Removing intermediate container dda021591e41 ---> f43d84be4517 Step 4/9 : ARG USERID=1000 ---> Running in cac4df6dfd13 Removing intermediate container cac4df6dfd13 ---> e5513f426c74 Step 5/9 : ARG GROUP=root ---> Running in 8fec1763270c Removing intermediate container 8fec1763270c ---> 9ef233dbe279 Step 6/9 : ENV AUXILIARY_IMAGE_PATH=${AUXILIARY_IMAGE_PATH} ---> Running in b7754f58157a Removing intermediate container b7754f58157a ---> 4a26a97eb572 Step 7/9 : RUN adduser -D -u ${USERID} -G $GROUP $USER ---> Running in b6c1f1a81af1 Removing intermediate container b6c1f1a81af1 ---> 97d3e5ad7540 Step 8/9 : COPY --chown=$USER:$GROUP ./ ${AUXILIARY_IMAGE_PATH}/ ---> 21088171876f Step 9/9 : USER $USER ---> Running in 825e0abc9f6a Removing intermediate container 825e0abc9f6a ---> b81d6430fcda Successfully built b81d6430fcda Successfully tagged wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0 2024/08/28 03:06:19 Successfully executed container: build 2024/08/28 03:06:19 Executing step ID: push. Timeout(sec): 3600, Working directory: '', Network: '' 2024/08/28 03:06:19 Pushing image: wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0, attempt 1 The push refers to repository [wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image] ee589b3cda86: Preparing c1fd1adab3b9: Preparing d51af96cf93e: Preparing c1fd1adab3b9: Pushed d51af96cf93e: Pushed ee589b3cda86: Pushed 1.0: digest: sha256:c813eb75576eb07a179c3cb4e70106ca7dd280f933ab33a2f6858de673b12eac size: 946 2024/08/28 03:06:21 Successfully pushed image: wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0 2024/08/28 03:06:21 Step ID: build marked as successful (elapsed time in seconds: 8.780235) 2024/08/28 03:06:21 Populating digests for step ID: build... 2024/08/28 03:06:22 Successfully populated digests for step ID: build 2024/08/28 03:06:22 Step ID: push marked as successful (elapsed time in seconds: 1.980158) 2024/08/28 03:06:22 The following dependencies were found: 2024/08/28 03:06:22 - image: registry: wlsaksacru6jyly7kztoqu.azurecr.io repository: wlsaks-auxiliary-image tag: "1.0" digest: sha256:c813eb75576eb07a179c3cb4e70106ca7dd280f933ab33a2f6858de673b12eac runtime-dependency: registry: registry.hub.docker.com repository: library/busybox tag: latest digest: sha256:9ae97d36d26566ff84e8893c64a6dc4fe8ca6d1144bf5b87b2b85a32def253c7 git: {} Run ID: ca1 was successful after 14s
De afbeelding wordt na een geslaagde build naar ACR geüpload.
U kunt
az acr repository show
draaien om te testen of het image naar de externe opslagplaats is gepusht, zoals hieronder weergegeven in het volgende voorbeeld:az acr repository show --name ${ACR_NAME} --image ${IMAGE}
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 hulpafbeelding toepassen
In de vorige stappen hebt u de hulpafbeelding gemaakt, inclusief modellen en WDT. Pas de hulpimage toe op het WebLogic Server-cluster door de volgende stappen te volgen.
Pas de hulpafbeelding 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 dekubectl patch
hulpafbeelding toe te passen op het domein CRD volgens 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)) export ACR_LOGIN_SERVER=$(az acr show --name ${ACR_NAME} --query "loginServer" --output tsv) cat <<EOF >patch-file.json [ { "op": "replace", "path": "/spec/restartVersion", "value": "${VERSION}" }, { "op": "add", "path": "/spec/configuration/model/auxiliaryImages", "value": [{"image": "$ACR_LOGIN_SERVER/$IMAGE", "imagePullPolicy": "IfNotPresent", "sourceModelHome": "/auxiliary/models", "sourceWDTInstallHome": "/auxiliary/weblogic-deploy"}] }, { "op": "remove", "path": "/spec/configuration/model/configMap" } ] EOF kubectl -n ${WLS_DOMAIN_NS} patch domain ${WLS_DOMAIN_UID} \ --type=json \ --patch-file patch-file.json
Aangezien de databaseverbinding is geconfigureerd in de hulpafbeelding, voert u de volgende opdracht uit om de ConfigMap te verwijderen:
kubectl delete configmap sample-domain1-wdt-config-map -n ${WLS_DOMAIN_NS}
Voordat u doorgaat, wacht u totdat de volgende opdracht de volgende uitvoer produceert voor de beheerserver en beheerde servers:
kubectl get pod -n ${WLS_DOMAIN_NS} -w
NAME READY STATUS RESTARTS AGE
sample-domain1-admin-server 1/1 Running 0 20m
sample-domain1-managed-server1 1/1 Running 0 19m
sample-domain1-managed-server2 1/1 Running 0 18m
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:
- U zou eerst de
sample-domain1-introspector
moeten zien draaien. 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:
Plak de waarde adminConsoleExternalUrl in de adresbalk van een webbrowser met internetverbinding. U ziet nu het vertrouwde aanmeldingsscherm van de WebLogic Server-beheerconsole.
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, 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 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 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.
Inzicht in de
context-path
waarde van de voorbeeld-app die u hebt geïmplementeerd. Als u de aanbevolen voorbeeld-app hebt uitgerold, is decontext-path
weblogic-cafe
.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, 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.
Azure Kubernetes Service