Distribuera ett Java-program med WebLogic Server i ett AKS-kluster (Azure Kubernetes Service)
Den här artikeln visar hur du:
- Kör ditt Java-program på Oracle WebLogic Server (WLS).
- Skapa ett WebLogic Server-kluster på AKS med hjälp av ett Azure Marketplace-erbjudande.
- Skapa en Docker-avbildning för program som innehåller WDT-modeller (WebLogic Deploy Tooling).
- Distribuera det containerbaserade programmet till WebLogic Server-klustret på AKS med anslutning till Microsoft Azure SQL.
Den här artikeln använder Azure Marketplace-erbjudandet för WebLogic Server för att påskynda din resa till AKS. Erbjudandet etablerar automatiskt flera Azure-resurser, inklusive följande resurser:
- En Azure Container Registry-instans
- Ett AKS-kluster
- En Ingresskontrollant för Azure App Gateway (AGIC)
- WebLogic Kubernetes-operatorn
- En containeravbildning inklusive WebLogic-körningen
- Ett WebLogic Server-kluster utan program
Sedan introducerar artikeln att skapa en avbildning för att uppdatera WebLogic Server-klustret. Avbildningen innehåller program- och WDT-modeller.
Om du föredrar en mindre automatiserad metod för att distribuera WebLogic på AKS kan du läsa den stegvisa vägledningen som ingår i den officiella dokumentationen från Oracle för Azure Kubernetes Service.
Om du är intresserad av att ge feedback eller arbeta nära dina migreringsscenarier med teknikteamet som utvecklar WebLogic på AKS-lösningar, fyller du i den här korta undersökningen om WebLogic-migrering och inkluderar din kontaktinformation. Teamet med programchefer, arkitekter och ingenjörer kommer snabbt att kontakta dig för att initiera ett nära samarbete.
Förutsättningar
- Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
- Kontrollera att den Azure-identitet som du använder för att logga in och slutföra den här artikeln har rollen Ägare i den aktuella prenumerationen eller rollen Deltagare och Administratör för användaråtkomst i den aktuella prenumerationen. En översikt över Azure-roller finns i Vad är rollbaserad åtkomstkontroll i Azure (Azure RBAC)? Mer information om de specifika roller som krävs av WLS i AKS finns i Inbyggda Roller i Azure.
- Ha autentiseringsuppgifterna för ett Oracle-konto för enkel inloggning (SSO). Information om hur du skapar ett finns i Skapa ditt Oracle-konto.
- Godkänn licensvillkoren för WebLogic Server.
- Besök Oracle Container Registry och logga in.
- Om du har en stödrättighet väljer du Mellanprogram och söker sedan efter och väljer weblogic_cpu.
- Om du inte har någon stödrättighet från Oracle väljer du Mellanprogram och söker sedan efter och väljer weblogic.
- Godkänn licensavtalet.
Kommentar
Skaffa en supporträttighet från Oracle innan du går till produktion. Om du inte gör det körs osäkra avbildningar som inte har korrigerats för kritiska säkerhetsbrister. Mer information om Oracles kritiska korrigeringsuppdateringar finns i Viktiga uppdateringsuppdateringar, säkerhetsaviseringar och bulletiner från Oracle.
- Förbered en lokal dator med Unix-liknande operativsystem installerat – till exempel Ubuntu, Azure Linux, macOS Windows-undersystem för Linux.
- Azure CLI. Använd
az --version
för att testa om az fungerar. Det här dokumentet har testats med version 2.55.1. - kubectl. Använd
kubectl version
för att testa om kubectl fungerar. Det här dokumentet testades med version v1.21.2. - Ett Java Development Kit (JDK). I artikeln uppmanas du att installera Microsoft Build of OpenJDK 11. Kontrollera att miljövariabeln
JAVA_HOME
är korrekt inställd i de gränssnitt där du kör kommandona. - Maven 3.5.0 eller senare.
- Kontrollera att zip/unzip-verktyget är installerat. Använd
zip/unzip -v
för att testa omzip/unzip
fungerar.
- Azure CLI. Använd
Skapa en Azure SQL Database
Det här avsnittet skapar en Azure SQL Database med Hjälp av Microsoft Entra-autentisering, med hanterad identitetsanslutning aktiverad.
Skapa en resursgrupp
Skapa en resursgrupp med az group create. Eftersom resursgrupper måste vara unika i en prenumeration väljer du ett unikt namn. Ett enkelt sätt att få unika namn är att använda en kombination av dina initialer, dagens datum och någon identifierare. Exempel: abc1228rg
I det här exemplet skapas en resursgrupp med namnet abc1228rg
på platsen eastus
:
export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
Skapa en databasserver och en databas
Skapa en server med kommandot az sql server create . I det här exemplet skapas en server med namnet myazuresql20130213
med administratörsanvändare azureuser
och administratörslösenord. Ersätt <your-password>
med ditt lösenord. Mer information finns i Snabbstart: Skapa en enkel databas – Azure SQL Database.
Kommentar
Även om du använder ett användarnamn och lösenord här exponeras inte dessa autentiseringsuppgifter utanför databasen. Anslutningen mellan programskiktet och databasen skyddas med hanterade identiteter.
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
Skapa en databas med kommandot az sql db create på den serverlösa beräkningsnivån.
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
Konfigurera en Microsoft Entra-administratör
Information om hur Azure SQL Server interagerar med hanterade identiteter finns i Ansluta med Microsoft Entra-autentisering.
Använd följande steg för att konfigurera ett Microsoft Entra-administratörskonto till Azure SQL Server från Azure Portal:
- Öppna Azure SQL Server-instansen
myazuresql20130213
i Azure Portal . - Välj Inställningar och välj sedan Microsoft Entra-ID. På sidan Microsoft Entra-ID väljer du Ange administratör.
- På sidan Lägg till administratör söker du efter en användare, väljer den användare eller grupp som ska vara administratör och väljer sedan Välj.
- Längst upp på sidan Microsoft Entra-ID väljer du Spara. För Microsoft Entra-användare och -grupper visas objekt-ID bredvid administratörsnamnet.
- Det kan ta flera minuter att ändra administratören. Sedan visas den nya administratören i rutan Microsoft Entra-ID .
Skapa en användartilldelad hanterad identitet
I Azure CLI skapar du sedan en identitet i din prenumeration med hjälp av kommandot az identity create . Du använder den här hanterade identiteten för att ansluta till databasen.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
Skapa en databasanvändare för din hanterade identitet
Anslut nu som Microsoft Entra-administratörsanvändare till din Azure SQL-databas från Azure Portal och skapa en användare för din hanterade identitet.
Skapa först en brandväggsregel för åtkomst till Azure SQL-servern från portalen, enligt följande steg:
- Öppna Azure SQL Server-instansen
myazuresql20130213
i Azure Portal . - Välj Säkerhet och sedan Nätverk.
- Under Brandväggsregler väljer du Lägg till klientens IPV4 IP-adress.
- Under Undantag väljer du Tillåt Att Azure-tjänster och resurser får åtkomst till den här servern.
- Välj Spara.
När brandväggsregeln har skapats kan du komma åt Azure SQL-servern från portalen. Använd följande steg för att skapa en databasanvändare:
Välj Inställningar och välj sedan SQL-databaser. Välj
mysingledatabase20230213
.Välj Frågeredigeraren. På sidan Välkommen till SQL Database Power Query-redigeraren, under Active Directory-autentisering, hittar du ett meddelande som
Logged in as user@contoso.com
.Välj Fortsätt som user@contoso.com, där
user
är ditt AD-administratörskontonamn.När du har loggat in kör du följande kommandon i Fråge 1-redigeraren för att skapa en databasanvändare för hanterad identitet
myManagedIdentity
.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
I frågeredigeraren väljer du Kör för att köra SQL-kommandona.
Om kommandona har slutförts kan du hitta ett meddelande med texten
Query succeeded: Affected rows: 0
.
Använd följande kommando för att hämta anslutningssträng som du använder i nästa avsnitt:
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}
Skapa ett schema för exempelprogrammet
Välj Ny fråga och kör sedan följande fråga i frågeredigeraren:
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);
Efter en lyckad körning bör du se meddelandet Fråga lyckades: Berörda rader: 1. Om du inte ser det här meddelandet kan du felsöka och lösa problemet innan du fortsätter.
Du kan fortsätta att distribuera WLS i AKS-erbjudandet.
Distribuera WebLogic Server på AKS
Använd följande steg för att hitta WebLogic Server i AKS-erbjudandet och fylla i fönstret Grundläggande :
I sökfältet överst i Azure Portal anger du weblogic. I de automatiska sökresultaten går du till avsnittet Marketplace och väljer WebLogic Server på AKS.
Du kan också gå direkt till WebLogic Server på AKS-erbjudandet .
På erbjudandesidan väljer du Skapa.
I fönstret Grundläggande kontrollerar du att värdet som visas i fältet Prenumeration är samma som du loggade in på i Azure. Kontrollera att du har de roller som anges i avsnittet för förhandskrav för prenumerationen.
Du måste distribuera erbjudandet i en tom resursgrupp. I fältet Resursgrupp väljer du Skapa ny och fyller sedan i ett värde för resursgruppen. Eftersom resursgrupper måste vara unika i en prenumeration väljer du ett unikt namn. Ett enkelt sätt att få unika namn är att använda en kombination av dina initialer, dagens datum och någon identifierare – till exempel
ejb0723wls
.Under Instansinformation väljer du regionen för distributionen. En lista över Azure-regioner där AKS är tillgängligt finns i TILLGÄNGLIGHET för AKS-regioner.
Under Autentiseringsuppgifter för WebLogic lämnar du standardvärdet för Användarnamn för WebLogic-administratör.
Fyll i
wlsAksCluster2022
för Lösenordet för WebLogic-administratören. Använd samma värde för krypteringsfälten för bekräftelse och lösenord för WebLogic Model .Välj Nästa.
Använd följande steg för att starta distributionsprocessen:
Rulla till avsnittet med etiketten Ange ett Oracle-konto för enkel inloggning (SSO). Fyll i dina Oracle SSO-autentiseringsuppgifter från förhandsvillkoren.
Observera stegen i informationsrutan som börjar med Innan du går vidare måste du godkänna Oracles standardvillkor och -begränsningar.
Beroende på om Oracle SSO-kontot har en Oracle-stödrättighet eller inte väljer du lämpligt alternativ för Välj typ av WebLogic Server-avbildningar. Om kontot har en stödrättighet väljer du Korrigerade WebLogic Server-avbildningar. Annars väljer du Allmänna WebLogic Server-avbildningar.
Lämna värdet i Välj önskad kombination av WebLogic Server... som standardvärde. Du har ett brett utbud av alternativ för WebLogic Server, JDK och OS-version.
I avsnittet Program bredvid Distribuera ett program?, väljer du Nej.
Följande steg gör det så att WebLogic Server-administratörskonsolen och exempelappen exponeras för det offentliga Internet med ett inbyggt Application Gateway-tillägg. Mer information finns i Vad är Application Gateway Ingress Controller?
Välj Nästa för att se TLS/SSL-fönstret .
Välj Nästa för att se fönstret Belastningsutjämning .
Bredvid Alternativ för belastningsutjämning väljer du Application Gateway-ingresskontrollant.
Under Application Gateway-ingresskontrollanten bör du se alla fält ifyllda med standardvärdena för virtuellt nätverk och undernät. Låt standardvärdena vara kvar.
För Skapa ingress för administrationskonsolen väljer du Ja.
Välj Nästa för att se DNS-fönstret .
Välj Nästa för att se fönstret Databas .
Använd följande steg för att konfigurera en databasanslutning med hjälp av en hanterad identitet:
- Välj Ja för Anslut till databas?.
- Under Anslutningsinställningar för Välj databastyp öppnar du listrutan och väljer sedan Microsoft SQL Server (med stöd för lösenordslös anslutning).
- För JNDI-namn anger du jdbc/WebLogicCafeDB.
- För DataSource-anslutningssträng anger du anslutningssträng du fick i det senaste avsnittet.
- Välj Använd lösenordslös datakällaanslutning.
- För Användartilldelad hanterad identitet väljer du den hanterade identitet som du skapade i föregående steg. I det här exemplet är
myManagedIdentity
dess namn . - Markera Lägga till.
Avsnittet Anslutningsinställningar bör se ut som på följande skärmbild:
Slutför distributionen med hjälp av följande steg:
- Välj Granska + skapa. Kontrollera att verifieringen inte misslyckas. Om det misslyckas kan du åtgärda eventuella valideringsproblem och sedan välja Granska + skapa igen.
- Välj Skapa.
- Spåra förloppet för distributionen på sidan Distribution pågår .
Beroende på nätverksförhållanden och annan aktivitet i den valda regionen kan distributionen ta upp till 50 minuter att slutföra.
Kommentar
Om din organisation kräver att du distribuerar arbetsbelastningen i ett virtuellt företagsnätverk utan att några offentliga IP-adresser tillåts kan du välja den interna Load Balancer-tjänsten. Om du vill konfigurera den interna load balancer-tjänsten använder du följande steg på fliken Belastningsutjämning :
För Alternativ för belastningsutjämning väljer du Standard Load Balancer Service.
Välj Använd intern lastbalanserare.
Lägg till följande rader i tabellen:
Prefix för tjänstnamn Mål Port wls-admin-internal
admin-server
7001 wls-cluster-internal
cluster-1
8001
Fliken Belastningsutjämning bör se ut som på följande skärmbild:
Efter distributionen kan du hitta åtkomst-URL:er för administratörsservern och klustret från utdata, med etiketten adminConsoleExternalUrl och clusterExternalUrl.
Granska distributionsutdata
Använd stegen i det här avsnittet för att kontrollera att distributionen lyckades.
Om du har navigerat bort från sidan Distribution pågår visar följande steg hur du kommer tillbaka till den sidan. Om du fortfarande är på sidan som visar Att distributionen är klar kan du gå vidare till steg 5 efter nästa skärmbild.
I hörnet på en Azure Portal sida väljer du hamburgermenyn och väljer Resursgrupper.
I rutan med texten Filtrera för ett fält anger du de första tecknen i resursgruppen som du skapade tidigare. Om du följde den rekommenderade konventionen anger du dina initialer och väljer sedan lämplig resursgrupp.
I navigeringsfönstret går du till avsnittet Inställningar och väljer Distributioner. Du ser en ordnad lista över distributionerna till den här resursgruppen, med den senaste först.
Rulla till den äldsta posten i den här listan. Den här posten motsvarar den distribution som du startade i föregående avsnitt. Välj den äldsta distributionen enligt följande skärmbild.
I navigeringsfönstret väljer du Utdata. Den här listan visar utdatavärdena från distributionen. Användbar information ingår i utdata.
Värdet adminConsoleExternalUrl är den fullständigt kvalificerade, offentliga Internet synliga länken till WebLogic Server-administratörskonsolen för det här AKS-klustret. Välj kopieringsikonen bredvid fältvärdet för att kopiera länken till Urklipp. Spara det här värdet åt sidan för senare.
Värdet clusterExternalUrl är den fullständigt kvalificerade, offentliga Internet-synliga länken till exempelappen som distribueras i WebLogic Server i det här AKS-klustret. Välj kopieringsikonen bredvid fältvärdet för att kopiera länken till Urklipp. Spara det här värdet åt sidan för senare.
Värdet shellCmdtoOutputWlsImageModelYaml är base64-strängen för den WDT-modell som används för att skapa containeravbildningen. Spara det här värdet åt sidan för senare.
Värdet shellCmdtoOutputWlsImageProperties är base64-strängen för de WDT-modellegenskaper som används för att skapa containeravbildningen. Spara det här värdet åt sidan för senare.
ShellCmdtoConnectAks-värdet är Azure CLI-kommandot för att ansluta till det här specifika AKS-klustret.
De andra värdena i utdata ligger utanför omfånget för den här artikeln, men beskrivs i detalj i användarhandboken för WebLogic i AKS.
Konfigurera och distribuera exempelprogrammet
Erbjudandet etablerar WebLogic Server-klustret via modellen i avbildningen. WebLogic Server-klustret har för närvarande inget distribuerat program.
Det här avsnittet uppdaterar WebLogic Server-klustret genom att distribuera ett exempelprogram med hjälp av en extra avbildning.
Kolla in programmet
I det här avsnittet klonar du exempelkoden för den här guiden. Exemplet finns på GitHub på lagringsplatsen weblogic-on-azure i mappen javaee/weblogic-café/ . Här är programmets filstruktur.
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
Använd följande kommandon för att klona lagringsplatsen:
# 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
Om du ser ett meddelande om att vara i "frånkopplat HEAD"-tillstånd är det här meddelandet säkert att ignorera. Det betyder bara att du checkade ut en tagg.
Använd följande kommando för att skapa javaee/weblogic-café/:
mvn clean package --file $BASE_DIR/weblogic-on-azure/javaee/weblogic-cafe/pom.xml
Paketet ska genereras och finnas på $BASE_DIR/weblogic-on-azure/javaee/weblogic-café/target/weblogic-café.war. Om du inte ser paketet måste du felsöka och lösa problemet innan du fortsätter.
Använda Azure Container Registry för att skapa en extra avbildning
Stegen i det här avsnittet visar hur du skapar en extra avbildning. Den här avbildningen innehåller följande komponenter:
- Modell i bildmodellfiler
- Ditt program
- JDBC-drivrutinsarkivfilen (Java Database Connectivity)
- Installationen av WebLogic Deploy Tooling
En extra avbildning är en Docker-containeravbildning som innehåller din app och konfiguration. WebLogic Kubernetes-operatorn kombinerar din extra avbildning med domain.spec.image
i AKS-klustret som innehåller WebLogic Server, JDK och operativsystemet. Mer information om extra bilder finns i Hjälpbilder i Oracle-dokumentationen.
Det här avsnittet kräver en Linux-terminal med Azure CLI och kubectl installerat.
Använd följande steg för att skapa avbildningen:
Använd följande kommandon för att skapa en katalog för att mellanlagra modellerna och programmet:
mkdir -p ${BASE_DIR}/mystaging/models cd ${BASE_DIR}/mystaging/models
Kopiera shellCmdtoOutputWlsImageModelYaml-värdet som du sparade från distributionsutdata, klistra in det i Bash-fönstret och kör kommandot. Kommandot bör se ut ungefär som i följande exempel:
echo -e IyBDb3B5cmlna...Cgo= | base64 -d > model.yaml
Det här kommandot genererar en ${BASE_DIR}/mystaging/models/model.yaml-fil med innehåll som liknar följande exempel:
# 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"
På liknande sätt kopierar du värdet shellCmdtoOutputWlsImageProperties , klistrar in det i Bash-fönstret och kör kommandot. Kommandot bör se ut ungefär som i följande exempel:
echo -e IyBDb3B5cml...pFPTUK | base64 -d > model.properties
Det här kommandot genererar filen ${BASE_DIR}/mystaging/models/model.properties med innehåll som liknar följande exempel:
# 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
Använd följande steg för att skapa programmodellfilen.
Använd följande kommandon för att kopiera weblogic-café.war och spara det i 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
Använd följande kommandon för att skapa programmodellfilen med det innehåll som visas. Spara modellfilen till ${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
Använd följande steg för att konfigurera datakällans anslutning.
Följ stegen nedan för att ladda ned och installera Microsoft SQL Server JDBC-drivrutinen och Azure Identity Extension som möjliggör databasanslutningar med hjälp av Azure Managed Identity.
Använd följande kommandon för att ladda ned och installera Microsoft SQL Server JDBC-drivrutinen för att
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
Använd följande kommandon för att installera Azure Identity Extension på
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/
Använd följande kommandon för att rensa resurser:
rm target -f -r rm azure-identity-extensions.xml
Anslut till AKS-klustret genom att kopiera värdet shellCmdtoConnectAks som du sparade åt sidan tidigare, klistra in det i Bash-fönstret och sedan köra kommandot. Kommandot bör se ut ungefär som i följande exempel:
az account set --subscription <subscription>; az aks get-credentials \ --resource-group <resource-group> \ --name <name>
Du bör se utdata som liknar följande exempel. Om du inte ser dessa utdata kan du felsöka och lösa problemet innan du fortsätter.
Merged "<name>" as current context in /Users/<username>/.kube/config
Exportera databasanslutningsmodellen och spara den till ${BASE_DIR}/mystaging/models/dbmodel.yaml. Följande steg extraherar databaskonfigurationsmodellen från ConfigMap
sample-domain1-wdt-config-map
. Namnet följer formatet<domain-uid>-wdt-config-map
, där<domain-uid>
anges under erbjudandedistributionen. Om du har ändrat standardvärdet ersätter du det med ditt eget domän-UID.Datanyckeln är <db-secret-name.yaml>. Använd följande kommando för att hämta databasens hemliga namn:
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}')
Extrahera sedan databasmodellen med det här kommandot:
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
Använd slutligen följande kommando för att verifiera innehållet i dbmodel.yaml.
cat ${BASE_DIR}/mystaging/models/dbmodel.yaml
Utdata för det här kommandot bör likna följande struktur:
# 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
Använd följande kommandon för att skapa en arkivfil och ta sedan bort mappen wlsdeploy , som du inte behöver längre:
cd ${BASE_DIR}/mystaging/models zip -r archive.zip wlsdeploy rm -f -r wlsdeploy
Använd följande kommandon för att ladda ned och installera WebLogic Deploy Tooling (WDT) i mellanlagringskatalogen och ta bort dess weblogic-deploy/bin/*.cmd-filer , som inte används i UNIX-miljöer:
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
Använd följande kommando för att rensa WDT-installationsprogrammet:
rm weblogic-deploy.zip
Använd följande kommandon för att skapa en docker-fil:
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
az acr build
Kör kommandot med hjälp av ${BASE_DIR}/mystaging/Dockerfile, som du ser i följande exempel:export ACR_NAME=<value-from-clipboard> export IMAGE="wlsaks-auxiliary-image:1.0"
Använd följande kommandon för att dubbelkolla mellanlagringsfilerna:
cd ${BASE_DIR}/mystaging find -maxdepth 2 -type f -print
Dessa kommandon ger utdata som liknar följande exempel:
./models/model.properties ./models/model.yaml ./models/appmodel.yaml ./models/dbmodel.yaml ./models/archive.zip ./Dockerfile ./weblogic-deploy/VERSION.txt ./weblogic-deploy/LICENSE.txt
Skapa avbildningen med
az acr build
, som du ser i följande exempel:az acr build -t ${IMAGE} --build-arg AUXILIARY_IMAGE_PATH=/auxiliary -r ${ACR_NAME} --platform linux/amd64 .
När du skapar avbildningen ser utdata ut ungefär som i följande exempel:
... 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
Avbildningen skickas till ACR efter ett lyckat bygge.
Du kan köra
az acr repository show
för att testa om avbildningen skickas till fjärrlagringsplatsen, som du ser i följande exempel:az acr repository show --name ${ACR_NAME} --image ${IMAGE}
Det här kommandot bör generera utdata som liknar följande exempel:
{ "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 }
Använd extrabilden
I föregående steg skapade du den extra avbildningen, inklusive modeller och WDT. Använd den extra avbildningen på WebLogic Server-klustret med följande steg.
Använd den extra avbildningen genom att korrigera domänens anpassade resursdefinition (CRD) med kommandot
kubectl patch
.Den extra bilden definieras i
spec.configuration.model.auxiliaryImages
, enligt följande exempel: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
Använd följande kommandon för att öka
restartVersion
värdet och användakubectl patch
för att tillämpa den extra avbildningen på domänens CRD med hjälp av den definition som visas: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
Eftersom databasanslutningen har konfigurerats i den extra avbildningen kör du följande kommando för att ta bort ConfigMap:
kubectl delete configmap sample-domain1-wdt-config-map -n ${WLS_DOMAIN_NS}
Innan du fortsätter väntar du tills följande kommando genererar följande utdata för administratörsservern och hanterade servrar:
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
Det kan ta 5–10 minuter för systemet att nå det här tillståndet. Följande lista innehåller en översikt över vad som händer medan du väntar:
- Du bör se körningen
sample-domain1-introspector
först. Den här programvaran söker efter ändringar i domänens anpassade resurs så att den kan vidta nödvändiga åtgärder i Kubernetes-klustret. - När ändringar identifieras dödar domänens introspektor och startar nya poddar för att distribuera ändringarna.
- Därefter bör podden avslutas
sample-domain1-admin-server
och startas om. - Sedan bör du se de två hanterade servrarna avsluta och starta om.
- Endast när alla tre poddar visar
1/1 Running
tillståndet är det ok att fortsätta.
Verifiera funktionerna i distributionen
Använd följande steg för att verifiera distributionens funktioner genom att visa WebLogic Server-administratörskonsolen och exempelappen:
Klistra in värdet adminConsoleExternalUrl i adressfältet i en Internetansluten webbläsare. Du bör se den välbekanta inloggningsskärmen för WebLogic Server-administratörskonsolen.
Logga in med användarnamnet
weblogic
och lösenordet som du angav när du distribuerade WebLogic Server från Azure Portal. Kom ihåg att det här värdet ärwlsAksCluster2022
.I rutan Domänstruktur väljer du Tjänster.
Under Tjänsterna väljer du Datakällor.
I panelen Sammanfattning av JDBC-datakällor väljer du Övervakning. Skärmen bör se ut ungefär som i följande exempel. Datakällans tillstånd körs på hanterade servrar.
I rutan Domänstruktur väljer du Distributioner.
I tabellen Distributioner bör det finnas en rad. Namnet ska vara samma värde som
Application
värdet i filen appmodel.yaml . Välj namnet.Välj fliken Testning .
Välj weblogic-café.
I panelen Inställningar för weblogic-café väljer du fliken Testning .
+ Expandera ikonen bredvid weblogic-café. Skärmen bör se ut ungefär som i följande exempel. I synnerhet bör du se värden som liknar
http://sample-domain1-managed-server1:8001/weblogic-cafe/index.xhtml
i kolumnen Testpunkt .Kommentar
Hyperlänkarna i kolumnen Testpunkt kan inte väljas eftersom vi inte konfigurerade administratörskonsolen med den externa URL som den körs på. Den här artikeln visar administratörskonsolen för WebLogic Server bara som en demonstration. Använd inte WebLogic Server-administratörskonsolen för några varaktiga konfigurationsändringar när du kör WebLogic Server på AKS. Den molnbaserade designen av WebLogic Server på AKS kräver att alla varaktiga konfigurationer måste representeras i de första Docker-avbildningarna eller tillämpas på aks-klustret som körs med hjälp av CI/CD-tekniker, till exempel uppdatering av modellen, enligt beskrivningen i Oracle-dokumentationen.
Förstå värdet för
context-path
exempelappen som du distribuerade. Om du har distribuerat den rekommenderade exempelappen är dencontext-path
weblogic-cafe
.Skapa en fullständigt kvalificerad URL för exempelappen genom att lägga
context-path
till värdet till clusterExternalUrl . Om du har distribuerat den rekommenderade exempelappen bör den fullständigt kvalificerade URL:en vara ungefär somhttp://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/
.Klistra in den fullständigt kvalificerade URL:en i en Internetansluten webbläsare. Om du har distribuerat den rekommenderade exempelappen bör du se resultat som liknar följande skärmbild:
Rensa resurser
För att undvika Azure-avgifter bör du rensa onödiga resurser. När du inte längre behöver klustret använder du kommandot az group delete . Följande kommando tar bort resursgruppen, containertjänsten, containerregistret, databasen och alla relaterade resurser:
az group delete --name <resource-group-name> --yes --no-wait
az group delete --name <db-resource-group-name> --yes --no-wait
Nästa steg
Läs mer om att köra WebLogic Server på AKS eller virtuella datorer genom att följa dessa länkar:
Mer information om Oracle WebLogic-erbjudanden på Azure Marketplace finns i Oracle WebLogic Server på Azure. Dessa erbjudanden är alla Bring-Your-Own-License. De förutsätter att du redan har rätt licenser med Oracle och är korrekt licensierade för att köra erbjudanden i Azure.
Azure Kubernetes Service