Azure Kubernetes Service (AKS) kümesinde Open Liberty veya WebSphere Liberty ile java uygulaması dağıtma
Bu makalede şunların nasıl yapılacağını gösterilmektedir:
- Java, Java EE, Jakarta EE veya MicroProfile uygulamanızı Open Liberty veya IBM WebSphere Liberty çalışma zamanında çalıştırın.
- Open Liberty veya WebSphere Liberty kapsayıcı görüntülerini kullanarak ile
az acr build
uygulamanın Docker görüntüsünü oluşturun. - Open Liberty operator veya WebSphere Liberty Operator kullanarak kapsayıcılı uygulamayı bir Azure Kubernetes Service (AKS) kümesine dağıtın.
Open Liberty Operatörü, Kubernetes kümelerinde çalışan uygulamaların dağıtımını ve yönetimini basitleştirir. Open Liberty Operatörü veya WebSphere Liberty Operatörü ile izlemeleri ve dökümleri toplama gibi daha gelişmiş işlemler de gerçekleştirebilirsiniz.
Bu makale, AKS yolculuğunuzu hızlandırmak için Open Liberty veya WebSphere Liberty için Azure Market teklifini kullanır. Teklif, aşağıdakiler dahil olmak üzere bazı Azure kaynaklarını otomatik olarak sağlar:
- Azure Container Registry örneği.
- AKS kümesi.
- Application Gateway Giriş Denetleyicisi (AGIC) örneği.
- Open Liberty Operatörü ve WebSphere Liberty Operatörü.
- İsteğe bağlı olarak, Liberty ve uygulamanızı içeren bir kapsayıcı görüntüsü.
AKS üzerinde Liberty çalıştırmak için el ile adım adım kılavuzu tercih ediyorsanız bkz . Azure Kubernetes Service (AKS) kümesinde Open Liberty veya WebSphere Liberty ile java uygulamasını el ile dağıtma.
Bu makale, dağıtıma hızlı bir şekilde başlamanıza yardımcı olmak için tasarlanmıştır. Üretime geçmeden önce Liberty'yi ayarlama hakkındaki IBM belgelerini incelemeniz gerekir.
Azure'da WebSphere çözümleri geliştiren mühendislik ekibiyle geri bildirim sağlamak veya geçiş senaryolarınız üzerinde yakından çalışmak istiyorsanız, WebSphere geçişiyle ilgili bu kısa anketi doldurun ve iletişim bilgilerinizi ekleyin. Program yöneticileri, mimarlar ve mühendislerden oluşan ekip, yakın işbirliği başlatmak için sizinle hemen iletişime geçecektir.
Önkoşullar
- Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
- Ubuntu, Azure Linux, macOS veya Linux için Windows Alt Sistemi gibi Unix benzeri işletim sistemi yüklü yerel bir makine hazırlayın.
-
Azure CLI komutlarını çalıştırmak için Azure CLI'yi yükleyin.
- komutunu kullanarak Azure CLI'da oturum
az login
açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz . Azure CLI ile Azure'da oturum açma. - İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz . Azure CLI ile uzantıları kullanma ve yönetme.
- Yüklü sürümü ve bağımlı kitaplıkları bulmak için komutunu çalıştırın
az version
. En son sürüme yükseltmek için komutunu çalıştırınaz upgrade
. Bu makale, Azure CLI'nın en az 2.61.0 sürümünü gerektirir.
- komutunu kullanarak Azure CLI'da oturum
- Java Standard Sürümü (SE) uygulaması, sürüm 17 (örneğin Eclipse Open J9) yükleyin.
- Maven 3.9.8 veya üzerini yükleyin.
- Git'in yüklü olduğundan emin olun.
- Size abonelikteki
Owner
rol veyaContributor
veUser Access Administrator
rolleri atandığından emin olun. Bir kullanıcı veya grup için rol atamalarını listeleme bölümünde yer alan adımları izleyerek bunu doğrulayabilirsiniz.
Portalı kullanarak AKS dağıtımında Özgürlük oluşturma
Aşağıdaki adımlar AKS'de Liberty çalışma zamanı oluşturma konusunda size yol gösterir. Bu adımları tamamladıktan sonra kapsayıcılı uygulamanızı dağıtmak için bir Container Registry örneğiniz ve bir AKS kümeniz olur.
Azure portala gidin. Sayfanın üst kısmındaki arama kutusuna Kubernetes'te WebSphere Liberty/Open Liberty yazın. Öneriler görüntülendiğinde Market bölümünde yalnızca ve yalnızca birini seçin.
İsterseniz doğrudan teklife gidebilirsiniz.
Oluştur'u belirleyin.
Temel Bilgiler bölmesinde:
- Yeni bir kaynak grubu oluşturma. Kaynak gruplarının bir abonelik içinde benzersiz olması gerektiğinden, benzersiz bir ad seçin. Benzersiz adlar kullanmanın kolay bir yolu, baş harflerinizin, bugünün tarihinin ve bazı tanımlayıcıların (örneğin,
ejb0913-java-liberty-project-rg
) bir bileşimini kullanmaktır. Bu makalede daha sonra kullanmak üzere kaynak grubu adını bir kenara kaydedin. - Bölge için size yakın bir bölge seçin. Örneğin Doğu ABD 2'yi seçin.
- Yeni bir kaynak grubu oluşturma. Kaynak gruplarının bir abonelik içinde benzersiz olması gerektiğinden, benzersiz bir ad seçin. Benzersiz adlar kullanmanın kolay bir yolu, baş harflerinizin, bugünün tarihinin ve bazı tanımlayıcıların (örneğin,
İleri'yi seçin. AKS bölmesinde, dağıtımın yenilerini oluşturmasına neden olmak yerine isteğe bağlı olarak mevcut bir AKS kümesini ve Container Registry örneğini seçebilirsiniz. Bu seçenek, Azure Mimari Merkezi'nde gösterildiği gibi sepet desenini kullanmanıza olanak tanır. AKS düğüm havuzundaki sanal makinelerin boyutu ve sayısı için ayarları da ayarlayabilirsiniz.
Bu makalenin amaçları doğrultusunda, tüm varsayılan değerleri bu bölmede tutması gerekir.
İleri'yi seçin. Yük Dengeleme bölmesinde, Azure Uygulaması lication Gateway'e bağlanın mı? seçeneğinin yanındaki Evet'i seçin. Bu bölümde, aşağıdaki dağıtım seçeneklerini özelleştirebilirsiniz:
Sanal ağ ve Alt Ağ için isteğe bağlı olarak dağıtımın kaynakları yerleştirdiği sanal ağı ve alt ağı özelleştirebilirsiniz. Kalan değerleri varsayılan değerlerinden değiştirmeniz gerekmez.
TLS/SSL sertifikası için Azure Uygulaması lication Gateway'den TLS/SSL sertifikası sağlayabilirsiniz. Teklifin otomatik olarak imzalanan bir sertifika oluşturmasına neden olmak için değerleri varsayılan değerlerinde bırakın.
Otomatik olarak imzalanan sertifikayla üretime gitmeyin. Otomatik olarak imzalanan sertifikalar hakkında daha fazla bilgi için bkz . Uygulamanızın kimliğini doğrulamak için otomatik olarak imzalanan ortak sertifika oluşturma.
Yapışkan oturumlar olarak da bilinen Tanımlama bilgisi tabanlı bennizimi etkinleştir'i seçebilirsiniz. Bu makalede yapışkan oturumlar kullanılır, bu nedenle bu seçeneği belirlediğinizden emin olun.
İleri'yi seçin. İşleç ve uygulama bölmesinde, bu makalede tüm varsayılanlar kullanılır. Ancak, aşağıdaki dağıtım seçeneklerini özelleştirebilirsiniz:
- Ibm tarafından desteklenen? seçeneği için Evet'i seçerek WebSphere Liberty Operator'ı dağıtabilirsiniz. Varsayılan Hayır ayarından çıkılırsa Open Liberty İşleci dağıtılır.
- Uygulama dağıtın mı? seçeneği için Evet'i seçerek seçtiğiniz işleç için bir uygulama dağıtabilirsiniz. Varsayılan Hayır ayarından çıkılması herhangi bir uygulama dağıtmaz.
Seçtiğiniz seçenekleri doğrulamak için Gözden geçir + oluştur'u seçin. Gözden Geçir + oluştur bölmesinde, Doğrulama geçtikten sonra Oluştur kullanılabilir hale geldi ifadesini gördüğünüzde seçin.
Dağıtım 20 dakika kadar sürebilir. Dağıtımın tamamlanmasını beklerken, Azure SQL Veritabanı örneği oluşturma bölümündeki adımları izleyebilirsiniz. Bu bölümü tamamladıktan sonra buraya geri dönün ve devam edin.
Dağıtımdan seçilen bilgileri yakalama
Dağıtım devam ediyor bölmesinden taşındıysanız, aşağıdaki adımlarda bu bölmeye nasıl geri döndüğünüz gösterilir. Dağıtımınız tamamlandı ifadesini gösteren bölmedeyseniz yeni oluşturulan kaynak grubuna gidin ve üçüncü adıma geçin.
Herhangi bir portal sayfasının köşesinde menü düğmesini ve ardından Kaynak grupları'nı seçin.
Herhangi bir alan için Filtre uygula metnini içeren kutuya, daha önce oluşturduğunuz kaynak grubunun ilk birkaç karakterini girin. Önerilen kuralı izlediyseniz, baş harflerinizi girin ve uygun kaynak grubunu seçin.
Kaynak grubundaki kaynak listesinde, Tür değeri Container registry olan kaynağı seçin.
Gezinti bölmesindeki Ayarlar'ın altında Erişim tuşları'nı seçin.
Kayıt defteri adı ve Oturum açma sunucusu değerlerini bir kenara kaydedin. Değeri sistem panosuna kopyalamak için her alanın yanındaki kopyala simgesini kullanabilirsiniz.
Not
Bu makalede, Container Registry'yi ve kullanmadan
username
Docker görüntüsünü derlemek vepassword
Container Registry'ye göndermek için komutu kullanılıraz acr build
. ve iledocker login
docker push
kullanıcı adı ve parola hala kullanılabilir. Kullanıcı adı ve parola kullanmak, parolasız kimlik doğrulamasından daha az güvenlidir.Kaynakları dağıtdığınız kaynak grubuna geri dönün.
Ayarlar bölümünde Dağıtımlar'ı seçin.
Listede en alttaki dağıtımı seçin. Dağıtım adı değeri teklifin yayımcı kimliğiyle eşleşir. dizesini
ibm
içerir.Gezinti bölmesinde Çıkışlar'ı seçin.
Önceki değerlerle aynı kopyalama tekniğini kullanarak aşağıdaki çıkışların değerlerini bir kenara kaydedin:
cmdToConnectToCluster
appDeploymentTemplateYaml
dağıtım bir uygulama içermiyorsa. Başka bir ifadeyle, Market teklifini dağıttığınızda Uygulama dağıtmak için Hayır'ı seçtiniz. Bu makalede Hayır seçilmiştir. Ancak Evet'i seçtiyseniz, uygulama dağıtımınıappDeploymentYaml
içeren değerini bir kenara kaydedin.veya
appDeploymentYaml
değeriniappDeploymentTemplateYaml
bash kabuğuna yapıştırın ve komutunu çalıştırın.Bu komutun çıktısı uygulama dağıtımı YAML'dir. gibi
- secretName: secret785e2c
anahtar sözcüğüylesecretName
giriş TLS gizli dizisini arayın. Değeri bir kenarasecretName
kaydedin.
Önceki adımlarda yakaladığınız ortam değişkenlerini ayarlamak için aşağıdaki komutları çalıştırın. Bu ortam değişkenleri bu makalenin devamında kullanılır.
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>
Azure SQL Veritabanı örneği oluşturma
Bu bölümde, uygulamanızla kullanmak üzere Azure SQL Veritabanı tek bir veritabanı oluşturacaksınız.
İlk olarak veritabanıyla ilgili ortam değişkenlerini ayarlayın. değerini Azure SQL Veritabanı sunucunuz için benzersiz bir adla değiştirin<your-unique-sql-server-name>
.
export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb
terminalinizde aşağıdaki komutu çalıştırarak Azure SQL Veritabanı'da tek bir veritabanı oluşturun ve geçerli oturum açmış kullanıcıyı Microsoft Entra yöneticisi olarak ayarlayın. Daha fazla bilgi için bkz. Hızlı Başlangıç: Tek veritabanı oluşturma - Azure SQL Veritabanı.
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
Ardından yerel makinenizin daha sonra yerel test için veritabanına bağlanmasına izin vermek için yerel IP adresini Azure SQL Veritabanı sunucu güvenlik duvarı kurallarına ekleyin.
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
Not
Bu makale, güvenlikle ilgili en iyi yöntemleri göstermek için SQL kimlik doğrulamasını devre dışı bırakır. Microsoft Entra Id, sunucu bağlantısının kimliğini doğrulamak için kullanılır. SQL kimlik doğrulamasını etkinleştirmeniz gerekiyorsa bkz az sql server create
. .
Hizmet Bağlayıcısı ile AKS'de hizmet bağlantısı oluşturma
Bu bölümde, Hizmet Bağlayıcısı ile Microsoft Entra İş Yükü Kimliği kullanarak AKS kümesi ile Azure SQL Veritabanı arasında bir hizmet bağlantısı oluşturacaksınız. Bu bağlantı, AKS kümesinin SQL kimlik doğrulaması kullanmadan Azure SQL Veritabanı erişmesine olanak tanır.
İlk olarak, daha önce dağıtılan Application Gateway için uygulamaya Azure Hizmet Bağlayıcısı Kaynak Sağlayıcısı izinleri verin. Aks kümesi ile Azure SQL Veritabanı arasında başarıyla bir hizmet bağlantısı oluşturmak için bu adım gereklidir.
- Azure portalına gidin ve daha önce oluşturduğunuz kaynak grubuna gidin.
- Kaynak grubundaki kaynak listesinde, Application gateway Tür değerine sahip kaynağı seçin.
- Erişim denetimi (IAM) öğesini seçin. Ardından Ekle'yi genişletin ve Rol ataması ekle'yi seçin.
- Rol sekmesinde Ayrıcalıklı yönetici rolleri'ni seçin. Ardından Katkıda Bulunan'ı seçin. İleri'yi seçin.
- Üyeler sekmesinde Üye seç'i seçin. Ardından Azure Hizmet Bağlayıcısı Kaynak Sağlayıcısı uygulamasını arayın. Uygulamayı seçin ve Seç'i seçin. İleri'yi seçin.
- Gözden geçir + ata'yı seçin. Rol atamasının tamamlanması için birkaç saniye bekleyin.
Ardından, Hizmet Bağlayıcısı ile Microsoft Entra İş Yükü Kimliği kullanarak AKS kümesi ile SQL veritabanı arasında bağlantı oluşturmak için aşağıdaki komutları çalıştırın. Daha fazla bilgi için bkz. Hizmet Bağlayıcısı ile AKS'de hizmet bağlantısı oluşturma (önizleme).
# 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
Not
SQL kimlik doğrulaması kullanmadan Azure SQL Veritabanı güvenli erişim için Microsoft Entra İş Yükü Kimliği kullanmanızı öneririz. SQL kimlik doğrulamasını kullanmanız gerekiyorsa, bu bölümdeki önceki adımları yoksayın ve Azure SQL Veritabanı bağlanmak için kullanıcı adı ve parolayı kullanın.
Hizmet Bağlayıcısı tarafından oluşturulan hizmet hesabını ve gizli diziyi alma
Azure SQL Veritabanı kimlik doğrulaması yapmak için Hizmet Bağlayıcısı tarafından oluşturulan hizmet hesabını ve gizli diziyi almanız gerekir. Öğretici: AKS uygulamasını Azure SQL Veritabanı'ye bağlama bölümünün Kapsayıcınızı güncelleştirme bölümündeki yönergeleri izleyin. Sağlanan YAML örnek kod parçacığını kullanarak doğrudan dağıtım oluşturma seçeneğini kullanın ve aşağıdaki adımları kullanın:
Aşağıdaki örnekte gösterildiği gibi, örnek Kubernetes dağıtımı YAML'deki vurgulanan bölümlerden ve
secretRef.name
değerlerini kopyalayınserviceAccountName
:serviceAccountName: <service-account-name> containers: - name: raw-linux envFrom: - secretRef: name: <secret-name>
Ortam değişkenlerini tanımlamak için aşağıdaki komutları kullanın. ve
<secret-name>
değerini önceki adımda kopyaladığınız değerlerle değiştirin<service-account-name>
.export SERVICE_ACCOUNT_NAME=<service-account-name> export SECRET_NAME=<secret-name>
Bu değerler sonraki bölümde Liberty uygulamasını AKS kümesine dağıtmak için kullanılır.
Not
Service Connector tarafından oluşturulan gizli dizi, Azure SQL Veritabanı parolasız bir bağlantı dizesi olan öğesini içerirAZURE_SQL_CONNECTIONSTRING
. Daha fazla bilgi için Hizmet Bağlayıcısı ile Azure SQL Veritabanı Tümleştirme'nin Kullanıcı tarafından atanan yönetilen kimlik kimlik doğrulaması bölümündeki örnek değere bakın.
Artık veritabanını ve AKS kümesini ayarladığınıza göre, Open Liberty uygulamanızı barındırmak için AKS'yi hazırlamaya devam edebilirsiniz.
Örnek uygulamayı yapılandırma ve dağıtma
Liberty çalışma zamanında örnek uygulamayı dağıtmak için bu bölümdeki adımları izleyin. Bu adımlarda Maven kullanılır.
Uygulamayı gözden geçirin
Bu makalenin örnek kodunu kopyalayın. Örnek GitHub'dadır.
Depoda birkaç örnek vardır. Bu makalede java-app kullanılır. Örneği almak için aşağıdaki komutları çalıştırın:
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20241107
"Ayrılmış HEAD" durumunda olma hakkında bir ileti görürseniz, bunu güvenle yoksayabilirsiniz. İleti yalnızca bir etiketi kullanıma aldığınız anlamına gelir.
Önemli dosya ve dizinlerle birlikte uygulamanın dosya yapısı aşağıdadır:
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
Java, resources ve webapp dizinleri örnek uygulamanın kaynak kodunu içerir. Kod adlı jdbc/JavaEECafeDB
bir veri kaynağı bildirir ve kullanır.
aks dizininde openlibertyapplication-agic-passwordless-db.yaml dosyası, uygulama görüntüsünü AGIC ve parolasız bağlantıyla Azure SQL Veritabanı dağıtmak için kullanılır. Bu makalede, bu dosyayı kullandığınız varsayılır.
Docker dizininde, Open Liberty veya WebSphere Liberty ile uygulama görüntüsünü oluşturmak için iki dosya vardır.
Liberty/config dizininde server.xml dosyası Open Liberty ve WebSphere Liberty kümesi için veritabanı bağlantısını yapılandırmak için kullanılır. Azure SQL Veritabanı bağlanmak için kullanılan bir değişken azure.sql.connectionstring
tanımlar.
pom.xml dosyası, projenin yapılandırma bilgilerini içeren Maven proje nesne modeli (POM) dosyasıdır.
pom-azure-identity.xml dosyası üzerinde azure-identity
bir bağımlılık bildirir. Bu dosya, Microsoft Entra Id kullanarak Azure hizmetlerinde kimlik doğrulaması yapmak için kullanılır.
Not
Bu örnek, Microsoft Entra kimlik doğrulamasını azure-identity
kullanarak Azure SQL Veritabanı kimlik doğrulaması yapmak için kitaplığını kullanır. Liberty uygulamanızda SQL kimlik doğrulaması kullanmanız gerekiyorsa bkz . JDBC ile ilişkisel veritabanı bağlantıları.
Projeyi derleme
Artık gerekli özellikleri topladığınıza göre uygulamayı derleyin. Projenin POM dosyası ortamdan birçok değişken okur. Maven derlemesinin bir parçası olarak, bu değişkenler src/main/aks içinde bulunan YAML dosyalarındaki değerleri doldurmak için kullanılır. İsterseniz Maven dışında uygulamanız için benzer bir şey yapabilirsiniz.
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
Projenizi yerel olarak test etme
Azure'a dağıtmadan önce projeyi yerel olarak çalıştırın ve test edin. Kolaylık sağlamak için bu makalede kullanılır liberty-maven-plugin
. hakkında liberty-maven-plugin
daha fazla bilgi edinmek için Open Liberty makalesine bakın Maven ile web uygulaması oluşturma.
Not
"Sunucusuz" bir veritabanı dağıtımı seçtiyseniz, SQL veritabanınızın duraklatma moduna girmediğini doğrulayın. Bunun bir yolu, Hızlı Başlangıç: Azure portal sorgu düzenleyicisini (önizleme) kullanarak Azure SQL Veritabanı sorgulamada açıklandığı gibi veritabanı sorgu düzenleyicisinde oturum açmaktır.
kullanarak
liberty:run
uygulamayı başlatın.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
Uygulamanın beklendiği gibi çalıştığını doğrulayın. Komut çıkışında şuna
[INFO] [AUDIT ] CWWKZ0001I: Application javaee-cafe started in 18.235 seconds.
benzer bir ileti görmeniz gerekir. Tarayıcınızda adresinehttp://localhost:9080/
gidin ve uygulamanın erişilebilir olduğunu ve tüm işlevlerin çalıştığını doğrulayın.Durdurmak için Ctrl C tuşlarına+basın. Toplu işi sonlandırmanız istenirse Y tuşuna basın.
İşiniz bittiğinde, aşağıdaki komutu kullanarak yerel IP adresinizin Azure SQL Veritabanı erişmesine izin veren güvenlik duvarı kuralını silin:
az sql server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP
AKS dağıtımı için görüntü oluşturma
Şimdi aşağıdaki örnekte gösterildiği gibi görüntüyü oluşturmak için komutunu çalıştırabilirsiniz az acr build
:
cd $BASE_DIR/java-app/target
az acr build \
--registry ${REGISTRY_NAME} \
--image javaee-cafe:v1 \
.
komutu Dockerfile az acr build
dosyasında belirtilen yapıtları Container Registry örneğine yükler, görüntüyü derler ve Container Registry örneğinde depolar.
Uygulamayı AKS kümesine dağıtma
Liberty uygulamasını AKS kümesine dağıtmak için aşağıdaki adımları kullanın:
AKS kümesine bağlanın.
değerini
cmdToConnectToCluster
bir kabuğa yapıştırın ve komutunu çalıştırın.Aşağıdaki komutları çalıştırarak dağıtım dosyasını uygulayın:
cd $BASE_DIR/java-app/target # Apply deployment file kubectl apply -f openlibertyapplication-agic-passwordless-db.yaml
Aşağıdaki komutu kullanarak tüm podların başarıyla yeniden başlatılmasını bekleyin:
kubectl get pods --watch
Aşağıdaki örneğe benzer çıkış, tüm podların çalıştığını gösterir:
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
Uygulamayı test etme
Podlar çalışırken Application Gateway örneğinin genel IP adresini kullanarak uygulamayı test edebilirsiniz.
AGIC tarafından oluşturulan giriş kaynağı tarafından kullanıma sunulan Application Gateway örneğinin genel IP adresini almak ve görüntülemek için aşağıdaki komutu çalıştırın:
export APP_URL=https://$(kubectl get ingress | grep javaee-cafe-cluster-agic-ingress | cut -d " " -f14)/
echo $APP_URL
Uygulamanın giriş sayfasını görmek için URL'yi kopyalayın ve tarayıcınızda açın. Web sayfası doğru şekilde işlenmiyorsa veya hata 502 Bad Gateway
döndürüyorsa, uygulama arka planda çalışmaya devam ediyordur. Birkaç dakika bekleyin ve yeniden deneyin.
Kaynakları temizleme
Azure ücretlerinden kaçınmak için gereksiz kaynakları temizlemeniz gerekir. Kümeye artık ihtiyacınız kalmadığında komutunu kullanarak az group delete
kaynak grubunu, kapsayıcı hizmetini, kapsayıcı kayıt defterini, veritabanını ve tüm ilgili kaynakları kaldırın:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Sonraki adımlar
Aşağıdaki başvurulardan daha fazla bilgi edinebilirsiniz:
- Azure Kubernetes Service
- Öğretici: AKS uygulamasını Azure SQL Veritabanı bağlama
- hizmet bağlayıcısı ile Azure SQL Veritabanı tümleştirme
- Microsoft Entra kimlik doğrulamayı kullanarak bağlanma
- Açık Özgürlük
- Open Liberty İşleci
- Liberty sunucu yapılandırmasını açma
- Liberty Maven Eklentisi
- Open Liberty Container Images
- WebSphere Liberty Kapsayıcı Görüntüleri
IBM WebSphere ailesini Azure'da dağıtma hakkında daha fazla bilgi için bkz . WebSphere ürün ailesini Azure'da çalıştırmaya yönelik çözümler nelerdir?.
Azure Kubernetes Service