Menyebarkan aplikasi Java dengan Open Liberty atau WebSphere Liberty pada kluster Azure Kubernetes Service (AKS)
Artikel ini menunjukkan cara untuk:
- Jalankan aplikasi Java, Java EE, Jakarta EE, atau MicroProfile Anda pada runtime Open Liberty atau IBM WebSphere Liberty .
- Buat gambar Docker aplikasi dengan menggunakan
az acr build
gambar kontainer Open Liberty atau WebSphere Liberty. - Sebarkan aplikasi dalam kontainer ke kluster Azure Kubernetes Service (AKS) dengan menggunakan Operator Open Liberty atau Operator WebSphere Liberty.
Open Liberty Operator menyederhanakan penyebaran dan pengelolaan aplikasi yang berjalan pada kluster Kube. Dengan Operator Open Liberty atau Operator WebSphere Liberty, Anda juga dapat melakukan operasi yang lebih canggih, seperti mengumpulkan jejak dan cadangan.
Artikel ini menggunakan penawaran Marketplace Azure untuk Open Liberty atau WebSphere Liberty untuk mempercepat perjalanan Anda ke AKS. Penawaran ini secara otomatis menyediakan beberapa sumber daya Azure, termasuk:
- Instans Azure Container Registry.
- Kluster AKS.
- Instans Application Gateway Ingress Controller (AGIC).
- Operator Open Liberty dan Operator WebSphere Liberty.
- Secara opsional, gambar kontainer yang mencakup Liberty dan aplikasi Anda.
Jika Anda lebih suka panduan langkah demi langkah manual untuk menjalankan Liberty di AKS, lihat Menyebarkan aplikasi Java secara manual dengan Open Liberty atau WebSphere Liberty pada kluster Azure Kubernetes Service (AKS).
Artikel ini dimaksudkan untuk membantu Anda dengan cepat sampai ke penyebaran. Sebelum pergi ke produksi, Anda harus menjelajahi dokumentasi IBM tentang penyetelan Liberty.
Jika Anda tertarik untuk memberikan umpan balik atau bekerja erat pada skenario migrasi Anda dengan tim teknik yang mengembangkan WebSphere di solusi Azure, isi survei singkat ini tentang migrasi WebSphere dan sertakan informasi kontak Anda. Tim manajer program, arsitek, dan insinyur akan segera menghubungi Anda untuk memulai kolaborasi yang erat.
Prasyarat
- Langganan Azure. Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
- Siapkan komputer lokal dengan sistem operasi seperti Unix yang terinstal - misalnya, Ubuntu, Azure Linux, macOS, atau Subsistem Windows untuk Linux.
-
Instal Azure CLI untuk menjalankan perintah Azure CLI.
- Masuk ke Azure CLI dengan menggunakan
az login
perintah . Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk ke Azure dengan Azure CLI. - Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan dan mengelola ekstensi dengan Azure CLI.
- Jalankan
az version
untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankanaz upgrade
. Artikel ini memerlukan setidaknya Azure CLI versi 2.61.0.
- Masuk ke Azure CLI dengan menggunakan
- Instal implementasi Java Standard Edition (SE), versi 17 (misalnya, Eclipse Open J9).
- Instal Maven 3.9.8 atau yang lebih tinggi.
- Pastikan Git diinstal.
- Pastikan Anda diberi
Owner
peran atauContributor
peran danUser Access Administrator
dalam langganan. Anda dapat memverifikasinya dengan mengikuti langkah-langkah dalam Mencantumkan penetapan peran untuk pengguna atau grup.
Membuat Liberty pada penyebaran AKS menggunakan portal
Langkah berikut memandu Anda untuk membuat runtime Liberty di AKS. Setelah menyelesaikan langkah-langkah ini, Anda akan memiliki instans Container Registry dan kluster AKS untuk menyebarkan aplikasi kontainer Anda.
Buka portal Azure. Di kotak pencarian di bagian atas halaman, masukkan WebSphere Liberty/Open Liberty di Kubernetes. Saat saran muncul, pilih satu dan hanya cocok di bagian Marketplace .
Jika mau, Anda dapat langsung membuka penawaran.
Pilih Buat.
Pada panel Dasar :
- Membuat grup sumber daya baru. Karena grup sumber daya harus unik dalam langganan, pilih nama unik. Cara mudah untuk memiliki nama unik adalah dengan menggunakan kombinasi inisial Anda, tanggal hari ini, dan beberapa pengidentifikasi (misalnya,
ejb0913-java-liberty-project-rg
). Simpan selain nama grup sumber daya untuk digunakan nanti dalam artikel ini. - Untuk Wilayah, pilih wilayah yang dekat dengan Anda. Misalnya, pilih US Timur 2.
- Membuat grup sumber daya baru. Karena grup sumber daya harus unik dalam langganan, pilih nama unik. Cara mudah untuk memiliki nama unik adalah dengan menggunakan kombinasi inisial Anda, tanggal hari ini, dan beberapa pengidentifikasi (misalnya,
Pilih Selanjutnya. Pada panel AKS , Anda dapat secara opsional memilih kluster AKS dan instans Container Registry yang ada, alih-alih menyebabkan penyebaran membuat yang baru. Pilihan ini memungkinkan Anda menggunakan pola sespan, seperti yang ditunjukkan di Azure Architecture Center. Anda juga dapat menyesuaikan pengaturan untuk ukuran dan jumlah mesin virtual di kumpulan node AKS.
Untuk tujuan artikel ini, simpan saja semua default di panel ini.
Pilih Selanjutnya. Pada panel Load Balancing , di samping Sambungkan ke Azure Application Gateway?, pilih Ya. Di bagian ini, Anda dapat mengkustomisasi opsi penyebaran berikut:
Untuk Jaringan virtual dan Subnet, Anda dapat secara opsional menyesuaikan jaringan virtual dan subnet tempat penyebaran menempatkan sumber daya. Anda tidak perlu mengubah nilai yang tersisa dari defaultnya.
Untuk sertifikat TLS/SSL, Anda dapat memberikan sertifikat TLS/SSL dari Azure Application Gateway. Biarkan nilai di defaultnya menyebabkan penawaran menghasilkan sertifikat yang ditandatangani sendiri.
Jangan pergi ke produksi dengan sertifikat yang ditandatangani sendiri. Untuk informasi selengkapnya mengenai sertifikat yang ditandatangani sendiri, lihat Membuat sertifikat publik yang ditandatangani sendiri untuk mengautentikasi aplikasi Anda.
Anda dapat memilih Aktifkan afinitas berbasis cookie, juga dikenal sebagai sesi lengket. Artikel ini menggunakan sesi lengket, jadi pastikan untuk memilih opsi ini.
Pilih Selanjutnya. Pada panel Operator dan aplikasi , artikel ini menggunakan semua default. Namun, Anda dapat menyesuaikan opsi penyebaran berikut:
- Anda dapat menyebarkan Operator WebSphere Liberty dengan memilih Ya untuk opsi yang didukung IBM?. Meninggalkan default Tidak menyebarkan Operator Open Liberty.
- Anda dapat menyebarkan aplikasi untuk operator yang Anda pilih dengan memilih Ya untuk opsi Sebarkan aplikasi?. Meninggalkan default Tidak tidak menyebarkan aplikasi apa pun.
Pilih Tinjau + buat untuk memvalidasi opsi pilihan Anda. Pada panel Tinjau + buat , saat Anda melihat Buat tersedia setelah validasi lolos, pilih.
Penyebaran dapat memakan waktu hingga 20 menit. Sambil menunggu penyebaran selesai, Anda dapat mengikuti langkah-langkah di bagian Membuat instans Azure SQL Database. Setelah Anda menyelesaikan bagian itu, kembali ke sini dan melanjutkan.
Mengambil informasi yang dipilih dari penyebaran
Jika Anda menjauh dari panel Penyebaran sedang berlangsung , langkah-langkah berikut menunjukkan kepada Anda cara kembali ke panel tersebut. Jika Anda masih berada di panel yang memperlihatkan Penyebaran Anda selesai, buka grup sumber daya yang baru dibuat dan lewati ke langkah ketiga.
Di sudut halaman portal mana pun, pilih tombol menu, lalu pilih Grup sumber daya.
Dalam kotak dengan teks Filter untuk bidang apa pun, masukkan beberapa karakter pertama grup sumber daya yang Anda buat sebelumnya. Jika Anda mengikuti konvensi yang direkomendasikan, masukkan inisial Anda, lalu pilih grup sumber daya yang sesuai.
Dalam daftar sumber daya dalam grup sumber daya, pilih sumber daya dengan nilai Jenis registri Kontainer.
Pada panel navigasi, di bawah Pengaturan, pilih Tombol akses.
Simpan selain nilai untuk Nama registri dan server Masuk. Anda dapat menggunakan ikon salin di samping setiap bidang untuk menyalin nilai ke clipboard sistem.
Catatan
Artikel ini menggunakan
az acr build
perintah untuk membangun dan mendorong gambar Docker ke Container Registry, tanpa menggunakanusername
danpassword
Dari Container Registry. Masih dimungkinkan untuk menggunakan nama pengguna dan kata sandi dengandocker login
dandocker push
. Menggunakan nama pengguna dan kata sandi kurang aman daripada autentikasi tanpa kata sandi.Kembali ke grup sumber daya tempat Anda menyebarkan sumber daya.
Di bagian Setelan, pilih Penyebaran.
Pilih penyebaran paling bawah dalam daftar. Nilai Nama penyebaran cocok dengan ID penerbit penawaran. Ini berisi string
ibm
.Pada panel navigasi, pilih Output.
Dengan menggunakan teknik penyalinan yang sama seperti dengan nilai sebelumnya, simpan selain nilai untuk output berikut:
cmdToConnectToCluster
appDeploymentTemplateYaml
jika penyebaran tidak menyertakan aplikasi. Artinya, Anda memilih Tidak untuk Menyebarkan aplikasi? saat Anda menyebarkan penawaran Marketplace. Artikel ini memilih Tidak. Namun, jika Anda memilih Ya, simpan selain nilaiappDeploymentYaml
, yang mencakup penyebaran aplikasi.Tempelkan nilai
appDeploymentTemplateYaml
atauappDeploymentYaml
ke shell Bash, dan jalankan perintah .Output dari perintah ini adalah YAML penyebaran aplikasi. Cari rahasia ingress TLS dengan kata kunci
secretName
, seperti- secretName: secret785e2c
. Simpan selain nilai .secretName
Jalankan perintah berikut untuk mengatur variabel lingkungan yang Anda ambil di langkah-langkah sebelumnya. Variabel lingkungan ini digunakan nanti dalam artikel ini.
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>
Membuat contoh Azure SQL Database
Di bagian ini, Anda membuat database tunggal Azure SQL Database untuk digunakan dengan aplikasi Anda.
Pertama, atur variabel lingkungan terkait database. Ganti <your-unique-sql-server-name>
dengan nama unik untuk server Azure SQL Database Anda.
export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb
Jalankan perintah berikut di terminal Anda untuk membuat database tunggal di Azure SQL Database dan atur pengguna yang masuk saat ini sebagai admin Microsoft Entra. Untuk informasi selengkapnya, lihat Mulai Cepat: Membuat database tunggal - Azure SQL Database.
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
Kemudian, tambahkan alamat IP lokal ke aturan firewall server Azure SQL Database untuk memungkinkan komputer lokal Anda tersambung ke database untuk pengujian lokal nanti.
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
Catatan
Artikel ini menonaktifkan autentikasi SQL untuk mengilustrasikan praktik terbaik keamanan. ID Microsoft Entra digunakan untuk mengautentikasi koneksi ke server. Jika Anda perlu mengaktifkan autentikasi SQL, lihat az sql server create
.
Membuat koneksi layanan di AKS dengan Konektor Layanan
Di bagian ini, Anda membuat koneksi layanan antara kluster AKS dan Azure SQL Database menggunakan ID Beban Kerja Microsoft Entra dengan Konektor Layanan. Koneksi ini memungkinkan kluster AKS mengakses Azure SQL Database tanpa menggunakan autentikasi SQL.
Pertama, berikan izin Penyedia Sumber Daya Konektor Layanan Azure ke Application Gateway yang disebarkan sebelumnya. Langkah ini diperlukan untuk berhasil membuat koneksi layanan antara kluster AKS dan Azure SQL Database.
- Buka portal Azure dan navigasi ke grup sumber daya yang Anda buat sebelumnya.
- Dalam daftar sumber daya dalam grup sumber daya, pilih sumber daya dengan nilai Jenis gateway Aplikasi.
- Pilih Kontrol Akses (IAM). Kemudian, perluas Tambahkan dan pilih Tambahkan penetapan peran.
- Di tab Peran , pilih Peran administrator istimewa. Lalu, pilih Kontributor. Pilih Selanjutnya.
- Di tab Anggota , pilih Pilih anggota. Kemudian, cari aplikasi Penyedia Sumber Daya Konektor Layanan Azure. Pilih aplikasi dan pilih Pilih. Pilih Selanjutnya.
- Pilih Tinjau + tetapkan. Tunggu beberapa detik hingga penetapan peran selesai.
Kemudian, jalankan perintah berikut untuk membuat koneksi antara kluster AKS dan database SQL menggunakan ID Beban Kerja Microsoft Entra dengan Konektor Layanan. Untuk informasi selengkapnya, lihat Membuat koneksi layanan di AKS dengan Konektor Layanan (pratinjau).
# 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
# 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
Catatan
Sebaiknya gunakan ID Beban Kerja Microsoft Entra untuk akses aman ke Azure SQL Database Anda tanpa menggunakan autentikasi SQL. Jika Anda perlu menggunakan autentikasi SQL, abaikan langkah-langkah sebelumnya di bagian ini dan gunakan nama pengguna dan kata sandi untuk menyambungkan ke Azure SQL Database.
Mendapatkan akun layanan dan rahasia yang dibuat oleh Konektor Layanan
Untuk mengautentikasi ke Azure SQL Database, Anda perlu mendapatkan akun layanan dan rahasia yang dibuat oleh Konektor Layanan. Ikuti instruksi di bagian Perbarui kontainer Anda di Tutorial: Menyambungkan aplikasi AKS ke Azure SQL Database. Ambil opsi Buat penyebaran secara langsung menggunakan cuplikan kode sampel YAML yang disediakan dan gunakan langkah-langkah berikut:
Dari bagian yang disorot dalam sampel YAML penyebaran Kubernetes, salin
serviceAccountName
nilai dansecretRef.name
, seperti yang ditunjukkan dalam contoh berikut:serviceAccountName: <service-account-name> containers: - name: raw-linux envFrom: - secretRef: name: <secret-name>
Gunakan perintah berikut untuk menentukan variabel lingkungan. Ganti
<service-account-name>
dan<secret-name>
dengan nilai yang Anda salin di langkah sebelumnya.export SERVICE_ACCOUNT_NAME=<service-account-name> export SECRET_NAME=<secret-name>
Nilai-nilai ini digunakan di bagian berikutnya untuk menyebarkan aplikasi Liberty ke kluster AKS.
Catatan
Rahasia yang dibuat oleh Konektor Layanan berisi AZURE_SQL_CONNECTIONSTRING
, yang merupakan string koneksi gratis kata sandi ke Azure SQL Database. Untuk informasi selengkapnya, lihat nilai sampel di bagian Autentikasi identitas terkelola yang ditetapkan pengguna di Mengintegrasikan Azure SQL Database dengan Konektor Layanan.
Setelah menyiapkan database dan kluster AKS, Anda dapat melanjutkan untuk menyiapkan AKS untuk menghosting aplikasi Open Liberty Anda.
Konfigurasikan dan sebarkan aplikasi sampel
Ikuti langkah-langkah dalam bagian ini untuk menyebarkan aplikasi sampel pada runtime Liberty. Langkah-langkah ini menggunakan Maven.
Lihat aplikasinya
Klon kode sampel untuk artikel ini. Sampelnya ada di GitHub.
Terdapat beberapa sampel di repositori. Artikel ini menggunakan java-app. Jalankan perintah berikut untuk mendapatkan sampel:
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20241107
Jika Anda melihat pesan tentang berada dalam status "HEAD yang terlepas", Anda dapat mengabaikannya dengan aman. Pesan hanya berarti bahwa Anda memeriksa tag.
Berikut adalah struktur file aplikasi, dengan file dan direktori penting:
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
Direktori java, resources, dan webapp berisi kode sumber dari contoh aplikasi. Kode mendeklarasikan dan menggunakan sumber data bernama jdbc/JavaEECafeDB
.
Dalam direktori aks, file openlibertyapplication-agic-passwordless-db.yaml digunakan untuk menyebarkan gambar aplikasi dengan AGIC dan koneksi tanpa kata sandi ke Azure SQL Database. Artikel ini mengasumsikan bahwa Anda menggunakan file ini.
Di direktori docker, ada dua file untuk membuat gambar aplikasi dengan Open Liberty atau WebSphere Liberty.
Dalam liberty/config direktori, file server.xml digunakan untuk mengonfigurasi koneksi database untuk kluster Open Liberty dan WebSphere Liberty. Ini menentukan variabel azure.sql.connectionstring
yang digunakan untuk menyambungkan ke Azure SQL Database.
File pom.xml adalah file model objek proyek Maven (POM) yang berisi informasi konfigurasi untuk proyek. File pom-azure-identity.xml mendeklarasikan dependensi pada azure-identity
. File ini digunakan untuk mengautentikasi ke layanan Azure menggunakan ID Microsoft Entra.
Catatan
Sampel ini menggunakan azure-identity
pustaka untuk mengautentikasi ke Azure SQL Database menggunakan autentikasi Microsoft Entra. Jika Anda perlu menggunakan autentikasi SQL di aplikasi Liberty Anda, lihat Koneksi database relasional dengan JDBC.
Membangun proyek
Sekarang setelah Anda mengumpulkan properti yang diperlukan, buat aplikasi. File POM untuk proyek membaca banyak variabel dari lingkungan. Sebagai bagian dari build Maven, variabel ini digunakan untuk mengisi nilai dalam file YAML yang terletak di src/main/aks. Anda dapat melakukan sesuatu yang serupa untuk aplikasi Anda di luar Maven jika mau.
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
Uji proyek Anda secara lokal
Jalankan dan uji proyek secara lokal sebelum menyebarkan ke Azure. Untuk kenyamanan, artikel ini menggunakan liberty-maven-plugin
. Untuk mempelajari selengkapnya tentang liberty-maven-plugin
, lihat artikel Open Liberty Membangun aplikasi web dengan Maven.
Catatan
Jika Anda memilih penyebaran database "tanpa server", verifikasi bahwa database SQL Anda belum memasuki mode jeda. Salah satu cara untuk melakukan ini adalah dengan masuk ke editor kueri database seperti yang dijelaskan dalam Mulai Cepat: Gunakan editor kueri portal Azure (pratinjau) untuk mengkueri Azure SQL Database.
Mulai aplikasi dengan menggunakan
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
Verifikasi aplikasi berfungsi seperti yang diharapkan. Anda akan melihat pesan yang mirip
[INFO] [AUDIT ] CWWKZ0001I: Application javaee-cafe started in 18.235 seconds.
dengan dalam output perintah.http://localhost:9080/
Buka di browser Anda dan verifikasi bahwa aplikasi dapat diakses dan semua fungsi berfungsi.Tekan Ctrl+C untuk menghentikan. Tekan Y jika Anda diminta untuk mengakhiri pekerjaan batch.
Setelah selesai, hapus aturan firewall yang memungkinkan alamat IP lokal Anda mengakses Azure SQL Database dengan menggunakan perintah berikut:
az sql server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP
Membangun gambar untuk penyebaran AKS
Sekarang Anda dapat menjalankan az acr build
perintah untuk membangun gambar, seperti yang ditunjukkan dalam contoh berikut:
cd $BASE_DIR/java-app/target
az acr build \
--registry ${REGISTRY_NAME} \
--image javaee-cafe:v1 \
.
az acr build
Perintah mengunggah artefak yang ditentukan dalam Dockerfile ke instans Container Registry, membangun gambar, dan menyimpannya dalam instans Container Registry.
Menyebarkan aplikasi ke kluster AKS
Gunakan langkah-langkah berikut untuk menyebarkan aplikasi Liberty pada kluster AKS:
Sambungkan ke kluster AKS.
Tempelkan nilai
cmdToConnectToCluster
ke dalam shell dan jalankan perintah .Terapkan file penyebaran dengan menjalankan perintah berikut:
cd $BASE_DIR/java-app/target # Apply deployment file kubectl apply -f openlibertyapplication-agic-passwordless-db.yaml
Tunggu hingga semua pod berhasil dimulai ulang dengan menggunakan perintah berikut:
kubectl get pods --watch
Output yang mirip dengan contoh berikut menunjukkan bahwa semua pod sedang berjalan:
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
Uji aplikasi
Saat pod berjalan, Anda dapat menguji aplikasi dengan menggunakan alamat IP publik instans Application Gateway.
Jalankan perintah berikut untuk mendapatkan dan menampilkan alamat IP publik instans Application Gateway, yang diekspos oleh sumber daya ingress yang dibuat oleh AGIC:
export APP_URL=https://$(kubectl get ingress | grep javaee-cafe-cluster-agic-ingress | cut -d " " -f14)/
echo $APP_URL
Salin URL dan buka di browser Anda untuk melihat beranda aplikasi. Jika halaman web tidak dirender dengan benar atau mengembalikan 502 Bad Gateway
kesalahan, aplikasi masih dimulai di latar belakang. Tunggu beberapa menit lalu coba operasikan lagi.
Membersihkan sumber daya
Untuk menghindari biaya Azure, Anda harus membersihkan sumber daya yang tidak diperlukan. Ketika Anda tidak lagi memerlukan kluster, gunakan az group delete
perintah untuk menghapus grup sumber daya, layanan kontainer, registri kontainer, database, dan semua sumber daya terkait:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Langkah berikutnya
Anda dapat mempelajari selengkapnya dari referensi berikut:
- Azure Kubernetes Service
- Tutorial: Menyambungkan aplikasi AKS ke Azure SQL Database
- Mengintegrasikan Azure SQL Database dengan Konektor Layanan
- Menyambungkan menggunakan autentikasi Microsoft Entra
- Open Liberty
- Open Liberty Operator
- Buka konfigurasi server Liberty
- Plugin Liberty Maven
- Gambar Kontainer Open Liberty
- Gambar Kontainer WebSphere Liberty
Untuk informasi selengkapnya tentang menyebarkan keluarga IBM WebSphere di Azure, lihat Apa solusi untuk menjalankan keluarga produk WebSphere di Azure?.
Azure Kubernetes Service