Aracılığıyla paylaş


Azure Red Hat OpenShift kümesinde Open Liberty/WebSphere Liberty ile java uygulamasını el ile dağıtma

Bu makalede, Bir Azure Red Hat OpenShift kümesinde Open/WebSphere Liberty çalıştırmaya yönelik adım adım el ile yönergeler sağlanır. Bir Liberty uygulaması hazırlama, uygulama Docker görüntüsünü oluşturma ve kapsayıcılı uygulamayı bir Azure Red Hat OpenShift kümesinde çalıştırma adımlarında size yol gösterir.

Özellikle aşağıdaki görevleri gerçekleştirmeyi öğrenirsiniz:

  • Liberty uygulamasını hazırlama
  • Uygulama görüntüsünü oluşturma
  • KAPSAYıCıLı uygulamayı GUI ve CLI kullanarak Azure Red Hat OpenShift kümesinde çalıştırma

Azure Red Hat OpenShift kümesine yolculuğunuzu hızlandıran daha otomatik bir çözüm için, Azure Marketplace teklifi kullanarak Azure Red Hat OpenShift'te IBM WebSphere Liberty ve Open Liberty dağıtma konusunu inceleyin.

Open Liberty hakkında daha fazla bilgi için Open Liberty proje sayfasına bakın. WebSphere Liberty hakkında daha fazla bilgi için Bkz . WebSphere Liberty ürün sayfası.

Bu makale, dağıtıma hızlı bir şekilde başlamanıza yardımcı olmak için tasarlanmıştır. Üretime geçmeden önce Tuning Liberty'yi keşfetmeniz 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.

Önemli

Azure Red Hat OpenShift tümleşik bir destek deneyimi sağlamak için Red Hat ve Microsoft tarafından birlikte tasarlanmış, çalıştırılmış ve desteklenmektedir ancak bu makalede açıklananlar da dahil olmak üzere Azure Red Hat OpenShift'in üzerinde çalıştırdığınız yazılımlar kendi destek ve lisans koşullarına tabidir. Azure Red Hat OpenShift desteği hakkında daha fazla bilgi için bkz . Azure Red Hat OpenShift 4 için destek yaşam döngüsü. Bu makalede açıklanan yazılım desteği hakkında daha fazla bilgi için, makalede listelenen yazılımın ana sayfalarına bakın.

Not

Azure Red Hat OpenShift, OpenShift kümesi oluşturmak ve çalıştırmak için en az 40 çekirdeğe ihtiyaç duyar. Yeni bir Azure aboneliği için varsayılan Azure kaynak kotası bu gereksinimi karşılamaz. Kaynak sınırınızda artış istemek için bkz . Standart kota: VM serisine göre sınırları artırma. Ücretsiz deneme aboneliğinin kota artışı için uygun olmadığını unutmayın. Kota artışı istemeden önce Kullandıkça Öde aboneliğine yükseltin.

