Aracılığıyla paylaş


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ın az upgrade. Bu makale, Azure CLI'nın en az 2.61.0 sürümünü gerektirir.
  • 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 veya Contributor ve User 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.

  1. 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.

  2. Oluştur'u belirleyin.

  3. Temel Bilgiler bölmesinde:

    1. 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.
    2. Bölge için size yakın bir bölge seçin. Örneğin Doğu ABD 2'yi seçin.
  4. İ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.

  5. İ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.

  6. İ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.
  7. 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.

  1. Herhangi bir portal sayfasının köşesinde menü düğmesini ve ardından Kaynak grupları'nı seçin.

  2. 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.

  3. Kaynak grubundaki kaynak listesinde, Tür değeri Container registry olan kaynağı seçin.

  4. Gezinti bölmesindeki Ayarlar'ın altında Erişim tuşları'nı seçin.

  5. 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 ve password Container Registry'ye göndermek için komutu kullanılıraz acr build. ve ile docker logindocker pushkullanıcı adı ve parola hala kullanılabilir. Kullanıcı adı ve parola kullanmak, parolasız kimlik doğrulamasından daha az güvenlidir.

  6. Kaynakları dağıtdığınız kaynak grubuna geri dönün.

  7. Ayarlar bölümünde Dağıtımlar'ı seçin.

  8. Listede en alttaki dağıtımı seçin. Dağıtım adı değeri teklifin yayımcı kimliğiyle eşleşir. dizesini ibmiçerir.

  9. Gezinti bölmesinde Çıkışlar'ı seçin.

  10. Ö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ı appDeploymentYamliçeren değerini bir kenara kaydedin.

      veya appDeploymentYaml değerini appDeploymentTemplateYaml 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: secret785e2canahtar sözcüğüyle secretNamegiriş TLS gizli dizisini arayın. Değeri bir kenara secretName 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.

  1. Azure portalına gidin ve daha önce oluşturduğunuz kaynak grubuna gidin.
  2. Kaynak grubundaki kaynak listesinde, Application gateway Tür değerine sahip kaynağı seçin.
  3. Erişim denetimi (IAM) öğesini seçin. Ardından Ekle'yi genişletin ve Rol ataması ekle'yi seçin.
  4. Rol sekmesinde Ayrıcalıklı yönetici rolleri'ni seçin. Ardından Katkıda Bulunan'ı seçin. İleri'yi seçin.
  5. Ü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.
  6. 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:

  1. 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>
    
  2. 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/JavaEECafeDBbir 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-identitybir 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-plugindaha 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.

  1. kullanarak liberty:runuygulamayı 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
    
  2. 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 adresine http://localhost:9080/ gidin ve uygulamanın erişilebilir olduğunu ve tüm işlevlerin çalıştığını doğrulayın.

  3. 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:

  1. AKS kümesine bağlanın.

    değerini cmdToConnectToCluster bir kabuğa yapıştırın ve komutunu çalıştırın.

  2. 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
    
  3. 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.

AKS'de başarıyla dağıtılan Java liberty uygulamasının ekran görüntüsü.

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:

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?.