Distribuire un'applicazione Java con Open Liberty/WebSphere Liberty in un cluster Azure Red Hat OpenShift
Questa guida illustra come eseguire l'applicazione Java, Java edizione Enterprise, Jakarta edizione Enterprise o MicroProfile nel runtime Open Liberty/WebSphere Liberty. La guida illustra quindi come distribuire l'applicazione in contenitori in un cluster Azure Red Hat OpenShift 4 usando Open Liberty Operator. Questo articolo illustra come preparare un'applicazione Liberty, compilare l'immagine Docker dell'applicazione ed eseguire l'applicazione in contenitori in un cluster Azure Red Hat OpenShift 4. Per altre informazioni su Open Liberty, vedere la pagina del progetto Open Liberty. Per altre informazioni su WebSphere Liberty, vedere la pagina del prodotto WebSphere Liberty.
Questo articolo è una guida dettagliata per l'esecuzione di Open/WebSphere Liberty in un cluster Azure Red Hat OpenShift 4. Per una soluzione più automatizzata che accelera il percorso verso il cluster Azure Red Hat OpenShift 4, vedere Distribuire IBM WebSphere Liberty e Open Liberty in Azure Red Hat OpenShift.
Questo articolo è progettato per facilitare rapidamente la distribuzione. Prima di passare alla produzione, è consigliabile esplorare Tuning Liberty.
Importante
Anche se Azure Red Hat OpenShift è progettato, gestito e supportato congiuntamente da Red Hat e Microsoft per offrire un'esperienza di supporto integrata, il software eseguito su Azure Red Hat OpenShift, incluso quello descritto in questo articolo, è soggetto alle proprie condizioni di supporto e licenza. Per altre informazioni sul supporto per Azure Red Hat OpenShift, vedere Ciclo di vita del supporto per Azure Red Hat OpenShift 4. Per altre informazioni sul supporto per il software descritto in questo articolo, vedere le pagine principali per tale software, come indicato nell'articolo.
Prerequisiti
Nota
Azure Red Hat OpenShift richiede almeno 40 core per creare ed eseguire un cluster OpenShift. La quota di risorse di Azure predefinita per una nuova sottoscrizione di Azure non soddisfa questo requisito. Per richiedere un aumento del limite di risorse, vedere Quota standard: aumentare i limiti per serie di macchine virtuali. Si noti che la sottoscrizione di valutazione gratuita non è idonea per un aumento della quota, eseguire l'aggiornamento a una sottoscrizione con pagamento in base al consumo prima di richiedere un aumento della quota.
Completare i prerequisiti seguenti per usare correttamente questa guida.
Preparare un computer locale con sistema operativo simile a Unix installato (ad esempio, Ubuntu, macOS).
Installare un'implementazione di Java edizione Standard, versione 17 o successiva (ad esempio, Eclipse Open J9).
Installare Maven 3.5.0 o versione successiva.
Installare Docker per il sistema operativo.
Installare l'interfaccia della riga di comando di Azure 2.0.75 o versione successiva.
Controllare e installare
envsubst
se non è preinstallato nel sistema operativo.Clonare il codice per questo esempio nel sistema locale. L'esempio è disponibile in GitHub.
Seguire le istruzioni in Creare un cluster Azure Red Hat OpenShift 4.
Anche se il passaggio "Ottenere un segreto pull di Red Hat" è etichettato come facoltativo, è necessario per questo articolo. Il segreto pull consente al cluster Azure Red Hat OpenShift di trovare Open Liberty Operator.
Se si prevede di eseguire applicazioni a elevato utilizzo di memoria nel cluster, specificare le dimensioni della macchina virtuale appropriate per i nodi di lavoro usando il
--worker-vm-size
parametro . Ad esempio,Standard_E4s_v3
è la dimensione minima della macchina virtuale per installare l'operatore Elasticsearch in un cluster. Per altre informazioni, vedi:Connessione al cluster seguendo la procedura descritta in Connessione a un cluster Azure Red Hat OpenShift 4.
- Assicurarsi di seguire la procedura descritta in "Installare l'interfaccia della riga di comando di OpenShift" perché il comando verrà usato
oc
più avanti in questo articolo. - Annotare l'URL della console del cluster. Dovrebbe essere simile
https://console-openshift-console.apps.<random>.<region>.aroapp.io/
a . - Prendere nota delle
kubeadmin
credenziali. - Assicurarsi di seguire i passaggi descritti in "Connessione usando l'interfaccia della riga di comando di OpenShift" con le
kubeadmin
credenziali.
- Assicurarsi di seguire la procedura descritta in "Installare l'interfaccia della riga di comando di OpenShift" perché il comando verrà usato
Installare l'operatore Open Liberty OpenShift
Dopo aver creato e connesso il cluster, installare Open Liberty Operator. La pagina iniziale principale per Open Liberty Operator è disponibile in GitHub.
Accedere alla console Web OpenShift dal browser usando le
kubeadmin
credenziali.Passare a Operatori>OperatorHub e cercare Open Liberty.
Selezionare Open Liberty nei risultati della ricerca.
Selezionare Installa.
Nella pagina Operatore di installazione selezionare v1.2 per Canale di aggiornamento, Tutti gli spazi dei nomi nel cluster (impostazione predefinita) per Modalità di installazione e Automatico per l'approvazione dell'aggiornamento:
Selezionare Installa e attendere un minuto o due fino al completamento dell'installazione.
Osservare che Open Liberty Operator è installato e pronto per l'uso. In caso contrario, diagnosticare e risolvere il problema prima di continuare.
Creare uno spazio dei nomi OpenShift per l'app Java
Usare la procedura seguente per creare uno spazio dei nomi OpenShift da usare con l'app:
Assicurarsi di aver eseguito l'accesso alla console Web OpenShift dal browser usando le
kubeadmin
credenziali.Passare a Amministrazione istration>Namespaces Create Namespaces>(Crea spazio dei nomi).
open-liberty-demo
Immettere Name (Nome) e selezionare Create (Crea), come illustrato di seguito.
Creare un'istanza di Database di Azure per MySQL
Usare la procedura seguente per configurare un Database di Azure per MySQL da usare con l'app. Se l'applicazione non richiede un database, è possibile ignorare questa sezione.
Creare un server flessibile Database di Azure per MySQL seguendo la procedura descritta in Avvio rapido: Usare il portale di Azure per creare un server flessibile Database di Azure per MySQL. Tornare a questo documento dopo la creazione del database.
Nota
Nel passaggio Informazioni di base annotare i valori Nome server.mysql.database.azure.com, nome utente Amministrazione e Password.
Dopo aver creato il database, aprire la rete del database>.
- In Accesso pubblico assicurarsi che l'opzione Consenti l'accesso pubblico a questa risorsa tramite Internet tramite un indirizzo IP pubblico sia selezionata.
- Selezionare Consenti l'accesso pubblico da qualsiasi servizio di Azure in Azure a questo server.
- Assicurarsi che l'indirizzo IPv4 del client sia incluso nell'elenco di regole del firewall consentite.
Aprire il database> Connessione> Selezionare Connessione dall'app>JDBC. Annotare il numero di porta seguente all'indirizzo del server di database. Ad esempio, 3306 è il numero di porta nell'esempio seguente.
String url="jdbc:mysql://<Server name>.mysql.database.azure.com:3306/{your_database}?useSSL=true";myDbConn=DriverManager.getConnection(url, "<Server admin username>", "{your_password}");
Aprire i database di database>> selezionare Aggiungi. Immettere un valore per Nome e selezionare Salva per creare un nuovo database. Questo database ha tipo di schema come Utente e viene usato per l'applicazione in un secondo momento.
Nota
Annotare il nome del database creato.
Preparare l'applicazione Liberty
In questa guida viene usata un'applicazione Java edizione Enterprise 8. Open Liberty è un server compatibile con profili completi java edizione Enterprise 8, in modo da poter eseguire facilmente l'applicazione. Open Liberty è anche Jakarta edizione Enterprise 8 profilo completo compatibile.
Eseguire l'applicazione in Open Liberty
Per eseguire l'applicazione in Open Liberty, è necessario creare un file di configurazione del server Open Liberty in modo che il plug-in Liberty Maven possa creare un pacchetto dell'applicazione per la distribuzione. Il plug-in Liberty Maven non è necessario per distribuire l'applicazione in OpenShift. Tuttavia, viene usato in questo esempio con la modalità sviluppatore (dev) di Open Liberty. La modalità sviluppatore consente di eseguire facilmente l'applicazione in locale. Per altre informazioni su liberty-maven-plugin
, vedere Compilazione di un'applicazione Web con Maven.
Seguire i passaggi descritti in questa sezione per preparare l'applicazione di esempio per un uso successivo in questo articolo. Questi passaggi usano Maven e liberty-maven-plugin
.
Consultare l'applicazione
Clonare il codice di esempio per questa guida. L'esempio è disponibile in GitHub.
git clone https://github.com/Azure-Samples/open-liberty-on-aro.git
cd open-liberty-on-aro
git checkout 20231026
Se viene visualizzato un messaggio relativo allo stato "HEAD scollegato", questo messaggio è sicuro da ignorare. Significa semplicemente che hai estratto un tag.
Nel repository sono disponibili alcuni esempi. Si usa open-liberty-on-aro/3-integration/connect-db/mysql. Ecco la struttura di file dell'applicazione:
open-liberty-on-aro/3-integration/connect-db/mysql
├─ src/main/
│ ├─ aro/
│ │ ├─ db-secret.yaml
│ │ ├─ openlibertyapplication.yaml
│ ├─ liberty/config/
│ │ ├─ server.xml
│ ├─ java/
│ ├─ resources/
│ ├─ webapp/
├─ Dockerfile
├─ Dockerfile-wlp
├─ pom.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 aro sono stati inseriti due file di distribuzione. db-secret.xml viene usato per creare segreti con credenziali di connessione al database. Il file openlibertyapplication.yaml viene usato per distribuire l'immagine dell'applicazione.
Nella directory radice sono stati inseriti due Dockerfile. Dockerfile e Dockerfile-wlp vengono usati per il debug locale e per compilare l'immagine per una distribuzione di Azure Red Hat OpenShift, usando rispettivamente Open Liberty e WebSphere Liberty.
Nella directory liberty/config il server.xml viene usato per configurare la connessione db per il cluster Open Liberty e WebSphere Liberty.
Compilare un progetto
Dopo aver raccolto le proprietà necessarie, è possibile compilare l'applicazione. Il file POM per il progetto legge molte proprietà dall'ambiente.
cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql
# The following variables are used for deployment file generation
export DB_SERVER_NAME=<Server name>.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=<Database name>
export DB_USER=<Server admin username>
export DB_PASSWORD=<Server admin password>
export NAMESPACE=open-liberty-demo
mvn clean install
Testare l'applicazione in locale
Usare il comando liberty:devc
per eseguire e testare il progetto in locale prima di gestire qualsiasi complessità di Azure. Per altre informazioni su liberty:devc
, vedere la documentazione del plug-in Liberty.
Avviare l'ambiente Docker locale, se non è già stato fatto. Le istruzioni per eseguire questa operazione variano a seconda del sistema operativo host.
Avviare l'applicazione in modalità
liberty:devc
cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql # If you are running with Open Liberty mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile # If you are running with WebSphere Liberty mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile-wlp
Verificare che l'applicazione funzioni come previsto. Se ha esito positivo, verrà visualizzato un messaggio simile a
[INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds.
nell'output del comando. Passare ahttps://localhost:9443/
nel browser e verificare che l'applicazione sia accessibile e che tutte le funzioni funzionino.Premere CTRL+C per arrestare
liberty:devc
la modalità.
Preparare l'immagine dell'applicazione
Per distribuire ed eseguire l'applicazione Liberty in un cluster Azure Red Hat OpenShift 4, creare un contenitore dell'applicazione come immagine Docker usando immagini del contenitore Open Liberty o immagini del contenitore WebSphere Liberty.
Completare i passaggi seguenti per compilare l'immagine dell'applicazione:
Compilare l'applicazione ed eseguire il push nel flusso di immagini
Poiché l'app è già stata eseguita correttamente nel contenitore Liberty Docker, si creerà l'immagine in modalità remota nel cluster eseguendo i comandi seguenti.
Assicurarsi di aver già eseguito l'accesso all'interfaccia della riga di comando di OpenShift usando le
kubeadmin
credenziali.Identificare la directory di origine e il Dockerfile.
cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql # Fetch maven artifactId as image name, maven build version as image version export IMAGE_NAME=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.artifactId}' --non-recursive exec:exec) export IMAGE_VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec) # If you are building with Open Liberty base image, the existing Dockerfile is ready for you # If you are building with WebSphere Liberty base image, uncomment and execute the following two commands to rename Dockerfile-wlp to Dockerfile # mv Dockerfile Dockerfile.backup # mv Dockerfile-wlp Dockerfile
Modificare il progetto in "open-liberty-demo"
oc project open-liberty-demo
Creare un flusso di immagini.
oc create imagestream ${IMAGE_NAME}
Creare una configurazione di compilazione che specifica il tag del flusso di immagini dell'output di compilazione.
oc new-build --name ${IMAGE_NAME}-config --binary --strategy docker --to ${IMAGE_NAME}:${IMAGE_VERSION}
Avviare la compilazione per caricare contenuti locali, contenitori e output nel tag del flusso di immagini specificato in precedenza.
oc start-build ${IMAGE_NAME}-config --from-dir . --follow
Distribuire l'applicazione nel cluster Azure Red Hat OpenShift 4
È ora possibile distribuire l'applicazione Liberty di esempio nel cluster Azure Red Hat OpenShift 4 creato in precedenza durante l'uso dei prerequisiti.
- con database dalla console Web
- con db dall'interfaccia della riga di comando
- senza database dalla console Web
- senza database dall'interfaccia della riga di comando
Distribuire l'applicazione dalla console Web
Poiché si usa Open Liberty Operator per gestire le applicazioni Liberty, è necessario creare un'istanza della relativa definizione di risorsa personalizzata, di tipo OpenLibertyApplication
. L'operatore si occupa di tutti gli aspetti della gestione delle risorse OpenShift necessarie per la distribuzione.
Accedere alla console Web OpenShift dal browser usando le
kubeadmin
credenziali.Espandere Home, Selezionare Progetti>open-liberty-demo.
Passare a Operatori> installati.
Al centro della pagina selezionare Apri Liberty.
In API fornite selezionare OpenLibertyApplication. La navigazione degli elementi nell'interfaccia utente rispecchia la gerarchia effettiva di contenimento delle tecnologie in uso.
Selezionare Crea OpenLibertyApplication.
Selezionare visualizzazione YAML per Configura tramite.
Sostituire il file yaml generato con yours, disponibile in <path-to-repo>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.
Seleziona Crea. Si torna all'elenco di OpenLibertyApplications.
Passare a Carichi di lavoro>Segreti.
Selezionare Crea> da YAML.
Sostituire il file yaml generato con il <percorso path-to-repo>/3-integration/connect-db/mysql/target/db-secret.yaml.
Seleziona Crea. Si torna alla pagina Dei dettagli del segreto.
Passare a Operatori>>installati Open Liberty>OpenLibertyApplication.
Selezionare javaee-café-mysql.
Nella parte centrale della pagina selezionare Risorse.
Nella tabella selezionare il collegamento per javaee-café-mysql con tipo di route.
Nella pagina visualizzata selezionare il collegamento seguente Percorso.
Viene visualizzata la home page dell'applicazione aperta nel browser.
Eliminare l'applicazione dalla console Web
Al termine dell'applicazione, seguire questa procedura per eliminare l'applicazione da Open Shift.
- Nel riquadro di spostamento sinistro espandere la voce per Operatori.
- Selezionare Operatori installati.
- Selezionare Apri libertà.
- Al centro della pagina selezionare OpenLibertyApplication.
- Per javaee-café-mysql, selezionare i puntini di sospensione verticali (tre punti verticali) e quindi selezionare Elimina OpenLibertyApplication.
- Selezionare Elimina per eliminare l'applicazione.
Seguire questa procedura per eliminare il segreto da Open Shift.
- Passare a Carichi di lavoro>Segreti.
- Selezionare db-secret-mysql.
- Selezionare Azioni>Elimina segreto.
- Selezionare Elimina per eliminare il segreto.
Pulire le risorse
Eliminare il cluster Azure Red Hat OpenShift seguendo la procedura descritta in Esercitazione: Eliminare un cluster Azure Red Hat OpenShift 4
Passaggi successivi
In questa guida si è appreso come:
- Preparare l'applicazione Liberty
- Compilare l'immagine dell'applicazione
- Eseguire l'applicazione in contenitori in un cluster Azure Red Hat OpenShift 4 usando l'interfaccia utente grafica e l'interfaccia della riga di comando
Per altre informazioni, vedere i riferimenti usati in questa guida:
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per