Önkoşullar

  • Ubuntu, macOS veya Linux için Windows Alt Sistemi gibi Unix benzeri işletim sisteminin yüklü olduğu yerel bir makine.

  • Java Standard Sürümü (SE) uygulaması, sürüm 17, örneğin Eclipse Open J9.

  • Maven, sürüm 3.9.8 veya üzeri.

  • İşletim sisteminiz için Docker .

  • Azure CLI, sürüm 2.61.0 veya üzeri.

  • Azure Red Hat OpenShift 4 kümesi. Kümeyi oluşturmak için aşağıdaki yönergeleri kullanırken Azure Red Hat OpenShift 4 kümesi oluşturma başlığı altındaki yönergeleri izleyin:

    • "‘Red Hat için çekme anahtarı al’ adımı isteğe bağlı olarak işaretlenmiş olsa da, bu makale için gereklidir." Çekme sırrı, Azure Red Hat OpenShift kümenizin Open Liberty Operator'ünü bulmasını sağlar.

    • Azure Red Hat OpenShift 4 kümesi oluşturma bölümünde tanımlanan aşağıdaki ortam değişkenleri bu makalenin devamında kullanılır:

      • RESOURCEGROUP - kümenin dağıtıldığı kaynak grubunun adı.
      • CLUSTER- kümenin adı.
    • Kümede yoğun bellek kullanan uygulamalar çalıştırmayı planlıyorsanız parametresini kullanarak --worker-vm-size çalışan düğümleri için uygun sanal makine boyutunu belirtin. Daha fazla bilgi için aşağıdaki makaleleri inceleyin:

  • Aşağıdaki yönergeleri kullanırken Azure Red Hat OpenShift 4 kümesine bağlanma başlığı altındaki adımları izleyerek kümeye bağlanın:

    • Bu makalenin devamında oc komutunu kullanacağınız için "OpenShift CLI'yi yükleme" başlığındaki adımları izlediğinizden emin olun.
    • Küme konsolu URL'sini bir kenara kaydedin. Şunun gibi https://console-openshift-console.apps.<random>.<region>.aroapp.io/ görünmelidir.
    • Kimlik bilgilerini kubeadmin not alın.
    • OpenShift CLI kullanarak bağlanma adımlarını kubeadmin kimlik bilgileriyle izlediğinizden emin olun.

Open Liberty OpenShift İşlecini Yükleme

Kümeyi oluşturup bağlandıktan sonra Open Liberty İşleci'ni yüklemek için aşağıdaki adımları kullanın. Open Liberty Operatörünün ana başlangıç sayfası GitHub'dadır.

  1. Kimlik bilgilerini kullanarak tarayıcınızdan OpenShift web konsolunda kubeadmin oturum açın.

  2. OperatorsOperatorHub'a gidin ve Open Liberty'yi arayın.

  3. Arama sonuçlarından Open Liberty'yi seçin.

  4. Yükle'yi seçin.

  5. Yükleme İşleci sayfasında aşağıdaki adımları kullanın:

    1. Güncelleştirme kanalı için en son kanal v1.4'i seçin.
    2. Yükleme modu için Kümedeki tüm ad alanları (varsayılan)öğesini seçin.
    3. Güncelleştirme onayı için Otomatik'i seçin.

    Yükleme İşleci sayfasını gösteren OpenShift web konsolunun ekran görüntüsü.

  6. Yükle'yi seçin ve yükleme tamamlanana kadar birkaç dakika bekleyin.

  7. Open Liberty Operatörünün başarıyla yüklendiğini ve kullanıma hazır olduğunu gözlemleyin. Hazır değilse devam etmeden önce sorunu tanılayın ve çözün.

    Yüklü işleç iletişim kutusunu gösteren OpenShift web konsolunun ekran görüntüsü.

Not

Bu kılavuz, Azure Red Hat OpenShift kümesinde Liberty uygulamalarını yönetmek için Open Liberty Operatörünü yükler. WebSphere Liberty Operatörünü kullanmak istiyorsanız, WebSphere Liberty işlecini yükleme bölümünde yer alan adımları izleyerek WebSphere Liberty İşlecini kümeye yükleyin.

Java uygulaması için OpenShift ad alanı oluşturma

Uygulamanızla kullanmak üzere bir OpenShift ad alanı oluşturmak için aşağıdaki adımları kullanın:

  1. Kimlik bilgilerini kullanarak tarayıcınızdan OpenShift web konsolunda oturum açtığınızdan kubeadmin emin olun.

  2. Yönetim>Ad Alanları>Ad Alanı Oluştur'a gidin.

  3. open-liberty-demo Ad alanını doldurun ve ardından gösterildiği gibi Oluştur'u seçin.

    Ad Alanı Oluştur iletişim kutusunu gösteren OpenShift web konsolunun ekran görüntüsü.

MySQL için Azure Esnek Sunucu Veritabanı Oluşturun

