Distribuire un'applicazione Java con WebLogic Server in un cluster del servizio Azure Kubernetes
Articolo
Questo articolo illustra come:
Eseguire l'applicazione Java in Oracle WebLogic Server (WLS).
Configurare un cluster WebLogic Server nel servizio Azure Kubernetes usando un'offerta di Azure Marketplace.
Creare un'immagine Docker dell'applicazione che include modelli WdT (WebLogic Deploy Tooling).
Distribuire l'applicazione in contenitori nel cluster WebLogic Server nel servizio Azure Kubernetes con connessione a Microsoft Azure SQL.
Questo articolo usa l'offerta di Azure Marketplace per WebLogic Server per accelerare il percorso verso il servizio Azure Kubernetes. L'offerta effettua automaticamente il provisioning di diverse risorse di Azure, incluse le risorse seguenti:
Un'istanza di Registro Azure Container
Un cluster del servizio Azure Kubernetes
Istanza del controller di ingresso (AGIC) del gateway applicazione di Azure
Operatore WebLogic Kubernetes
Immagine del contenitore che include il runtime WebLogic
Un cluster WebLogic Server senza un'applicazione
L'articolo presenta quindi la creazione di un'immagine per aggiornare il cluster WebLogic Server. L'immagine fornisce l'applicazione e i modelli WDT.
Se si preferisce un approccio meno automatizzato alla distribuzione di WebLogic nel servizio Azure Kubernetes, vedere le istruzioni dettagliate incluse nella documentazione ufficiale del servizio Oracle per Azure Kubernetes.
Se si è interessati a fornire commenti e suggerimenti o lavorare strettamente sugli scenari di migrazione con il team di progettazione che sviluppa WebLogic nelle soluzioni del servizio Azure Kubernetes, compilare questo breve sondaggio sulla migrazione di WebLogic e includere le informazioni di contatto. Il team di responsabili del programma, architetti e ingegneri si metterà immediatamente in contatto con l'utente per avviare una stretta collaborazione.
Se si dispone di un diritto di supporto, selezionare Middleware, quindi cercare e selezionare weblogic_cpu.
Se non si ha un diritto di supporto da Oracle, selezionare Middleware, quindi cercare e selezionare weblogic.
Accetta il Contratto di licenza
Nota
Ottenere un diritto di supporto da Oracle prima di passare all'ambiente di produzione. In caso contrario, l'esecuzione di immagini non sicure che non vengono applicate patch per errori di sicurezza critici. Per altre informazioni sugli aggiornamenti critici delle patch di Oracle, vedere Aggiornamenti critici delle patch, avvisi di sicurezza e bollettini di Oracle.
Preparare un computer locale con sistema operativo simile a Unix installato (ad esempio Ubuntu, Azure Linux, macOS, Sottosistema Windows per Linux).
kubectl. Usare kubectl version per verificare se kubectl funziona. Questo documento è stato testato con la versione 1.21.2.
Java Development Kit (JDK). L'articolo descrive come installare Microsoft Build di OpenJDK 11. Assicurarsi che la JAVA_HOME variabile di ambiente sia impostata correttamente nelle shell in cui si eseguono i comandi.
In questa sezione viene creata una database SQL di Azure usando l'autenticazione di Microsoft Entra, con la connessione identità gestita abilitata.
Creare un gruppo di risorse
Come prima cosa creare un gruppo di risorse con az group create. Poiché i gruppi di risorse devono essere univoci all'interno di una sottoscrizione, selezionare un nome univoco. Un modo semplice per avere nomi univoci consiste nell'usare una combinazione di iniziali, data odierna e identificatore. Ad esempio: abc1228rg. Questo esempio crea un gruppo di risorse denominato abc1228rg nel eastus percorso:
export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
Anche se in questo caso si usa un nome utente e una password, queste credenziali non vengono esposte all'esterno del database. La connessione tra il livello applicazione e il database è protetta con identità gestite.
Selezionare Impostazioni e quindi Microsoft Entra ID. Nella pagina Microsoft Entra ID selezionare Imposta amministratore.
Nella pagina Aggiungi amministratore cercare un utente, selezionare l'utente o il gruppo come amministratore e quindi selezionare Seleziona.
Nella parte superiore della pagina MICROSOFT Entra ID selezionare Salva. Per gli utenti e i gruppi di Microsoft Entra, l'ID oggetto viene visualizzato accanto al nome dell'amministratore.
Il processo di modifica dell'amministratore può richiedere alcuni minuti. Quindi, il nuovo amministratore viene visualizzato nella casella ID Microsoft Entra.
Creare un'identità gestita assegnata dall'utente
Successivamente, nell'interfaccia della riga di comando di Azure creare un'identità nella sottoscrizione usando il comando az identity create . Usare questa identità gestita per connettersi al database.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
Creare un utente di database per l'identità gestita
Connettersi ora come utente amministratore di Microsoft Entra al database SQL di Azure dal portale di Azure e creare un utente per l'identità gestita.
Creare prima di tutto una regola del firewall per accedere al server SQL di Azure dal portale, come illustrato nei passaggi seguenti:
In Regole del firewall selezionare Aggiungi l'indirizzo IP IPV4 del client.
In Eccezioni selezionare Consenti ai servizi e alle risorse di Azure di accedere a questo server.
Seleziona Salva.
Dopo aver creato la regola del firewall, è possibile accedere al server SQL di Azure dal portale. Usare la procedura seguente per creare un utente del database:
Selezionare Impostazioni e quindi database SQL. Selezionare mysingledatabase20230213.
Selezionare Editor di query. Nella pagina Benvenuto in database SQL Editor di query, in Autenticazione di Active Directory, trovare un messaggio come Logged in as user@contoso.com.
Selezionare Continua come user@contoso.com, dove user è il nome dell'account amministratore di Active Directory.
Dopo l'accesso, nell'editor di Query 1 eseguire i comandi seguenti per creare un utente del database per l'identità myManagedIdentitygestita .
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
Nell'editor di Query 1 selezionare Esegui per eseguire i comandi SQL.
Se i comandi sono stati completati correttamente, è possibile trovare un messaggio che indica Query succeeded: Affected rows: 0.
Usare il comando seguente per ottenere il stringa di connessione usato nella sezione successiva:
Nel passaggio Informazioni di base annotare i valori per Gruppo di risorse, Nome database, <nome-server>.database.windows.net, Account di accesso amministratore server e Password. Questo articolo fa riferimento al valore del Gruppo di risorse del database come <db-resource-group>.
Nel passaggio Rete impostare Metodo di connettività suEndpoint pubblico, Consenti alle risorse e ai servizi di Azure di accedere a questo server su Sì e Aggiungi indirizzo IP client corrente su Sì.
Nota
Il livello di elaborazione serverless selezionato per questo database consente di risparmiare denaro mettendo il database in sospensione durante i periodi di inattività. L'app di esempio avrà esito negativo se il database è in stato di sospensione all'avvio dell'app.
Per forzare la riattivazione del database, è possibile eseguire una query usando l'editor di query. Seguire la procedura descritta in Eseguire query sul database. Ecco una query di esempio: SELECT * FROM COFFEE;.
Selezionare Nuova query e quindi, nell'editor di query, eseguire la query seguente:
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);
Dopo un'esecuzione riuscita, verrà visualizzato il messaggio Query completata: Righe interessate: 1. Se questo messaggio non viene visualizzato, risolvere e risolvere il problema prima di procedere.
È possibile procedere alla distribuzione di WLS nell'offerta del servizio Azure Kubernetes.
Distribuire WebLogic Server nel servizio Azure Kubernetes
Usare la procedura seguente per trovare l'offerta WebLogic Server nel servizio Azure Kubernetes e compilare il riquadro Informazioni di base:
Nella barra di ricerca nella parte superiore del portale di Azure immettere weblogic. Nella sezione Marketplace dei risultati della ricerca suggeriti automaticamente selezionare WebLogic Server nel servizio Azure Kubernetes.
Nel riquadro Informazioni di base verificare che il valore visualizzato nel campo Sottoscrizione sia lo stesso a cui è stato eseguito l'accesso in Azure. Assicurarsi di avere i ruoli elencati nella sezione prerequisiti per la sottoscrizione.
È necessario distribuire l'offerta in un gruppo di risorse vuoto. Nel campo Gruppo di risorse selezionare Crea nuovo e quindi immettere un valore per il gruppo di risorse. Poiché i gruppi di risorse devono essere univoci all'interno di una sottoscrizione, selezionare un nome univoco. Un modo semplice per avere nomi univoci consiste nell'usare una combinazione di iniziali, data odierna e un identificatore, ad esempio ejb0723wls.
In Credentials for WebLogiclasciare il valore predefinito per Username for Amministratore WebLogic.
RiempirewlsAksCluster2022 per password per amministratore WebLogic. Usare lo stesso valore per i campi di conferma e Password per crittografia del modello WebLogic.
Selezionare Avanti.
Seguire questa procedura per avviare il processo di distribuzione:
Scorrere fino alla sezione etichettata Fornire un account Oracle Single Sign-On (SSO). Compilare le credenziali di Oracle SSO dalle precondizioni.
Assicurarsi di prendere nota della procedura descritta nella casella delle informazioni a partire da Prima di procedere, è necessario accettare le condizioni e le restrizioni standard Oracle.
A seconda che l'account Oracle SSO disponga o meno di un diritto di supporto Oracle, selezionare l'opzione appropriata per Selezionare il tipo di WebLogic Server Images. Se l'account ha un diritto di supporto, selezionare Immagini di WebLogic Server con patch. In caso contrario, selezionare Immagini generali di WebLogic Server.
Lasciare il valore in Selezionare la combinazione desiderata di WebLogic Server... nel valore predefinito. Sono disponibili un'ampia gamma di opzioni per WebLogic Server, JDK e versione del sistema operativo.
Nella sezione Applicazione, accanto a Distribuire un'applicazione?selezionare No.
I passaggi seguenti consentono quindi di esporre la console di amministrazione di WebLogic Server e l'app di esempio a Internet pubblico con un componente aggiuntivo in ingresso del gateway applicazione predefinito. Per altre informazioni, vedere Cos’è un controller di ingresso del gateway applicazione?
Selezionare Avanti per visualizzare il riquadro TLS/SSL.
Selezionare Avanti per visualizzare il riquadro Bilanciamento del carico.
Accanto a Opzioni di bilanciamento del carico selezionare Controller di ingresso del gateway applicazione.
In Controller di ingresso del gateway applicazione verranno visualizzati tutti i campi prepopolati con le impostazioni predefinite perRete virtuale eSubnet. Lasciare invariati i valori predefiniti.
Per Crea ingresso per la console di amministrazione selezionare Sì.
Selezionare Avanti per visualizzare il riquadro DNS.
Selezionare Avanti per visualizzare il riquadro Database.
Usare la procedura seguente per configurare una connessione di database usando un'identità gestita:
Per Connetti al database? selezionare Sì.
In Impostazioni di connessione, per Scegliere il tipo di database, aprire il menu a discesa e quindi selezionare Microsoft SQL Server (con supporto per la connessione senza password).
Per Nome JNDI immettere jdbc/WebLogicCafeDB.
Per Stringa di connessione DataSource immettere il stringa di connessione ottenuto nell'ultima sezione.
Selezionare Usa connessione origine dati senza password.
Per Identità gestita assegnata dall'utente selezionare l'identità gestita creata nel passaggio precedente. In questo esempio il nome è myManagedIdentity.
Selezionare Aggiungi.
La sezione Impostazioni di connessione dovrebbe essere simile alla schermata seguente:
Per configurare una connessione al database usando una password, seguire le istruzioni illustrate più avanti in questo articolo.
Per completare la distribuzione, seguire questa procedura:
Selezionare Rivedi e crea. Assicurarsi che la convalida non riesca. In caso di errore, correggere eventuali problemi di convalida e quindi selezionare nuovamente Rivedi e crea.
Seleziona Crea.
Tenere traccia dello stato di avanzamento della distribuzione nella pagina Distribuzione in corso.
A seconda delle condizioni di rete e di altre attività nell'area selezionata, il completamento della distribuzione potrebbe richiedere fino a 50 minuti.
Nota
Se l'organizzazione richiede di distribuire il carico di lavoro all'interno di una rete virtuale aziendale senza indirizzi IP pubblici consentiti, è possibile scegliere il servizio load Balancer interno. Per configurare il servizio load Balancer interno, seguire questa procedura nella scheda Bilanciamento del carico:
Per Opzioni di bilanciamento del carico selezionare Load Balancer Standard Servizio.
Selezionare Usa servizio di bilanciamento del carico interno.
Aggiungi le seguenti righe alla tabella:
Prefisso del nome del servizio
Destinazione
Porta
wls-admin-internal
admin-server
7001
wls-cluster-internal
cluster-1
8001
La scheda Bilanciamento del carico dovrebbe essere simile alla schermata seguente:
Dopo la distribuzione, è possibile trovare gli URL di accesso del server di amministrazione e del cluster dall'output, etichettati adminConsoleExternalUrl e clusterExternalUrl.
Esaminare l'output della distribuzione
Usare i passaggi descritti in questa sezione per verificare che la distribuzione abbia avuto esito positivo.
Se ci si è allontanati dalla pagina Distribuzione in corso, i passaggi seguenti mostrano come tornare a quella pagina. Se si è ancora nella pagina che mostra il messaggio Distribuzione completata, è possibile passare al passaggio 5 dopo lo screenshot successivo.
Nell’angolo di una pagina qualsiasi del portale di Microsoft Azure, selezionare il menu hamburger e selezionare Gruppi di risorse.
Nella casella con il testo Filtra per qualsiasi campoimmettere i primi caratteri del gruppo di risorse creato in precedenza. Se è stata seguita la convenzione consigliata, immettere le iniziali, quindi selezionare il gruppo di risorse appropriato.
Nella sezione Impostazionidel riquadro di spostamento selezionare Distribuzioni. Viene visualizzato un elenco ordinato delle distribuzioni in questo gruppo di risorse, con quello più recente.
Scorrere fino alla voce meno recente in questo elenco. Questa voce corrisponde alla distribuzione avviata nella sezione precedente. Selezionare la distribuzione meno recente, come illustrato nello screenshot seguente.
Nel riquadro di spostamento selezionare Outout. Questo elenco mostra i valori di output della distribuzione. Informazioni utili sono incluse negli output.
Il valore adminConsoleExternalUrl è il collegamento visibile a Internet pubblico completo per la console di amministrazione di WebLogic Server per questo cluster del servizio Azure Kubernetes. Selezionare l'icona di copia accanto al valore del campo per copiare il collegamento negli Appunti. Salvare questo valore per un secondo momento.
Il valore clusterExternalUrl è il collegamento visibile a Internet pubblico completo per l'app di esempio distribuita in WebLogic Server in questo cluster del servizio Azure Kubernetes. Selezionare l'icona di copia accanto al valore del campo per copiare il collegamento negli Appunti. Salvare questo valore per un secondo momento.
Il valore shellCmdtoOutputWlsImageModelYaml è la stringa base64 del modello WDT usato per compilare l'immagine del contenitore. Salvare questo valore per un secondo momento.
Il valore shellCmdtoOutputWlsImageProperties è la stringa base64 delle proprietà del modello WDT usate per compilare l'immagine del contenitore. Salvare questo valore per un secondo momento.
Il valore shellCmdtoConnectAks è il comando dell'interfaccia della riga di comando di Azure per connettersi a questo cluster del servizio Azure Kubernetes specifico.
Configurare e distribuire l'applicazione di esempio
L'offerta effettua il provisioning del cluster WebLogic Server tramite modello nell'immagine. Il cluster WebLogic Server non ha attualmente alcuna applicazione distribuita.
Questa sezione aggiorna il cluster WebLogic Server distribuendo un'applicazione di esempio usando un'immagine ausiliaria.
Consultare l'applicazione
In questa sezione si clona il codice di esempio per questa guida. L'esempio si trova in GitHub nel repository weblogic-on-azure nella cartella javaee/weblogic-café/. Ecco la struttura di file dell'applicazione.
Se viene visualizzato un messaggio relativo allo stato "HEAD scollegato", questo messaggio può essere tranquillamente ignorato. Significa semplicemente che è stato estratto un tag.
Usare il comando seguente per compilare javaee/weblogic-café/:
Il pacchetto deve essere generato correttamente e situato in $BASE_DIR/weblogic-on-azure/javaee/weblogic-café/target/weblogic-café.war. Se il pacchetto non viene visualizzato, è necessario risolvere il problema prima di continuare.
Usare Registro Azure Container per creare un'immagine ausiliaria
I passaggi di questa sezione illustrano come creare un'immagine ausiliaria. Questa immagine include i componenti seguenti:
Il file modello di Modello di immagine
Applicazione
File di archivio del driver JDBC (Java Database Connectivity)
Installazione degli strumenti di distribuzione WebLogic
Un'immagine ausiliaria è un'immagine del contenitore Docker contenente l'app e la configurazione. L'operatore Kubernetes WebLogic combina l'immagine ausiliaria con domain.spec.image nel cluster del servizio Azure Kubernetes che contiene WebLogic Server, JDK e sistema operativo. Per altre informazioni sulle immagini ausiliarie, vedere Immagini ausiliarie nella documentazione di Oracle.
Questa sezione richiede un terminale Linux con l'interfaccia della riga di comando di Azure e kubectl installato.
Per compilare l'immagine, seguire questa procedura:
Usare i comandi seguenti per creare una directory per preparare i modelli e l'applicazione:
mkdir -p ${BASE_DIR}/mystaging/models
cd ${BASE_DIR}/mystaging/models
Copiare il valore shellCmdtoOutputWlsImageModelYaml salvato dagli output della distribuzione, incollarlo nella finestra Bash ed eseguire il comando. Il comando dovrebbe essere simile all'esempio seguente:
In modo analogo, copiare il valore shellCmdtoOutputWlsImageProperties, incollarlo nella finestra Bash ed eseguire il comando. Il comando dovrebbe essere simile all'esempio seguente:
Questo comando genera un file ${BASE_DIR}/mystaging/models/model.properties con contenuto simile all'esempio seguente:
# 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
Usare la procedura seguente per creare il file del modello di applicazione.
Usare i comandi seguenti per copiare weblogic-café.war e salvarlo in wlsdeploy/applications:
Usare i comandi seguenti per creare il file del modello di applicazione con il contenuto illustrato. Salvare il file del modello in ${BASE_DIR}/mystaging/models/appmodel.yaml.
Usare la procedura seguente per scaricare e installare il driver JDBC di Microsoft SQL Server e l'estensione Azure Identity che abilita le connessioni di database usando l'identità gestita di Azure.
Usare i comandi seguenti per scaricare e installare il driver JDBC di Microsoft SQL Server in wlsdeploy/externalJDBCLibraries:
Usare i comandi seguenti per installare l'estensione Azure Identity in 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/
Usare i comandi seguenti per pulire le risorse:
rm target -f -r
rm azure-identity-extensions.xml
Connettersi al cluster del servizio Azure Kubernetes copiando il valore shellCmdtoConnectAks salvato in precedenza, incollandolo nella finestra Bash, quindi eseguendo il comando. Il comando dovrebbe essere simile all'esempio seguente:
az account set --subscription <subscription>;
az aks get-credentials \
--resource-group <resource-group> \
--name <name>
L'output dovrebbe essere simile all'esempio seguente. Se questo output non viene visualizzato, risolvere e risolvere il problema prima di continuare.
Merged "<name>" as current context in /Users/<username>/.kube/config
Esportare il modello di connessione del database e salvarlo in ${BASE_DIR}/mystaging/models/dbmodel.yaml. I passaggi seguenti estraggono il modello di configurazione del database da ConfigMap sample-domain1-wdt-config-map. Il nome segue il formato <domain-uid>-wdt-config-map, dove <domain-uid> viene impostato durante la distribuzione dell'offerta. Se è stato modificato il valore predefinito, sostituirlo con il proprio UID di dominio.
La chiave dati è <db-secret-name.yaml>. Usare il comando seguente per recuperare il nome del segreto del database:
Usare quindi i comandi seguenti per creare il file del modello di connessione alle banche dati con il contenuto illustrato. Salvare il file del modello in ${BASE_DIR}/mystaging/models/dbmodel.yaml. Il modello usa segnaposto - segreto sqlserver-secret - per nome utente, password e URL del database. Assicurarsi che i campi seguenti siano impostati correttamente. Il modello seguente assegna un nome alla risorsa con jdbc/WebLogicCafeDB.
Usare i comandi seguenti per creare un file di archivio e quindi rimuovere la cartella wlsdeploy , che non è più necessaria:
cd ${BASE_DIR}/mystaging/models
zip -r archive.zip wlsdeploy
rm -f -r wlsdeploy
Usare i comandi seguenti per scaricare e installare WebLogic Deploy Tooling (WDT) nella directory di staging e rimuovere i file weblogic-deploy/bin/*.cmd, che non vengono usati negli ambienti UNIX:
Quando si compila correttamente l'immagine, l'output è simile all'esempio seguente:
...
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
L'immagine viene inserita in Registro Azure Container dopo una compilazione riuscita.
È possibile eseguire az acr repository show per verificare se l'immagine viene inserita correttamente nel repository remoto, come illustrato nell'esempio seguente:
az acr repository show --name ${ACR_NAME} --image ${IMAGE}
Questo comando dovrebbe produrre un output simile all'esempio seguente:
Nei passaggi precedenti è stata creata l'immagine ausiliaria, inclusi i modelli e WDT. Applicare l'immagine ausiliaria al cluster WebLogic Server seguendo questa procedura.
Usare i comandi seguenti per aumentare il valore restartVersion e usare kubectl patch per applicare l'immagine ausiliaria al dominio CRD usando la definizione illustrata:
Connettersi al cluster del servizio Azure Kubernetes copiando il valore shellCmdtoConnectAks salvato in precedenza, incollandolo nella finestra Bash, quindi eseguendo il comando. Il comando dovrebbe essere simile all'esempio seguente:
az account set --subscription <subscription>;
az aks get-credentials \
--resource-group <resource-group> \
--name <name>
L'output dovrebbe essere simile all'esempio seguente. Se questo output non viene visualizzato, risolvere e risolvere il problema prima di continuare.
Merged "<name>" as current context in /Users/<username>/.kube/config
Usare la procedura seguente per ottenere i valori per le variabili illustrate nella tabella seguente. Questi valori verranno usati per creare il segreto per la connessione all'origine dati.
Visitare la risorsa del database SQL nel portale di Azure.
Nel riquadro di spostamento, in Impostazioniselezionare Stringhe di connessione.
Selezionare la scheda JDBC.
Selezionare l'icona copia per copiare la stringa di connessione negli Appunti.
Per DB_CONNECTION_STRING, usare l'intera stringa di connessione, ma sostituire il segnaposto {your_password_here} con la password del database.
Per DB_USER, usare la parte della stringa di connessione da azureuser in poi, ma non includere ;password={your_password_here}.
Per DB_PASSWORD, usare il valore immesso al momento della creazione del database.
Usare i comandi seguenti per creare il segreto Kubernetes. Questo articolo usa il nome sqlserver-secret del segreto per il segreto della connessione all'origine dati. Se si usa un nome diverso, assicurarsi che il valore sia uguale a quello in dbmodel.yaml.
Nei comandi seguenti assicurarsi di impostare le variabili DB_CONNECTION_STRING, DB_USERe DB_PASSWORD sostituendo correttamente gli esempi segnaposto con i valori descritti nei passaggi precedenti. Racchiudere il valore delle variabili DB_ tra virgolette singole per impedire che la shell vi interferisca.
Prima di continuare, è necessario visualizzare l'output seguente. Se questo output non viene visualizzato, risolvere e risolvere il problema prima di continuare.
secret/sqlserver-secret created
secret/sqlserver-secret labeled
Applicare l'immagine ausiliaria applicando patch alla definizione della risorsa personalizzata del dominio usando il comando kubectl patch.
L'immagine ausiliaria è definita in spec.configuration.model.auxiliaryImages, come illustrato nell'esempio seguente.
Usare i comandi seguenti per aumentare il valore restartVersion e usare kubectl patch per applicare l'immagine ausiliaria al dominio CRD usando la definizione illustrata:
Prima di procedere, attendere che il comando seguente produa l'output seguente per il server di amministrazione e i server gestiti:
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
Potrebbero essere necessari 5-10 minuti prima che il sistema raggiunga questo stato. L'elenco seguente offre una panoramica delle operazioni che si verificano durante l'attesa:
Dovrebbe essere visualizzata l’esecuzione di sample-domain1-introspector innanzitutto. Questo software cerca le modifiche apportate alla risorsa personalizzata del dominio in modo che possa eseguire le azioni necessarie nel cluster Kubernetes.
Quando vengono rilevate modifiche, l'introspezione del dominio termina e avvia nuovi pod per implementare le modifiche.
Verrà quindi visualizzato il termine e il riavvio del pod sample-domain1-admin-server.
Verranno quindi visualizzati i due server gestiti terminano e si riavviano.
Solo quando tutti e tre i pod mostrano lo stato 1/1 Running è possibile procedere.
Verificare la funzionalità della distribuzione
Seguire questa procedura per verificare la funzionalità della distribuzione visualizzando la console di amministrazione di WebLogic Server e l'app di esempio:
Incollare il valore adminConsoleExternalUrl nella barra degli indirizzi di un Web browser connesso a Internet. Verrà visualizzata la schermata di accesso familiare della console di amministrazione di WebLogic Server.
Accedere con il nome utente weblogic e la password immessi durante la distribuzione di WebLogic Server dal portale di Azure. Tenere presente che questo valore è wlsAksCluster2022.
Nella casella Struttura dominio selezionare Servizi.
In Serviziselezionare Origini dati.
Nel pannelloRiepilogo delle origini dati JDBC selezionare Monitoraggio. La schermata dovrebbe essere simile all’esempio seguente. Lo stato dell'origine dati è in esecuzione nei server gestiti.
Nella casella Struttura dominio selezionare Distribuzioni.
Nella tabella Distribuzioni deve essere presente una riga. Il nome deve essere lo stesso valore del valore Application nel file appmodel.yaml. Selezionare il nome.
Selezionare la scheda Test.
Selezionare weblogic-café.
Nel panello Impostazioni per weblogic-café selezionare la scheda Test.
Espandere l'icona + accanto a weblogic-café. La schermata dovrebbe essere simile all’esempio seguente. In particolare, verranno visualizzati valori simili a http://sample-domain1-managed-server1:8001/weblogic-cafe/index.xhtml nella colonna Punto di test.
Nota
I collegamenti ipertestuali nella colonna Punto di test non sono selezionabili perché la console di amministrazione non è stata configurata con l'URL esterno in cui è in esecuzione. Questo articolo illustra semplicemente la console di amministrazione di WebLogic Server a scopo dimostrativo. Non usare la console di amministrazione di WebLogic Server per modifiche di configurazione durevoli durante l'esecuzione di WebLogic Server nel servizio Azure Kubernetes. La progettazione nativa del cloud di WebLogic Server nel servizio Azure Kubernetes richiede che qualsiasi configurazione durevole debba essere rappresentata nelle immagini Docker iniziali o applicata al cluster del servizio Azure Kubernetes in esecuzione usando tecniche CI/CD come l'aggiornamento del modello, come descritto nella documentazione di Oracle.
Comprendere il valore context-path dell'app di esempio distribuita. Se è stata distribuita l'app di esempio consigliata, context-path è weblogic-cafe.
Costruire un URL completo per l'app di esempio aggiungendo l'oggetto context-path al valore clusterExternalUrl. Se è stata distribuita l'app di esempio consigliata, l'URL completo deve essere simile a http://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/.
Incollare l'URL completo in un Web browser connesso a Internet. Se è stata distribuita l'app di esempio consigliata, verranno visualizzati risultati simili allo screenshot seguente:
Pulire le risorse
Per evitare addebiti per Azure, è necessario eliminare le risorse non necessarie. Quando il cluster non è più necessario, usare il comando az group delete. Il comando seguente rimuove il gruppo di risorse, il servizio contenitore, il registro contenitori, database e tutte le risorse correlate:
az group delete --name <resource-group-name> --yes --no-wait
az group delete --name <db-resource-group-name> --yes --no-wait
Passaggi successivi
Per altre informazioni sull'esecuzione di WebLogic Server nel servizio Azure Kubernetes o nelle macchine virtuali, vedere i collegamenti seguenti:
Per altre informazioni sulle offerte Oracle WebLogic in Azure Marketplace, vedere Oracle WebLogic Server in Azure. Queste offerte sono tutte di tipo Bring Your Own License. Presuppongono che si abbiano già le licenze appropriate con Oracle e che si abbia una licenza appropriata per l'esecuzione delle offerte in Azure.
Collabora con noi su GitHub
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.
Feedback su Azure Kubernetes Service
Azure Kubernetes Service è un progetto di open source. Selezionare un collegamento per fornire feedback:
Amministrare un'infrastruttura di database SQL Server per database relazionali, ibridi, locali e cloud con le offerte di database relazionali Microsoft PaaS.