Distribuire un'applicazione Java con Open Liberty o WebSphere Liberty in un cluster del servizio Azure Kubernetes
Questo articolo illustra come:
- Eseguire l'applicazione Java, Java EE, Jakarta EE o MicroProfile nel runtime Open Liberty o IBM WebSphere Liberty.
- Compilare l'immagine Docker dell'applicazione con
az acr build
usando immagini contenitore Open Liberty o WebSphere Liberty. - Distribuire l'applicazione in contenitori in un cluster del servizio Azure Kubernetes usando Open Liberty Operator o WebSphere Liberty Operator.
Open Liberty Operator semplifica la distribuzione e la gestione delle applicazioni in esecuzione nei cluster Kubernetes. Con Open Liberty Operator o WebSphere Liberty Operator, è anche possibile eseguire operazioni più avanzate, ad esempio la raccolta di tracce e dump.
Questo articolo usa l'offerta di Azure Marketplace per Open Liberty o WebSphere Liberty per accelerare il percorso verso il servizio Azure Kubernetes. L'offerta effettua automaticamente il provisioning di alcune risorse di Azure, tra cui:
- Un'istanza di Registro Azure Container.
- Un cluster servizio Azure Kubernetes.
- Un’istanza del controller di ingresso del gateway applicazione (AGIC).
- Open Liberty Operator e WebSphere Liberty Operator.
- Facoltativamente, un'immagine del contenitore che include Liberty e l'applicazione.
Se si preferiscono indicazioni dettagliate manuali per l'esecuzione di Liberty nel servizio Azure Kubernetes, vedere Distribuire manualmente un'applicazione Java con Open Liberty o WebSphere Liberty in un cluster del servizio Azure Kubernetes.
Questo articolo è progettato per facilitare rapidamente la distribuzione. Prima di passare alla produzione, è consigliabile esplorare la documentazione di IBM sull'ottimizzazione di Liberty.
Se si è interessati a fornire commenti e suggerimenti o lavorare sugli scenari di migrazione in stretta collaborazione con il team di progettazione che sviluppa WebSphere nelle soluzioni di Azure, compilare questo breve sondaggio sulla migrazione di WebSphere 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.
Prerequisiti
- Una sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
- Preparare un computer locale con sistema operativo simile a Unix installato, ad esempio Ubuntu, Azure Linux, macOS o sottosistema Windows per Linux.
- Installare l'interfaccia della riga di comando di Azure per eseguire i comandi dell'interfaccia della riga di comando di Azure.
- Accedere all'interfaccia della riga di comando di Azure usando il
az login
comando . Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere ad Azure con l'interfaccia della riga di comando di Azure. - Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare e gestire le estensioni con l'interfaccia della riga di comando di Azure.
- Eseguire
az version
per trovare la versione e le librerie dipendenti installate. Per eseguire l’aggiornamento alla versione più recente, eseguireaz upgrade
. Questo articolo richiede almeno la versione 2.61.0 dell'interfaccia della riga di comando di Azure.
- Accedere all'interfaccia della riga di comando di Azure usando il
- Installare un'implementazione di Java edizione Standard (SE), versione 17 (ad esempio, Eclipse Open J9).
- Installare Maven 3.9.8 o versione successiva.
- Verificare che Git sia installato.
- Assicurarsi di essere assegnati al ruolo o ai ruoli
Owner
oContributor
eUser Access Administrator
nella sottoscrizione. È possibile verificarlo seguendo la procedura descritta in Elencare le assegnazioni di ruolo per un utente o un gruppo.
Creare una distribuzione liberty nel servizio Azure Kubernetes usando il portale
La procedura seguente illustra come creare un runtime Liberty nel servizio Azure Kubernetes. Dopo aver completato questi passaggi, si avrà un'istanza del Registro Container e un cluster del servizio Azure Kubernetes per la distribuzione dell'applicazione in contenitori.
Vai al portale di Azure. Nella casella di ricerca nella parte superiore della pagina immettere WebSphere Liberty/Open Liberty in Kubernetes. Quando vengono visualizzati i suggerimenti, selezionare l'unica corrispondenza nella sezione Marketplace.
Se si preferisce, è possibile passare direttamente all'offerta.
Seleziona Crea.
Nel riquadro delle informazioni di base:
- Creare un nuovo gruppo di risorse. Poiché i gruppi di risorse devono essere univoci all'interno di una sottoscrizione, scegliere un nome univoco. Un modo semplice per avere nomi univoci consiste nell'usare una combinazione di iniziali, data odierna e un identificatore, ad esempio
ejb0913-java-liberty-project-rg
. Salvare il nome del gruppo di risorse per usarlo in seguito in questo articolo. - In Area selezionare un'area vicina all'utente. Ad esempio, selezionare Stati Uniti orientali 2.
- Creare un nuovo gruppo di risorse. Poiché i gruppi di risorse devono essere univoci all'interno di una sottoscrizione, scegliere un nome univoco. Un modo semplice per avere nomi univoci consiste nell'usare una combinazione di iniziali, data odierna e un identificatore, ad esempio
Selezionare Avanti. Nel riquadro servizio Azure Kubernetes è possibile selezionare facoltativamente un cluster del servizio Azure Kubernetes esistente e un'istanza del Registro Azure Kubernetes, anziché causare la creazione di nuove istanze della distribuzione. Questa scelta consente di usare il modello sidecar, come illustrato nel Centro architettura di Azure. È anche possibile modificare le impostazioni per le dimensioni e il numero delle macchine virtuali nel pool di nodi del servizio Azure Kubernetes.
Ai fini di questo articolo, è sufficiente mantenere tutte le impostazioni predefinite in questo riquadro.
Selezionare Avanti. Nel riquadro bilanciamento del carico, accanto a Connetti al gateway applicazione di Azure?, selezionare Sì. In questa sezione, è possibile personalizzare le opzioni di distribuzione seguenti:
Per rete virtuale e Subnet, è possibile personalizzare facoltativamente la rete virtuale e la subnet in cui la distribuzione inserisce le risorse. Non è necessario modificare i valori rimanenti rispetto alle impostazioni predefinite.
Per il certificato TLS/SSL, è possibile fornire il certificato TLS/SSL dal gateway applicazione di Azure. Lasciare i valori predefiniti per fare in modo che l'offerta generi un certificato autofirmato.
Non passare all'ambiente di produzione con un certificato autofirmato. Per altre informazioni sui certificati autofirmato, vedere Creare un certificato pubblico autofirmato per autenticare l'applicazione.
È possibile selezionare Abilita affinità basata su cookie, nota anche come sessioni permanenti. Questo articolo usa sessioni permanenti, quindi assicurarsi di selezionare questa opzione.
Selezionare Avanti. Nel riquadro Operatore e applicazione questo articolo usa tutte le impostazioni predefinite. Tuttavia, è possibile personalizzare le opzioni di distribuzione seguenti:
- È possibile distribuire WebSphere Liberty Operator selezionando Sì per l'opzione IBM supportata?. Lasciando l'impostazione predefinita No distribuisce Open Liberty Operator.
- È possibile distribuire un'applicazione per l'operatore selezionato selezionando Sì per l'opzione Distribuisci un'applicazione?. Se si lascia il valore predefinito No, non viene distribuita alcuna applicazione.
Selezionare Rivedi e crea per convalidare le opzioni selezionate. Nel riquadro Rivedi e crea, quando viene visualizzato Crea diventano disponibili dopo il passaggio della convalida, selezionarlo.
La distribuzione può richiedere fino a 20 minuti. Durante l'attesa del completamento della distribuzione, è possibile seguire la procedura descritta nella sezione Creare un’istanza database SQL di Azure. Dopo aver completato questa sezione, tornare qui e continuare.
Acquisire le informazioni selezionate dalla distribuzione
Se ci si è spostati dal riquadro Distribuzione in corso, i passaggi seguenti mostrano come tornare a quel riquadro. Se si è ancora nel riquadro che mostra La distribuzione è stata completata, passare al gruppo di risorse appena creato e passare al terzo passaggio.
Nell'angolo di qualsiasi pagina del portale selezionare il pulsante di menu e quindi selezionare Gruppi di risorse.
Nella casella con il testo Filtra per qualsiasi campo, immettere i primi caratteri del gruppo di risorse creato in precedenza. Se è stata seguita la convenzione consigliata, immettere le iniziali, e quindi selezionare il gruppo di risorse appropriato.
Nell'elenco delle risorse nel gruppo di risorse selezionare la risorsa con il valore Tipo di registro contenitori.
Nel riquadro di spostamento, in Impostazioni selezionare Chiavi di accesso.
Salvare i valori per il nome del Registro di sistema e il server di accesso. È possibile usare l'icona di copia accanto a ogni campo per copiare il valore negli Appunti di sistema.
Nota
Questo articolo usa il
az acr build
comando per compilare ed eseguire il push dell'immagine Docker nel Registro Contenitori, senza usareusername
epassword
del Registro Container. È comunque possibile usare nome utente e password condocker login
edocker push
. L'uso di nome utente e password è meno sicuro dell'autenticazione senza password.Tornare al gruppo di risorse in cui sono state distribuite le risorse.
Nella sezione Impostazioni selezionare Distribuzioni.
Selezionare la distribuzione più in basso nell'elenco. Il valore Nome distribuzione corrisponde all'ID editore dell'offerta. Contiene la stringa
ibm
.Nel riquadro di spostamento selezionare Outout.
Usando la stessa tecnica di copia dei valori precedenti, salvare i valori per gli output seguenti:
cmdToConnectToCluster
appDeploymentTemplateYaml
se la distribuzione non include un'applicazione. Ciò significa che è stato selezionato No per Distribuire un'applicazione? quando è stata distribuita l'offerta Marketplace. Questo articolo ha selezionato No. Tuttavia, se si seleziona Sì, salvare il valore di , che include la distribuzione dell'applicazioneappDeploymentYaml
.Incollare il valore di
appDeploymentTemplateYaml
oappDeploymentYaml
in una shell Bash ed eseguire il comando .L'output di questo comando è la distribuzione dell'applicazione YAML. Cercare il segreto TLS in ingresso con la parola chiave
secretName
, ad esempio- secretName: secret785e2c
. Salvare a parte il valoresecretName
.
Eseguire i comandi seguenti per impostare le variabili di ambiente acquisite nei passaggi precedenti. Queste variabili di ambiente vengono usate più avanti in questo articolo.
export RESOURCE_GROUP_NAME=<your-resource-group-name>
export REGISTRY_NAME=<your-registry-nam-of-container-registry>
export LOGIN_SERVER=<your-login-server-of-container-registry>
export INGRESS_TLS_SECRET=<your-ingress-tls-secret-name>
Creare un'istanza del database SQL di Azure
In questa sezione viene creato un database singolo database SQL di Azure da usare con l'app.
Impostare prima di tutto le variabili di ambiente correlate al database. Sostituire <your-unique-sql-server-name>
con un nome univoco per il server database SQL di Azure.
export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb
Eseguire il comando seguente nel terminale per creare un database singolo in database SQL di Azure e impostare l'utente connesso corrente come amministratore di Microsoft Entra. Per altre informazioni, vedere Avvio rapido: Creare un database singolo - database SQL di Azure.
export ENTRA_ADMIN_NAME=$(az account show --query user.name --output tsv)
az sql server create \
--name $SQL_SERVER_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--enable-ad-only-auth \
--external-admin-principal-type User \
--external-admin-name $ENTRA_ADMIN_NAME \
--external-admin-sid $(az ad signed-in-user show --query id --output tsv)
az sql db create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name $DB_NAME \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--capacity 2
Aggiungere quindi l'indirizzo IP locale alle regole del firewall del server database SQL di Azure per consentire al computer locale di connettersi al database per i test locali in un secondo momento.
export AZ_LOCAL_IP_ADDRESS=$(curl -s https://whatismyip.akamai.com)
az sql server firewall-rule create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP \
--start-ip-address $AZ_LOCAL_IP_ADDRESS \
--end-ip-address $AZ_LOCAL_IP_ADDRESS
Nota
Questo articolo disabilita l'autenticazione SQL disabilitata per illustrare le procedure consigliate per la sicurezza. Microsoft Entra ID viene usato per autenticare la connessione al server. Se è necessario abilitare l'autenticazione SQL, vedere az sql server create
.
Creare una connessione al servizio nel servizio Azure Kubernetes con Service Connector
In questa sezione viene creata una connessione al servizio tra il cluster del servizio Azure Kubernetes e il database SQL di Azure usando ID dei carichi di lavoro di Microsoft Entra con Service Connector. Questa connessione consente al cluster del servizio Azure Kubernetes di accedere al database SQL di Azure senza usare l'autenticazione SQL.
Prima di tutto, concedere le autorizzazioni del provider di risorse del connettore di servizi di Azure all'gateway applicazione distribuita in precedenza. Questo passaggio è necessario per creare correttamente una connessione al servizio tra il cluster del servizio Azure Kubernetes e il database SQL di Azure.
- Passare al portale di Azure e passare al gruppo di risorse creato in precedenza.
- Nell'elenco delle risorse nel gruppo di risorse selezionare la risorsa con il valore Type (Tipo ) del gateway applicazione.
- Seleziona Controllo di accesso (IAM). Espandere quindi Aggiungi e selezionare Aggiungi assegnazione di ruolo.
- Nella scheda Ruolo selezionare Ruoli di amministratore con privilegi. Selezionare quindi Collaboratore. Selezionare Avanti.
- Nella scheda Membri selezionare Seleziona membri. Cercare quindi l'app Provider di risorse del connettore di servizi di Azure. Selezionare l'app e selezionare Seleziona. Selezionare Avanti.
- Seleziona Rivedi + assegna. Attendere alcuni secondi per il completamento dell'assegnazione di ruolo.
Eseguire quindi i comandi seguenti per creare una connessione tra il cluster del servizio Azure Kubernetes e il database SQL usando ID dei carichi di lavoro di Microsoft Entra con Service Connector. Per altre informazioni, vedere Creare una connessione al servizio nel servizio Azure Kubernetes con Service Connector (anteprima).
# Register the Service Connector and Kubernetes Configuration resource providers
az provider register --namespace Microsoft.ServiceLinker --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
# Install the Service Connector passwordless extension
az extension add --name serviceconnector-passwordless --upgrade --allow-preview true
# Retrieve the AKS cluster and Azure SQL Server resource IDs
export AKS_CLUSTER_RESOURCE_ID=$(az aks show \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--query id \
--output tsv)
export AZURE_SQL_SERVER_RESOURCE_ID=$(az sql server show \
--resource-group $RESOURCE_GROUP_NAME \
--name $SQL_SERVER_NAME \
--query id \
--output tsv)
# Create a user-assigned managed identity used for workload identity
export USER_ASSIGNED_IDENTITY_NAME=workload-identity-uami
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${USER_ASSIGNED_IDENTITY_NAME}
# Retrieve the user-assigned managed identity resource ID
export UAMI_RESOURCE_ID=$(az identity show \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${USER_ASSIGNED_IDENTITY_NAME} \
--query id \
--output tsv)
# Create a service connection between your AKS cluster and your SQL database using Microsoft Entra Workload ID
az aks connection create sql \
--connection akssqlconn \
--client-type java \
--source-id $AKS_CLUSTER_RESOURCE_ID \
--target-id $AZURE_SQL_SERVER_RESOURCE_ID/databases/$DB_NAME \
--workload-identity $UAMI_RESOURCE_ID
Nota
È consigliabile usare ID dei carichi di lavoro di Microsoft Entra per proteggere l'accesso alle database SQL di Azure senza usare l'autenticazione SQL. Se è necessario usare l'autenticazione SQL, ignorare i passaggi precedenti in questa sezione e usare il nome utente e la password per connettersi al database SQL di Azure.
Ottenere l'account del servizio e il segreto creati da Service Connector
Per eseguire l'autenticazione al database SQL di Azure, è necessario ottenere l'account del servizio e il segreto creati da Service Connector. Seguire le istruzioni nella sezione Aggiornare il contenitore di Esercitazione: Connettere un'app del servizio Azure Kubernetes a database SQL di Azure. Usare l'opzione Creare direttamente una distribuzione usando il frammento di codice di esempio YAML fornito e seguire questa procedura:
Dalle sezioni evidenziate nell'esempio di distribuzione YAML di Kubernetes copiare i
serviceAccountName
valori esecretRef.name
, come illustrato nell'esempio seguente:serviceAccountName: <service-account-name> containers: - name: raw-linux envFrom: - secretRef: name: <secret-name>
Usare i comandi seguenti per definire le variabili di ambiente. Sostituire
<service-account-name>
e<secret-name>
con i valori copiati nel passaggio precedente.export SERVICE_ACCOUNT_NAME=<service-account-name> export SECRET_NAME=<secret-name>
Questi valori vengono usati nella sezione successiva per distribuire l'applicazione Liberty nel cluster del servizio Azure Kubernetes.
Nota
Il segreto creato da Service Connector contiene , AZURE_SQL_CONNECTIONSTRING
che è una password gratuita stringa di connessione al database SQL di Azure. Per altre informazioni, vedere il valore di esempio nella sezione Autenticazione dell'identità gestita assegnata dall'utente di Integrare database SQL di Azure con Service Connector.
Dopo aver configurato il database e il cluster del servizio Azure Kubernetes, è possibile procedere alla preparazione del servizio Azure Kubernetes per ospitare l'applicazione Open Liberty.
Configurare e distribuire l'applicazione di esempio
Seguire i passaggi descritti in questa sezione per distribuire l'applicazione di esempio nel runtime Liberty. Questi passaggi usano Maven.
Consultare l'applicazione
Clonare il codice di esempio per questo articolo. L'esempio è disponibile in GitHub.
Nel repository sono disponibili alcuni esempi. Questo articolo usa java-app. Eseguire i comandi seguenti per ottenere l'esempio:
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20241107
Se viene visualizzato un messaggio sullo stato "HEAD scollegato", è possibile ignorarlo in modo sicuro. Il messaggio significa semplicemente che è stato estratto un tag.
Ecco la struttura di file dell'applicazione, con file e directory importanti:
java-app
├─ src/main/
│ ├─ aks/
│ │ ├─ openlibertyapplication-agic-passwordless-db.yaml
│ ├─ docker/
│ │ ├─ Dockerfile
│ │ ├─ Dockerfile-wlp
│ ├─ liberty/config/
│ │ ├─ server.xml
│ ├─ java/
│ ├─ resources/
│ ├─ webapp/
├─ pom.xml
├─ pom-azure-identity.xml
Le directory java, resources e webapp contengono il codice sorgente dell'applicazione di esempio. Il codice dichiara e usa un'origine dati denominata jdbc/JavaEECafeDB
.
Nella directory del servizio Azure Kubernetes il file openlibertyapplication-agic-passwordless-db.yaml viene usato per distribuire l'immagine dell'applicazione con AGIC e connessione senza password al database SQL di Azure. In questo articolo si presuppone che si usi questo file.
Nella directory docker sono disponibili due file per creare l'immagine dell'applicazione con Open Liberty o WebSphere Liberty.
Nella directory liberty/config il file server.xml viene usato per configurare la connessione di database per il cluster Open Liberty e WebSphere Liberty. Definisce una variabile azure.sql.connectionstring
usata per connettersi al database SQL di Azure.
Il file pom.xml è il file POM (Project Object Model) di Maven che contiene le informazioni di configurazione per il progetto. Il file pom-azure-identity.xml dichiara una dipendenza da azure-identity
. Questo file viene usato per eseguire l'autenticazione ai servizi di Azure usando Microsoft Entra ID.
Nota
In questo esempio viene usata la libreria per eseguire l'autenticazione azure-identity
per database SQL di Azure tramite l'autenticazione Di Microsoft Entra. Se è necessario usare l'autenticazione SQL nell'applicazione Liberty, vedere Connessioni di database relazionali con JDBC.
Compilare il progetto
Dopo aver raccolto le proprietà necessarie, compilare l'applicazione. Il file POM per il progetto legge molte variabili dall'ambiente. Come parte della compilazione Maven, queste variabili vengono usate per popolare i valori nei file YAML che si trovano in src/main/aks. Se si preferisce, è possibile eseguire operazioni simili per l'applicazione all'esterno di Maven.
cd $BASE_DIR/java-app
# The following variables are used for deployment file generation into the target.
export LOGIN_SERVER=${LOGIN_SERVER}
export SC_SERVICE_ACCOUNT_NAME=${SERVICE_ACCOUNT_NAME}
export SC_SECRET_NAME=${SECRET_NAME}
export INGRESS_TLS_SECRET=${INGRESS_TLS_SECRET}
mvn clean install
mvn dependency:copy-dependencies -f pom-azure-identity.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources
Testare il progetto in locale
Eseguire e testare il progetto in locale prima di eseguire la distribuzione in Azure. Per praticità, questo articolo usa liberty-maven-plugin
. Per altre informazioni su liberty-maven-plugin
, vedere l'articolo Creazione di un'applicazione Web con Maven.
Nota
Se è stata selezionata una distribuzione di database "serverless", verificare che il database SQL non sia stato attivato in modalità di sospensione. Un modo per eseguire questa operazione consiste nell'accedere all'editor di query del database come descritto in Avvio rapido: Usare l'editor di query portale di Azure (anteprima) per eseguire query database SQL di Azure.
Avviare l'applicazione usando
liberty:run
.cd $BASE_DIR/java-app # The value of environment variable AZURE_SQL_CONNECTIONSTRING is read by configuration variable `azure.sql.connectionstring` in server.xml export AZURE_SQL_CONNECTIONSTRING="jdbc:sqlserver://$SQL_SERVER_NAME.database.windows.net:1433;databaseName=$DB_NAME;authentication=ActiveDirectoryDefault" mvn liberty:run
Verificare che l'applicazione funzioni come previsto. Verrà visualizzato un messaggio simile all'output
[INFO] [AUDIT ] CWWKZ0001I: Application javaee-cafe started in 18.235 seconds.
del comando. Passare ahttp://localhost:9080/
nel browser e verificare che l'applicazione sia accessibile e che tutte le funzioni funzionino.Premere CTRL+C per arrestarsi. Premere Y se viene chiesto di terminare il processo batch.
Al termine, eliminare la regola del firewall che consente all'indirizzo IP locale di accedere al database SQL di Azure usando il comando seguente:
az sql server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP
Compilare l'immagine per la distribuzione del servizio Azure Kubernetes
È ora possibile eseguire il az acr build
comando per compilare l'immagine, come illustrato nell'esempio seguente:
cd $BASE_DIR/java-app/target
az acr build \
--registry ${REGISTRY_NAME} \
--image javaee-cafe:v1 \
.
Il az acr build
comando carica gli artefatti specificati nel Dockerfile nell'istanza del Registro Container, compila l'immagine e la archivia nell'istanza del Registro Container.
Distribuire l'applicazione nel cluster del servizio Azure Kubernetes
Usare la procedura seguente per distribuire l'applicazione Liberty nel cluster del servizio Azure Kubernetes:
Connettersi al cluster servizio Azure Kubernetes.
Incollare il valore di
cmdToConnectToCluster
in una shell ed eseguire il comando .Applicare il file di distribuzione eseguendo i comandi seguenti:
cd $BASE_DIR/java-app/target # Apply deployment file kubectl apply -f openlibertyapplication-agic-passwordless-db.yaml
Attendere il riavvio di tutti i pod usando il comando seguente:
kubectl get pods --watch
L'output simile all'esempio seguente indica che tutti i pod sono in esecuzione:
NAME READY STATUS RESTARTS AGE javaee-cafe-cluster-agic-67cdc95bc-2j2gr 1/1 Running 0 29s javaee-cafe-cluster-agic-67cdc95bc-fgtt8 1/1 Running 0 29s javaee-cafe-cluster-agic-67cdc95bc-h47qm 1/1 Running 0 29s
Testare l'applicazione
Quando i pod sono in esecuzione, è possibile testare l'applicazione usando l'indirizzo IP pubblico dell'istanza di gateway applicazione.
Eseguire il comando seguente per ottenere e visualizzare l'indirizzo IP pubblico dell'istanza di gateway applicazione, esposto dalla risorsa di ingresso creata da AGIC:
export APP_URL=https://$(kubectl get ingress | grep javaee-cafe-cluster-agic-ingress | cut -d " " -f14)/
echo $APP_URL
Copiare l'URL e aprirlo nel browser per visualizzare la home page dell'applicazione. Se il rendering della pagina Web non viene eseguito correttamente o restituisce un errore 502 Bad Gateway
, l'app viene ancora avviata in background. Attendere alcuni minuti e ripetere l'operazione.
Pulire le risorse
Per evitare addebiti per Azure, è necessario eliminare le risorse non necessarie. Quando il cluster non è più necessario, usare il az group delete
comando per rimuovere il gruppo di risorse, il servizio contenitore, il registro contenitori, il database e tutte le risorse correlate:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Passaggi successivi
Per altre informazioni, vedere le risorse riportate di seguito:
- Servizio Azure Kubernetes
- Esercitazione: Connettere un'app del servizio Azure Kubernetes a database SQL di Azure (anteprima)
- Integrare database SQL di Azure con Service Connector
- Connettersi con l'autenticazione di Microsoft Entra
- Aprire Liberty
- Aprire operatore Liberty
- Aprire Configurazione di Liberty Server
- Plug-in Liberty Maven
- Open Liberty Container Images
- Immagini contenitore WebSphere Liberty
Per altre informazioni sulla distribuzione della famiglia IBM WebSphere in Azure, vedere Che cosa sono le soluzioni per eseguire la famiglia di prodotti WebSphere in Azure?.
Azure Kubernetes Service