MySQL için Azure Veritabanı Esnek Sunucu dağıtım modeli, veritabanı yönetimi işlevleri ve yapılandırma ayarları üzerinde MySQL için Azure Veritabanı tek sunucu dağıtım modundan daha ayrıntılı denetim ve esneklik sağlamak için tasarlanmış bir dağıtım modudur. Bu bölümde, Azure CLI kullanarak MySQL için Azure Veritabanı Esnek Sunucu örneğinin nasıl oluşturulacağı gösterilmektedir. Daha fazla bilgi için bkz. Hızlı Başlangıç: Azure CLI kullanarak MySQL için Azure Veritabanı - Esnek Sunucu örneği oluşturma.

MySQL için Azure Veritabanı Esnek Sunucu örneği oluşturmak için terminalinizde aşağıdaki komutu çalıştırın. <server-admin-password> simgesini, MySQL için Azure Veritabanı Esnek Sunucu'sunun parola karmaşıklığı gereksinimlerini karşılayan bir parola ile değiştirin.

az mysql flexible-server create \
    --name ${CLUSTER} \
    --resource-group ${RESOURCEGROUP} \
    --admin-user admin${RESOURCEGROUP} \
    --admin-password '<server-admin-password>' \
    --database-name ${RESOURCEGROUP}db \
    --public-access 0.0.0.0 \
    --yes

Not

Bu makale, MySQL kimlik doğrulaması ile MySQL için Azure Veritabanı Esnek Sunucu oluşturmanız için size yol gösterir. Daha güvenli bir uygulama, veritabanı sunucusu bağlantısının kimliğini doğrulamak için Microsoft Entra kimlik doğrulamasını kullanmaktır. Azure Red Hat OpenShift şu anda Microsoft Entra İş Yükü Kimliği desteklemediğinden, kullanılabilen tek seçenek MySQL kimlik doğrulamasıdır.

No available SKUs in this locationbir hata iletisi alırsanız, --location parametresini kullanarak farklı bir konum belirtin ve yeniden deneyin. Belirli bir konumdaki kullanılabilir SKU'ları listelemek için aşağıdaki komutu kullanın:

az mysql flexible-server list-skus --location <location>

Kullanılabilir SKU'ları olan bir konum bulun ve önceki az mysql flexible-server create komutu yineleyin, ancak diğer tüm parametreleri değiştirmeden uygun --location <location> parametreyi ekleyin.

Tüm Azure kaynaklarından gelen bağlantıları kabul eden sunucu, veritabanı, yönetici kullanıcı ve güvenlik duvarı kuralının oluşturulması birkaç dakika sürer. Komut başarılı olursa, çıkış aşağıdaki örneğe benzer şekilde görünür:

{
  "connectionString": "mysql <database-name> --host <server-name>.mysql.database.azure.com --user <server-admin-username> --password=<server-admin-password>",
  "databaseName": "<database-name>",
  "firewallName": "AllowAllAzureServicesAndResourcesWithinAzureIps_2024-7-10_16-22-8",
  "host": "<server-name>.mysql.database.azure.com",
  "id": "/subscriptions/REDACTED/resourceGroups/<resource-group-of-the-OpenShift-cluster>/providers/Microsoft.DBforMySQL/flexibleServers/<server-name>",
  "location": "West US",
  "password": "<server-admin-password>",
  "resourceGroup": "<resource-group-of-the-OpenShift-cluster>",
  "skuname": "Standard_B1ms",
  "username": "<server-admin-username>",
  "version": "5.7"
}

Liberty uygulamasını hazırlama

Bu kılavuzda örneğimiz olarak bir Java EE 8 uygulaması kullanıyoruz. Open Liberty, uygulamayı kolayca çalıştırabilmesi için Java EE 8 tam profil uyumlu bir sunucudur. Open Liberty ayrıca Jakarta EE 8 tam profil ile uyumludur.

Uygulamayı Open Liberty'de çalıştırma

Uygulamayı Open Liberty'de çalıştırmak için, Liberty Maven eklentisinin uygulamayı dağıtım için paketleyebilmesi için bir Open Liberty sunucu yapılandırma dosyası oluşturmanız gerekir. Uygulamayı OpenShift'e dağıtmak için Liberty Maven eklentisi gerekli değildir. Ancak, bu örnekte Open Liberty'nin geliştirici (geliştirme) moduyla birlikte kullanırız. Geliştirici modu, uygulamayı yerel olarak kolayca çalıştırmanıza olanak tanır. Daha fazla bilgi edinmek için liberty-maven-plugin hakkında bkz. Maven ile web uygulaması oluşturma.

Örnek uygulamayı bu makalede daha sonra kullanmak üzere hazırlamak için bu bölümdeki adımları izleyin. Bu adımlarda Maven ve liberty-maven-plugin kullanılır.

Uygulamayı gözden geçirin

Bu kılavuzun örnek kodunu kopyalamak için aşağıdaki komutları kullanın. Örnek GitHub'dadır.

git clone https://github.com/Azure-Samples/open-liberty-on-aro.git
cd open-liberty-on-aro
export BASE_DIR=$PWD
git checkout 20240920
cd ${BASE_DIR}/3-integration/connect-db/mysql

detached HEAD durumunda olduğunuzu belirten bir mesaj görürseniz, bu mesajı görmezden gelebilirsiniz. Sadece bir etiketi incelediğiniz anlamına gelir.

Depoda birkaç örnek vardır. open-liberty-on-aro/3-integration/connect-db/mysql kullanıyoruz. Uygulamanın dosya yapısı aşağıdadır:

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

Java, resources ve webapp dizinleri örnek uygulamanın kaynak kodunu içerir. Kod adlı jdbc/JavaEECafeDBbir veri kaynağı bildirir ve kullanır.

aro dizinine iki dağıtım dosyası yerleştirdik. db-secret.xml, veritabanı bağlantısı kimlik bilgileriyle "Secrets" oluşturmak için kullanılır. Uygulama görüntüsünü dağıtmak için openlibertyapplication.yaml dosyası kullanılır.

Kök dizine iki Dockerfile yerleştirdik. Dockerfile ve Dockerfile-wlp , yerel hata ayıklama için ve sırasıyla Open Liberty ve WebSphere Liberty ile çalışan bir Azure Red Hat OpenShift dağıtımı için görüntü oluşturmak için kullanılır.

Liberty/config dizininde server.xml, Open Liberty ve WebSphere Liberty kümesi için veritabanı bağlantısını yapılandırmak için kullanılır.

Projeyi oluştur

Daha önce tanımlanan ortam değişkenlerini kullanarak, projeyi oluşturmak için terminalinizde aşağıdaki komutları çalıştırın. Projenin POM dosyası ortamdan birçok özelliği okur.

cd ${BASE_DIR}/3-integration/connect-db/mysql

# The following variables are used for deployment file generation
export DB_SERVER_NAME=$CLUSTER.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=${RESOURCEGROUP}db
export DB_USER=admin${RESOURCEGROUP}
export DB_PASSWORD='<server-admin-password>'
export NAMESPACE=open-liberty-demo

mvn clean install

(İsteğe bağlı) Uygulamanızı yerel olarak test edin

İsteğe bağlı olarak, beklendiği gibi çalıştığını doğrulamak için uygulamayı yerel olarak çalıştırabilirsiniz. İlk olarak, yerel makinenizin MySQL için Azure Veritabanı Esnek Sunucu örneğine bağlanmasına izin vermek için bir güvenlik duvarı kuralı eklemeniz gerekir. Güvenlik duvarı kuralını eklemek için aşağıdaki adımları kullanın:

  1. Azure portalında oturum açın ve daha önce oluşturduğunuz MySQL için Azure Veritabanı Esnek Sunucu örneğine gidin.
  2. Sol bölmede Ayarlar>Ağ Bağlantıları seçin.
  3. Geçerli istemci IP adresini ekle.
  4. Kaydet'i seçin ve güvenlik duvarı kuralının eklenmesini bekleyin.

Azure ile ilgili karmaşıklıklarla uğraşmadan önce projeyi ve kapsayıcı görüntüsünü yerel olarak çalıştırmak ve test etmek için liberty:devc komutunu çalıştırmak amacıyla aşağıdaki adımları kullanın. hakkında liberty:devcdaha fazla bilgi için Liberty Eklentisi belgelerine bakın.

  1. Gerekirse yerel Docker ortamınızı başlatın. Ortamı başlatma yönergeleri, konak işletim sistemine bağlı olarak değişir.

  2. Uygulamayı liberty:devc modda başlatmak için aşağıdaki komutları kullanın:

    cd ${BASE_DIR}/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
    
  3. Uygulamanın beklendiği gibi çalıştığını doğrulayın. Başarılı olursa komut çıkışında şuna benzer [INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds. bir ileti görmeniz gerekir. Tarayıcınızda adresine https://localhost:9443/ gidin ve uygulamanın erişilebilir olduğunu ve tüm işlevlerin çalıştığını doğrulayın.

  4. liberty:devc modunu durdurmak için Control+ + C tuşlarına basın.

Uygulama görüntüsünü hazırlama

Liberty uygulamanızı bir Azure Red Hat OpenShift kümesinde dağıtmak ve çalıştırmak için Open Liberty kapsayıcı görüntülerini veya WebSphere Liberty kapsayıcı görüntülerini kullanarak uygulamanızı Docker görüntüsü olarak kapsayıcıya alın.

Uygulamayı oluşturma ve görüntü akışına gönderme

Liberty Docker kapsayıcısında uygulamayı komutunu kullanarak liberty:devc başarıyla çalıştırdığınızdan, aşağıdaki adımları kullanarak görüntüyü kümede uzaktan oluşturacaksınız:

  1. Kimlik bilgilerini kullanarak OpenShift CLI'da oturum açtığınızdan kubeadmin emin olun.

  2. Kaynak dizini ve Dockerfile'ı tanımlamak için aşağıdaki komutları kullanın:

    cd ${BASE_DIR}/3-integration/connect-db/mysql
    
    # If you are building with the Open Liberty base image, the existing Dockerfile is ready for you
    
    # If you are building with the 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
    
  3. Projeyi open-liberty-demoolarak değiştirmek için aşağıdaki komutu kullanın:

    oc project open-liberty-demo
    
  4. Görüntü akışı oluşturmak için aşağıdaki komutu kullanın:

    oc create imagestream javaee-cafe-mysql
    
  5. Derleme çıkışının görüntü akışı etiketini belirten bir derleme yapılandırması oluşturmak için aşağıdaki komutu kullanın:

    oc new-build --name javaee-cafe-mysql-config --binary --strategy docker --to javaee-cafe-mysql:v1
    
  6. Yerel içerikleri karşıya yüklemek, kapsayıcıya almak ve daha önce belirtilen görüntü akışı etiketine çıkış yapmak üzere derlemeyi başlatmak için aşağıdaki komutu kullanın:

    oc start-build javaee-cafe-mysql-config --from-dir . --follow
    

Azure Red Hat OpenShift kümesinde uygulama dağıtma

Artık örnek Liberty uygulamasını önkoşullar üzerinde çalışırken daha önce oluşturduğunuz Azure Red Hat OpenShift kümesine dağıtabilirsiniz.

Uygulamayı web konsolundan dağıtma

Liberty uygulamalarını yönetmek için Open Liberty Operatörünü kullandığımızdan, OpenLibertyApplicationtüründe bir Özel Kaynak Tanımı örneği oluşturmamız gerekir. Operatör, dağıtım için gereken OpenShift kaynaklarını yönetmenin tüm yönlerini üstlenir. Bu örneği oluşturmak için aşağıdaki adımları kullanın:

  1. Kimlik bilgilerini kullanarak tarayıcınızdan OpenShift web konsolunda kubeadmin oturum açın.

  2. Home>Projects>open-liberty-demo adreslerini ziyaret ederek projeyi seçin.

  3. İş Yükleri>Gizli Diziler'e gidin.

  4. Seçin, YAML'den>Oluştur.

  5. Oluşturulan YAML dosyasını, sizin path-to-repo/3-integration/connect-db/mysql/target/db-secret.yaml konumunda bulunan dosyanızla değiştirin.

  6. Oluştur'u belirleyin. Bu seçim sizi Gizli detaylar sayfasına döndürür.

  7. İşleçler>Yüklü İşleçler bölümüne gidin.

  8. Sayfanın ortasında Open Liberty ifadesini görürsünüz.

  9. Sağlanan API'ler'den OpenLibertyApplication'ı seçin. Kullanıcı arabirimindeki öğelerin gezintisi, kullanılan teknolojilerin gerçek kapsama hiyerarşisini yansıtır.

    Azure Red Hat OpenShift Java Kapsama diyagramı.

  10. OpenLibertyApplication Oluştur'u seçin.

  11. Aracılığıyla yapılandır için YAML görünümünü seçin.

  12. Oluşturulan yaml dosyasını, path-to-repo/3-integration/connect-db/mysql/target/openlibertyapplication.yaml konumunda bulunan kendi dosyanızla değiştirin.

  13. Oluştur'u belirleyin. OpenLibertyApplications listesine geri dönersiniz.

  14. İşleçler>Yüklü İşleçler>Open Liberty>OpenLibertyApplication'a gidin.

  15. javaee-café-mysql öğesini seçin.

  16. Sayfanın ortasında Kaynaklar'ı seçin.

  17. Tabloda Yol Türüile javaee-café-mysql bağlantısını seçin.

  18. Açılan sayfada Konum'un altındaki bağlantıyı seçin.

Uygulamanın giriş sayfası tarayıcıda açılır.

Uygulamayı web konsolundan silme

Uygulamayla işiniz bittiğinde, uygulamayı Open Shift'ten silmek için aşağıdaki adımları kullanın:

  1. Sol gezinti bölmesinde İşleçler girişini genişletin.
  2. Yüklü İşleçler'i seçin.
  3. Open Liberty'yi seçin.
  4. Sayfanın ortasında OpenLibertyApplication'ı seçin.
  5. javaee-cafe-mysql için dikey üç noktayı seçin, ardından OpenLibertyApplication'ı Sil seçeneğine tıklayın.
  6. Uygulamayı silmek için Sil'i seçin.

OpenShift'teki sırrı silmek için aşağıdaki adımları kullanın:

  1. İş Yükleri>Gizli Dizileri'ne gidin.
  2. db-secret-mysql öğesini seçin.
  3. Eylemler>Sırrı Sil seçeneğini seçin.
  4. Gizli öğeyi silmek için Sil'i seçin.

Kaynakları temizleme

Azure Red Hat OpenShift 4 kümesini silmek için Öğretici: Azure Red Hat OpenShift 4 kümesini silme başlıklı adımları izleyerek Azure Red Hat OpenShift kümesini silin. Veritabanının ve ilişkili kaynakların da silindiğinden emin olun.

Sonraki adımlar

Bu kılavuzda kullanılan başvurulardan daha fazla bilgi edinebilirsiniz:

WebSphere ürünlerini Azure'da çalıştırma seçeneklerini keşfetmek için bkz . Azure'da WebSphere ürün ailesini çalıştırmaya yönelik çözümler nelerdir?