Aracılığıyla paylaş


Azure Kubernetes Service (AKS) kümesinde WebLogic Server ile Java uygulaması dağıtma

Bu makalede şunların nasıl yapılacağını gösterilmektedir:

  • Java, Java EE veya Jakarta EE'nizi Oracle WebLogic Server'da (WLS) çalıştırın.
  • Azure Market teklifini kullanarak bir WLS kümesi oluşturun.
  • WebLogic Deploy Tooling (WDT) modellerini ve uygulamalarını sağlamak için yardımcı görüntü görevi görecek uygulama Docker görüntüsünü oluşturun.
  • Kapsayıcılı uygulamayı Microsoft Azure SQL bağlantısıyla AKS'de mevcut WLS kümesine dağıtın.

Bu makalede, AKS yolculuğunuzu hızlandırmak için WLS'ye yönelik Azure Market teklifi kullanılır. Teklif, aşağıdaki kaynaklar da dahil olmak üzere çeşitli Azure kaynaklarını otomatik olarak sağlar:

  • Azure Container Registry örneği
  • AKS kümesi
  • Azure Uygulaması Ağ Geçidi Giriş Denetleyicisi (AGIC) örneği
  • WebLogic İşleci
  • WebLogic çalışma zamanını içeren bir kapsayıcı görüntüsü
  • Uygulaması olmayan bir WLS kümesi

Daha sonra bu makalede, mevcut bir WLS kümesini güncelleştirmek için adım adım yardımcı bir görüntü oluşturma tanıtılabilir. Yardımcı görüntü, uygulama ve WDT modelleri sağlar.

Tam otomasyon için uygulamanızı seçebilir ve teklif dağıtımından önce Azure portalından veri kaynağı bağlantısını yapılandırabilirsiniz. Teklifi görmek için Azure portalını ziyaret edin.

Azure Kubernetes Service'te WebLogic Server'ı ayarlama konusunda adım adım yönergeler için Azure Kubernetes Service'te Oracle'ın resmi belgelerine bakın.

Önkoşullar

  • Azure aboneliğiniz yoksa başlamadan önce birücretsiz Azure hesabı oluşturun.
  • Oturum açmak ve bu makaleyi tamamlamak için kullandığınız Azure kimliğinin geçerli abonelikte Sahip rolüne veya geçerli abonelikteki Katkıda Bulunan ve Kullanıcı Erişimi Yönetici istrator rollerine sahip olduğundan emin olun. Azure rollerine genel bakış için bkz. Azure rol tabanlı erişim denetimi (Azure RBAC) nedir? AKS üzerinde WLS tarafından gereken belirli roller hakkında ayrıntılı bilgi için bkz . Azure yerleşik rolleri.
  • Oracle çoklu oturum açma (SSO) hesabının kimlik bilgilerine sahip olun. Hesap oluşturmak için bkz . Oracle Hesabınızı Oluşturma.
  • WLS için lisans koşullarını kabul edin.
    • Oracle Container Registry'yi ziyaret edin ve oturum açın.
    • Destek yetkilendirmeniz varsa Ara Yazılım'ı seçin, ardından weblogic_cpu'ı arayın ve seçin.
    • Oracle'dan destek yetkilendirmeniz yoksa Ara Yazılım'ı seçin, ardından weblogic araması yapın ve seçin.

      Not

      Üretime geçmeden önce Oracle'dan destek yetkilendirmesi alın. Bunun yapılmaması, kritik güvenlik açıkları için düzeltme eki uygulamamış güvenli olmayan görüntülerin çalıştırılmasına neden olur. Oracle'ın kritik yama güncelleştirmeleri hakkında daha fazla bilgi için bkz. Oracle'dan Kritik Yama Güncelleştirmeler, Güvenlik Uyarıları ve Bültenler.

    • Lisans sözleşmesini kabul edin.
  • Unix benzeri işletim sistemi yüklü bir yerel makine hazırlayın (örneğin, Ubuntu, Azure Linux, macOS, Linux için Windows Alt Sistemi).
    • Azure CLI. az'nin çalışıp çalışmadığını test etmek için kullanın az --version . Bu belge 2.55.1 sürümüyle test edilmiştir.
    • Docker. Bu belge Docker sürüm 20.10.7 ile test edilmiştir. Docker Daemon'un çalışıp çalışmadığını test etmek için kullanın docker info .
    • kubectl. kubectl'nin çalışıp çalışmadığını test etmek için kullanın kubectl version . Bu belge v1.21.2 sürümüyle test edilmiştir.
    • Çalıştırmayı planladığınız WLS sürümüyle uyumlu bir Java JDK. Makale sizi JDK 11 kullanan bir WLS sürümü yüklemeye yönlendirir. Azure, OpenJDK'nin Microsoft Derlemesini önerir. Ortam değişkeninizin JAVA_HOME komutları çalıştırdığınız kabuklarda doğru ayarlandığından emin olun.
    • Maven 3.5.0 veya üzeri.
    • Zip/unzip yardımcı programının yüklü olduğundan emin olun. Çalışıp çalışmadığını zip/unzip test etmek için kullanınzip/unzip -v.
  • Docker'ı içerenler dışında bu makaledeki tüm adımlar Azure Cloud Shell'de de yürütülebilir. Azure Cloud Shell hakkında daha fazla bilgi edinmek için bkz. Azure Cloud Shell nedir?

AKS üzerinde WLS dağıtma

Bu bölümdeki adımlar sizi AKS üzerinde WLS'yi mümkün olan en basit şekilde dağıtmaya yönlendirir. AKS üzerinde WLS, çok çeşitli Azure tümleştirmeleri sunar. Daha fazla bilgi için bkz. Azure Kubernetes Service'te Oracle WebLogic Server çalıştırmaya yönelik çözümler nelerdir?

Aşağıdaki adımlarda AKS teklifinde WLS'yi bulma ve Temel Bilgiler bölmesini doldurma adımları gösterilmektedir .

  1. Azure portalının üst kısmındaki arama çubuğuna weblogic yazın. Otomatik olarak önerilen arama sonuçlarının Market bölümünde AKS üzerinde WebLogic Server'ı seçin.

    Arama sonuçlarında WLS'yi gösteren Azure portalının ekran görüntüsü.

    Ayrıca doğrudan AKS'de WebLogic Server teklifine de gidebilirsiniz.

  2. Teklif sayfasında Oluştur'u seçin.

  3. Temel Bilgiler bölmesinde Abonelik alanında gösterilen değerin Azure'da oturum açtığınız değerle aynı olduğundan emin olun. Rollerin önkoşullar bölümünde listelenmiş olduğundan emin olun.

    AKS'de WebLogic Server'ın gösterildiği Azure portalının ekran görüntüsü.

  4. Teklifi boş bir kaynak grubuna dağıtmanız gerekir. Kaynak grubu alanında Yeni oluştur'u seçin ve kaynak grubu için bir değer girin. 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, ejb0723wls) bir bileşimini kullanmaktır.

  5. Örnek ayrıntıları'nın altında dağıtım için bölgeyi seçin. AKS'nin kullanılabilir olduğu Azure bölgelerinin listesi için bkz . AKS bölgesi kullanılabilirliği.

  6. WebLogic kimlik bilgileri altında, WebLogic Yönetici istrator için Kullanıcı Adı için varsayılan değeri bırakın.

  7. wlsAksCluster2022 WebLogic Yönetici istrator parolası için doldurun. WebLogic Model şifreleme alanları için onay ve Parola için aynı değeri kullanın.

  8. Temel Bilgiler bölmesinin en altına gidin ve belgeler, topluluk desteği ve sorunları bildirme ile ilgili yararlı bağlantılara dikkat edin.

  9. İleri'yi seçin.

Aşağıdaki adımlarda dağıtım işlemini nasıl başlatabileceğiniz gösterilmektedir.

  1. Oracle Çoklu Oturum Açma (SSO) hesabı sağlama etiketli bölüme gidin. Önkoşullardan Oracle SSO kimlik bilgilerinizi girin.

    Yapılandırılan SSO bölmesini gösteren Azure portalının ekran görüntüsü.

  2. Devam etmeden önce Oracle Standart Hüküm ve Kısıtlamaları'nı kabul etmeniz gerekir.

  3. Oracle SSO hesabının Oracle destek yetkilendirmesine sahip olup olmamasına bağlı olarak, WebLogic Server Görüntüleri türünü seçin.. Hesabın destek yetkilendirmesi varsa Düzeltme Eki Uygulanmış WebLogic Server Görüntüleri'ni seçin. Aksi takdirde Genel WebLogic Server Görüntüleri'ne tıklayın.

  4. WebLogic Server'ın istenen birleşimini seçin... içindeki değeri varsayılan değerinde bırakın. WLS, JDK ve işletim sistemi sürümü için çok çeşitli seçenekleriniz vardır.

  5. Uygulama bölümünde, Uygulama dağıtın mı? seçeneğinin yanındaki Hayır'ı seçin.

Aşağıdaki adımlar, WLS yönetici konsolunun ve örnek uygulamanın yerleşik bir Application Gateway giriş eklentisiyle genel İnternet'e açık olmasını sağlar. Daha fazla bilgi için bkz . Application Gateway Giriş Denetleyicisi nedir?

Azure Kubernetes Service'te Oracle WebLogic Server Oluşturma sayfasında mümkün olan en basit yük dengeleyici yapılandırmasını gösteren Azure portalının ekran görüntüsü.

  1. TLS/SSL bölmesini görmek için İleri'yi seçin.

  2. Yük dengeleme bölmesini görmek için İleri'yi seçin.

  3. Yük Dengeleme Seçenekleri'nin yanında Application Gateway Giriş Denetleyicisi'ni seçin.

  4. Application Gateway Giriş Denetleyicisi altında, tüm alanların Sanal ağ ve Alt varsayılanlarıyla önceden doldurulmuş olduğunu görmeniz gerekir. Varsayılan değerleri bırakın.

  5. Yönetici istrasyon Konsolu için giriş oluştur için Evet'i seçin.

    Azure Kubernetes Service'te Oracle WebLogic Server Oluşturma sayfasında Application Gateway Giriş Denetleyicisi yapılandırmasını gösteren Azure portalının ekran görüntüsü.

  6. Diğer alanlar için varsayılan değerleri bırakın.

  7. Gözden geçir ve oluştur’u seçin. Doğrulamanın başarısız olmadığından emin olun. Başarısız olursa doğrulama sorunlarını düzeltin ve gözden geçir ve yeniden oluştur'u seçin.

  8. Oluştur'u belirleyin.

  9. Dağıtım devam ediyor sayfasında dağıtımın ilerleme durumunu izleyin.

Seçtiğiniz bölgedeki ağ koşullarına ve diğer etkinliklere bağlı olarak dağıtımın tamamlanması 50 dakika kadar sürebilir.

Beklerken Azure SQL Veritabanı oluşturma bölümündeki adımları gerçekleştirebilirsiniz. Veritabanını oluşturmayı bitirdiğinizde bu bölüme dönün.

Dağıtım çıkışını inceleme

Dağıtımın başarılı olduğunu doğrulamak için bu bölümdeki adımları kullanın.

Dağıtım devam ediyor sayfasından uzaklaştıysanız, aşağıdaki adımlarda bu sayfaya nasıl geri döndüğünüz gösterilir. Dağıtımınız tamamlandı ifadesini gösteren sayfadaysanız, sonraki ekran görüntüsünden sonra 5. adıma geçebilirsiniz.

  1. Herhangi bir Azure portalı sayfasının köşesinde hamburger menüsünü 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ı uyguladıysanız baş harflerinizi girin ve uygun kaynak grubunu seçin.

  3. Gezinti bölmesindeki Ayarlar bölümünde Dağıtımlar'ı seçin. Bu kaynak grubuna yapılan dağıtımların sıralı bir listesini ve en son dağıtımları görürsünüz.

  4. Bu listedeki en eski girdiye kaydırın. Bu giriş, önceki bölümde başlattığınız dağıtıma karşılık gelir. Aşağıdaki ekran görüntüsünde gösterildiği gibi en eski dağıtımı seçin.

    Kaynak grubu dağıtım listesini gösteren Azure portalının ekran görüntüsü.

  5. Gezinti bölmesinde Çıkışlar'ı seçin. Bu liste, dağıtımdaki çıkış değerlerini gösterir. Çıkışlara yararlı bilgiler eklenir.

  6. adminConsoleExternalUrl değeri, bu AKS kümesi için WLS yönetim konsoluna yönelik tam ve genel İnternet görünür bağlantısıdır. Bağlantıyı panonuza kopyalamak için alan değerinin yanındaki kopyala simgesini seçin. Bu değeri daha sonra için bir kenara kaydedin.

  7. clusterExternalUrl değeri, bu AKS kümesindeki WLS'de dağıtılan örnek uygulamanın tam olarak nitelenmiş genel İnternet görünür bağlantısıdır. Bağlantıyı panonuza kopyalamak için alan değerinin yanındaki kopyala simgesini seçin. Bu değeri daha sonra için bir kenara kaydedin.

  8. shellCmdtoOutputWlsImageModelYaml değeri, kapsayıcı görüntüsünde yerleşik olarak bulunan WDT modelinin base64 dizesidir. Bu değeri daha sonra için bir kenara kaydedin.

  9. shellCmdtoOutputWlsImageProperties değeri, kapsayıcı görüntüsünde yerleşik olarak bulunan WDT modeli özelliklerinin base64 dizesidir. Bu değeri daha sonra için bir kenara kaydedin.

  10. shellCmdto Bağlan Aks değeri, bu aks kümesine bağlanmak için kullanılan Azure CLI komutudur. Bu, kümeyi yönetmek için kullanmanıza kubectl olanak tanır.

Çıktılardaki diğer değerler bu makalenin kapsamı dışındadır, ancak AKS'de WebLogic kullanıcı kılavuzunda ayrıntılı olarak açıklanmıştır.

Azure SQL Veritabanı oluşturma

Uygulamanızla kullanmak üzere tek bir Azure SQL Veritabanı veritabanı oluşturmak için Hızlı Başlangıç: Azure SQL Veritabanı'de tek bir veritabanı oluşturma bölümünde yer alan adımları izleyin. Aşağıdaki farklara dikkatle dikkat edin:

  • Temel bilgiler adımında Kaynak grubu, Veritabanı adı, sunucu-adı.database.windows.net<>, Sunucu yöneticisi oturum açma bilgileri ve Parola değerlerini not edin. Bu makale, veritabanı Kaynak grubu değerini olarak <db-resource-group>ifade eder.

  • Ağ adımında Bağlan ivity yöntemini Genel uç nokta olarak ayarlayın, Azure hizmetlerinin ve kaynaklarının bu sunucuya erişmesine izin ver seçeneğini Evet olarak ayarlayın ve Geçerli istemci IP adresi ekle seçeneğini Evet olarak ayarlayın.

    Bağlan ivity yöntemi ve Güvenlik duvarı kuralları ayarlarının vurgulandığı SQL Veritabanı oluştur sayfasının Ağ sekmesini gösteren Azure portalının ekran görüntüsü.

Not

Bu veritabanı için seçtiğiniz sunucusuz işlem katmanı, işlem yapılmadığı dönemlerde veritabanını uyku moduna alarak tasarruf sağlar. Uygulama başlatıldığında veritabanı uykudaysa örnek uygulama başarısız olur.

Veritabanını uyandırmaya zorlamak için sorgu düzenleyicisini kullanarak bir sorgu çalıştırabilirsiniz. Veritabanını sorgulama'daki adımları izleyin. Aşağıda örnek bir sorgu verilmişti: SELECT * FROM COFFEE;.

  1. Örnek uygulama için bir şema oluşturun. Sorgu düzenleyicisi bölmesini açmak için Veritabanını sorgulama'yı izleyin. Aşağıdaki sorguyu girip çalıştırın:

    CREATE TABLE COFFEE (ID NUMERIC(19) NOT NULL, NAME VARCHAR(255) NULL, PRICE FLOAT(32) NULL, PRIMARY KEY (ID));
    CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT NUMERIC(28) NULL, PRIMARY KEY (SEQ_NAME));
    INSERT INTO SEQUENCE VALUES ('SEQ_GEN',0);
    

    Başarılı bir çalıştırmadan sonra Sorgu başarılı: Etkilenen satırlar: 0 iletisini görmeniz gerekir. Bu iletiyi görmüyorsanız devam etmeden önce sorunu giderin ve çözün.

Veritabanı, tablolar, AKS kümesi ve WLS kümesi oluşturulur. İsterseniz, bir tarayıcı açıp adminConsoleExternalUrl adresine giderek yönetici konsolunu keşfedebilirsiniz. AKS dağıtımında WLS sırasında girdiğiniz değerlerle oturum açın.

WebLogic uygulamanızı barındırmak için AKS'yi hazırlamaya devam edebilirsiniz.

Örnek uygulamayı yapılandırma ve dağıtma

Teklif, görüntüdeki model aracılığıyla WLS kümesini sağlar. Şu anda WLS kümesinde dağıtılan uygulama yok.

Bu bölüm yardımcı görüntü kullanarak örnek bir uygulama dağıtarak WLS kümesini güncelleştirir.

Uygulamayı gözden geçirin

Bu bölümde, bu kılavuz için örnek kodu kopyalayacaksınız. Örnek, javaee/weblogic-café/ klasöründeki weblogic-on-azure deposundaki GitHub'dadır. Uygulamanın dosya yapısı aşağıdadır.

weblogic-cafe
├── pom.xml
└── src
    └── main
        ├── java
        │   └── cafe
        │       ├── model
        │       │   ├── CafeRepository.java
        │       │   └── entity
        │       │       └── Coffee.java
        │       └── web
        │           ├── rest
        │           │   └── CafeResource.java
        │           └── view
        │               └── Cafe.java
        ├── resources
        │   ├── META-INF
        │   │   └── persistence.xml
        │   └── cafe
        │       └── web
        │           ├── messages.properties
        │           └── messages_es.properties
        └── webapp
            ├── WEB-INF
            │   ├── beans.xml
            │   ├── faces-config.xml
            │   └── web.xml
            ├── index.xhtml
            └── resources
                └── components
                    └── inputPrice.xhtml

Depoyu kopyalamak için aşağıdaki komutları kullanın:

cd <parent-directory-to-check-out-sample-code>
export BASE_DIR=$PWD
git clone --single-branch https://github.com/microsoft/weblogic-on-azure.git --branch 20240201 $BASE_DIR/weblogic-on-azure

"Ayrılmış HEAD" durumunda olduğunu belirten bir ileti görürseniz, bu iletiyi yoksaymak güvenlidir. Sadece bir etiketi kullanıma aldırdığınız anlamına gelir.

Javaee/weblogic-café/ derlemek için aşağıdaki komutu kullanın:

mvn clean package --file $BASE_DIR/weblogic-on-azure/javaee/weblogic-cafe/pom.xml

Paket başarıyla oluşturulup $BASE_DIR/weblogic-on-azure/javaee/weblogic-café/target/weblogic-café.war konumunda bulunmalıdır. Paketi görmüyorsanız devam etmeden önce sorunu gidermeniz ve çözmeniz gerekir.

Yardımcı görüntü oluşturmak için Docker kullanma

Bu bölümdeki adımlarda yardımcı görüntü oluşturma adımları gösterilmektedir. Bu görüntü aşağıdaki bileşenleri içerir:

  • Görüntü modeli dosyalarındaki Model
  • Uygulamanız
  • JDBC sürücüsü arşiv dosyası
  • WebLogic Dağıtım Araçları yüklemesi

Yardımcı görüntü , uygulamanızı ve yapılandırmanızı içeren bir Docker kapsayıcı görüntüsüdür. WebLogic Kubernetes İşleci, yardımcı görüntünüzü WebLogic Server, JDK ve işletim sistemini içeren AKS kümesindeki ile domain.spec.image birleştirir. Yardımcı görüntüler hakkında daha fazla bilgi için Oracle belgelerindeki Yardımcı görüntüler bölümüne bakın.

Bu bölüm, Azure CLI ve kubectl yüklü bir Linux terminali gerektirir.

Görüntüyü oluşturmak için aşağıdaki adımları kullanın:

  1. Modelleri ve uygulamayı hazırlamak üzere bir dizin oluşturmak için aşağıdaki komutları kullanın:

    mkdir -p ${BASE_DIR}/mystaging/models
    cd ${BASE_DIR}/mystaging/models
    
  2. Dağıtım çıktılarından kaydettiğiniz shellCmdtoOutputWlsImageModelYaml değerini kopyalayın, Bash penceresine yapıştırın ve komutunu çalıştırın. Komut aşağıdaki örneğe benzer görünmelidir:

    echo -e IyBDb3B5cmlna...Cgo= | base64 -d > model.yaml
    

    Bu komut, aşağıdaki örneğe benzer içeriği olan bir ${BASE_DIR}/mystaging/models/model.yaml dosyası oluşturur:

    # Copyright (c) 2020, 2021, Oracle and/or its affiliates.
    # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
    
    # Based on ./kubernetes/samples/scripts/create-weblogic-domain/model-in-image/model-images/model-in-image__WLS-v1/model.10.yaml
    # in https://github.com/oracle/weblogic-kubernetes-operator.
    
    domainInfo:
      AdminUserName: "@@SECRET:__weblogic-credentials__:username@@"
      AdminPassword: "@@SECRET:__weblogic-credentials__:password@@"
      ServerStartMode: "prod"
    
    topology:
      Name: "@@ENV:CUSTOM_DOMAIN_NAME@@"
      ProductionModeEnabled: true
      AdminServerName: "admin-server"
      Cluster:
        "cluster-1":
          DynamicServers:
            ServerTemplate: "cluster-1-template"
            ServerNamePrefix: "@@ENV:MANAGED_SERVER_PREFIX@@"
            DynamicClusterSize: "@@PROP:CLUSTER_SIZE@@"
            MaxDynamicClusterSize: "@@PROP:CLUSTER_SIZE@@"
            MinDynamicClusterSize: "0"
            CalculatedListenPorts: false
      Server:
        "admin-server":
          ListenPort: 7001
      ServerTemplate:
        "cluster-1-template":
          Cluster: "cluster-1"
          ListenPort: 8001
      SecurityConfiguration:
        NodeManagerUsername: "@@SECRET:__weblogic-credentials__:username@@"
        NodeManagerPasswordEncrypted: "@@SECRET:__weblogic-credentials__:password@@"
    
    resources:
      SelfTuning:
        MinThreadsConstraint:
          SampleMinThreads:
            Target: "cluster-1"
            Count: 1
        MaxThreadsConstraint:
          SampleMaxThreads:
            Target: "cluster-1"
            Count: 10
        WorkManager:
          SampleWM:
            Target: "cluster-1"
            MinThreadsConstraint: "SampleMinThreads"
            MaxThreadsConstraint: "SampleMaxThreads"
    
  3. Benzer şekilde shellCmdtoOutputWlsImageProperties değerini kopyalayın, Bash penceresine yapıştırın ve komutunu çalıştırın. Komut aşağıdaki örneğe benzer görünmelidir:

    echo -e IyBDb3B5cml...pFPTUK | base64 -d > model.properties
    

    Bu komut, aşağıdaki örneğe benzer içeriği olan bir ${BASE_DIR}/mystaging/models/model.properties dosyası oluşturur:

    # Copyright (c) 2021, Oracle Corporation and/or its affiliates.
    # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
    
    # Based on ./kubernetes/samples/scripts/create-weblogic-domain/model-in-image/model-images/model-in-image__WLS-v1/model.10.properties
    # in https://github.com/oracle/weblogic-kubernetes-operator.
    
    CLUSTER_SIZE=5
    
  4. Uygulama modeli dosyasını oluşturmak için aşağıdaki adımları kullanın.

    1. Weblogic-café.war dosyasını kopyalamak ve wlsdeploy/applications dosyasına kaydetmek için aşağıdaki komutları kullanın:

      mkdir -p ${BASE_DIR}/mystaging/models/wlsdeploy/applications
      cp $BASE_DIR/weblogic-on-azure/javaee/weblogic-cafe/target/weblogic-cafe.war ${BASE_DIR}/mystaging/models/wlsdeploy/applications/weblogic-cafe.war
      
    2. Gösterilen içerikle uygulama modeli dosyasını oluşturmak için aşağıdaki komutları kullanın. Model dosyasını ${BASE_DIR}/mystaging/models/appmodel.yaml dosyasına kaydedin.

      cat <<EOF >appmodel.yaml
      appDeployments:
        Application:
          weblogic-cafe:
            SourcePath: 'wlsdeploy/applications/weblogic-cafe.war'
            ModuleType: ear
            Target: 'cluster-1'
      EOF
      
  5. Wlsdeploy/externalJDBCLibraries'a Microsoft SQL Server JDBC sürücüsünü indirip yüklemek için aşağıdaki komutları kullanın:

    export DRIVER_VERSION="10.2.1.jre8"
    export MSSQL_DRIVER_URL="https://repo.maven.apache.org/maven2/com/microsoft/sqlserver/mssql-jdbc/${DRIVER_VERSION}/mssql-jdbc-${DRIVER_VERSION}.jar"
    
    mkdir ${BASE_DIR}/mystaging/models/wlsdeploy/externalJDBCLibraries
    curl -m 120 -fL ${MSSQL_DRIVER_URL} -o ${BASE_DIR}/mystaging/models/wlsdeploy/externalJDBCLibraries/mssql-jdbc-${DRIVER_VERSION}.jar
    
  6. Ardından, gösterilen içerikle veritabanı bağlantı modeli dosyasını oluşturmak için aşağıdaki komutları kullanın. Model dosyasını ${BASE_DIR}/mystaging/models/dbmodel.yaml dosyasına kaydedin. Model, veritabanı kullanıcı adı, parola ve URL için yer tutucuları (gizli sqlserver-secretdizi) kullanır. Aşağıdaki alanların doğru ayarlandığından emin olun. Aşağıdaki model, kaynağı ile adlandırın jdbc/WebLogicCafeDB.

    Öğe Adı Alan Değer
    JNDI adı resources.JDBCSystemResource.<resource-name>.JdbcResource.JDBCDataSourceParams.JNDIName jdbc/WebLogicCafeDB
    Sürücü adı resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.DriverName com.microsoft.sqlserver.jdbc.SQLServerDriver
    Veritabanı Url'si resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.URL @@SECRET:sqlserver-secret:url@@
    Veritabanı parolası resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.PasswordEncrypted @@SECRET:sqlserver-secret:password@@
    Veritabanı kullanıcı adı resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.Properties.user.Value '@@SECRET:sqlserver-secret:user@@'
    cat <<EOF >dbmodel.yaml
    resources:
      JDBCSystemResource:
        jdbc/WebLogicCafeDB:
          Target: 'cluster-1'
          JdbcResource:
            JDBCDataSourceParams:
              JNDIName: [
                jdbc/WebLogicCafeDB
              ]
              GlobalTransactionsProtocol: None
            JDBCDriverParams:
              DriverName: com.microsoft.sqlserver.jdbc.SQLServerDriver
              URL: '@@SECRET:sqlserver-secret:url@@'
              PasswordEncrypted: '@@SECRET:sqlserver-secret:password@@'
              Properties:
                user:
                  Value: '@@SECRET:sqlserver-secret:user@@'
            JDBCConnectionPoolParams:
              TestTableName: SQL SELECT 1
              TestConnectionsOnReserve: true
    EOF
    
  7. Bir uygulama arşiv dosyası oluşturmak ve ardından artık ihtiyacınız olmayan wlsdeploy klasörünü kaldırmak için aşağıdaki komutları kullanın:

    cd ${BASE_DIR}/mystaging/models
    zip -r archive.zip wlsdeploy
    
    rm -f -r wlsdeploy
    
  8. Hazırlama dizinine WebLogic Deploy Tooling (WDT) indirip yüklemek ve UNIX ortamlarında kullanılmayan weblogic-deploy/bin/*.cmd dosyalarını kaldırmak için aşağıdaki komutları kullanın:

    cd ${BASE_DIR}/mystaging
    curl -m 120 -fL https://github.com/oracle/weblogic-deploy-tooling/releases/latest/download/weblogic-deploy.zip -o weblogic-deploy.zip
    
    unzip weblogic-deploy.zip -d .
    rm ./weblogic-deploy/bin/*.cmd
    
  9. WDT yükleyicisini kaldırmak için aşağıdaki komutu kullanın:

    rm weblogic-deploy.zip
    
  10. Docker kullanarak yardımcı görüntü oluşturmak için aşağıdaki komutları kullanın:

    cd ${BASE_DIR}/mystaging
    cat <<EOF >Dockerfile
    FROM busybox
    ARG AUXILIARY_IMAGE_PATH=/auxiliary
    ARG USER=oracle
    ARG USERID=1000
    ARG GROUP=root
    ENV AUXILIARY_IMAGE_PATH=\${AUXILIARY_IMAGE_PATH}
    RUN adduser -D -u \${USERID} -G \$GROUP \$USER
    # ARG expansion in COPY command's --chown is available in docker version 19.03.1+.
    # For older docker versions, change the Dockerfile to use separate COPY and 'RUN chown' commands.
    COPY --chown=\$USER:\$GROUP ./ \${AUXILIARY_IMAGE_PATH}/
    USER \$USER
    EOF
    
  11. docker buildx build Aşağıdaki örnekte gösterildiği gibi komutunu ${BASE_DIR}/mystaging/Dockerfile kullanarak çalıştırın:

    cd ${BASE_DIR}/mystaging
    docker buildx build --platform linux/amd64 --build-arg AUXILIARY_IMAGE_PATH=/auxiliary --tag model-in-image:WLS-v1 .
    

    Görüntüyü başarıyla oluşturduğunuzda, çıkış aşağıdaki örneğe benzer şekilde görünür:

    [+] Building 12.0s (8/8) FINISHED                                   docker:default
    => [internal] load build definition from Dockerfile                          0.8s
    => => transferring dockerfile: 473B                                          0.0s
    => [internal] load .dockerignore                                             1.1s
    => => transferring context: 2B                                               0.0s
    => [internal] load metadata for docker.io/library/busybox:latest             5.0s
    => [1/3] FROM docker.io/library/busybox@sha256:6d9ac9237a84afe1516540f40a0f  0.0s
    => [internal] load build context                                             0.3s
    => => transferring context: 21.89kB                                          0.0s
    => CACHED [2/3] RUN adduser -D -u 1000 -G root oracle                        0.0s
    => [3/3] COPY --chown=oracle:root ./ /auxiliary/                             1.5s
    => exporting to image                                                        1.3s
    => => exporting layers                                                       1.0s
    => => writing image sha256:2477d502a19dcc0e841630ea567f50d7084782499fe3032a  0.1s
    => => naming to docker.io/library/model-in-image:WLS-v1                      0.2s
    
  12. Görüntüyü başarıyla oluşturduysanız, artık yerel makinenizin Docker deposunda olmalıdır. Aşağıdaki komutu kullanarak görüntü oluşturmayı doğrulayabilirsiniz:

    docker images model-in-image:WLS-v1
    

    Bu komut aşağıdaki örneğe benzer bir çıkış üretmelidir:

    REPOSITORY       TAG       IMAGE ID       CREATED       SIZE
    model-in-image   WLS-v1    76abc1afdcc6   2 hours ago   8.61MB
    

    Görüntü oluşturulduktan sonra /auxiliary/weblogic-deploy içinde WDT yürütülebilir dosyalarına ve /yardımcı/modellerdeki WDT modeline, özelliğine ve arşiv dosyalarına sahip olmalıdır. Bu sonucu doğrulamak için Docker görüntüsünde aşağıdaki komutu kullanın:

    docker run -it --rm model-in-image:WLS-v1 find /auxiliary -maxdepth 2 -type f -print
    

    Bu komut aşağıdaki örneğe benzer bir çıkış üretmelidir:

    /auxiliary/models/model.properties
    /auxiliary/models/dbmodel.yaml
    /auxiliary/models/model.yaml
    /auxiliary/models/archive.zip
    /auxiliary/models/appmodel.yaml
    /auxiliary/Dockerfile
    /auxiliary/weblogic-deploy/LICENSE.txt
    /auxiliary/weblogic-deploy/VERSION.txt
    
  13. Yardımcı görüntüyü Azure Container Registry'ye göndermek için aşağıdaki adımları kullanın:

    1. Azure portalını açın ve AKS'de WSL dağıtma bölümünde sağladığınız kaynak grubuna gidin.

    2. Kaynak listesinden Container registry türündeki kaynağı seçin.

    3. Fareyi Oturum açma sunucusunun yanındaki değerin üzerine getirin ve metnin yanındaki kopyala simgesini seçin.

    4. ACR_LOGIN_SERVER Aşağıdaki komutu kullanarak değeri ortam değişkenine kaydedin:

      export ACR_LOGIN_SERVER=<value-from-clipboard>
      
    5. Görüntüyü etiketlemek ve göndermek için aşağıdaki komutları çalıştırın. Bu komutları yürütmeden önce Docker'ın çalıştığından emin olun.

      export ACR_NAME=$(echo ${ACR_LOGIN_SERVER} | cut -d '.' -f 1)
      az acr login -n $ACR_NAME
      docker tag model-in-image:WLS-v1 $ACR_LOGIN_SERVER/wlsaks-auxiliary-image:1.0
      docker push $ACR_LOGIN_SERVER/wlsaks-auxiliary-image:1.0
      
    6. Aşağıdaki örnekte gösterildiği gibi görüntünün uzak depoya başarıyla gönderilip gönderilmediğini test etmek için komutunu çalıştırabilirsiniz az acr repository show :

      az acr repository show --name ${ACR_NAME} --image wlsaks-auxiliary-image:1.0
      

      Bu komut aşağıdaki örneğe benzer bir çıkış üretmelidir:

      {
        "changeableAttributes": {
          "deleteEnabled": true,
          "listEnabled": true,
          "readEnabled": true,
          "writeEnabled": true
        },
        "createdTime": "2024-01-24T06:14:19.4546321Z",
        "digest": "sha256:a1befbefd0181a06c6fe00848e76f1743c1fecba2b42a975e9504ba2aaae51ea",
        "lastUpdateTime": "2024-01-24T06:14:19.4546321Z",
        "name": "1.0",
        "quarantineState": "Passed",
        "signed": false
      }
      

Yardımcı görüntüyü uygulama

Önceki adımlarda modeller ve WDT dahil yardımcı görüntüyü oluşturdunuz. Yardımcı görüntüyü WLS kümesine uygulamadan önce aşağıdaki adımları kullanarak veri kaynağı URL'si, kullanıcı adı ve parola için gizli dizi oluşturun. Gizli dizi, dbmodel.yaml dosyasındaki yer tutucunun bir parçası olarak kullanılır.

  1. Daha önce kaydettiğiniz shellCmdto Bağlan Aks değerini kopyalayıp Bash penceresine yapıştırıp komutunu çalıştırarak AKS kümesine Bağlan. Komut aşağıdaki örneğe benzer görünmelidir:

    az account set --subscription <subscription>; 
    az aks get-credentials \
        --resource-group <resource-group> \
        --name <name>
    

    Aşağıdaki örneğe benzer bir çıktı görmeniz gerekir. Bu çıkışı görmüyorsanız devam etmeden önce sorunu giderin ve çözün.

    Merged "<name>" as current context in /Users/<username>/.kube/config
    
  2. Aşağıdaki tabloda gösterilen değişkenlerin değerlerini almak için aşağıdaki adımları kullanın. Bu değerleri daha sonra veri kaynağı bağlantısının gizli dizisini oluşturmak için kullanırsınız.

    Değişken Açıklama Örnek
    DB_CONNECTION_STRING SQL server'ın bağlantı dizesi. jdbc:sqlserver://server-name.database.windows.net:1433;database=wlsaksquickstart0125
    DB_USER SQL sunucusunda oturum açmak için kullanılan kullanıcı adı. welogic@sqlserverforwlsaks
    DB_PASSWORD SQL sunucusunda oturum açma parolası. Secret123456
    1. Azure portalında SQL veritabanı kaynağını ziyaret edin.

    2. Gezinti bölmesindeki Ayarlar altında Bağlan dizeleri'ni seçin.

    3. JDBC sekmesini seçin.

    4. bağlantı dizesi panoya kopyalamak için kopyala simgesini seçin.

    5. için DB_CONNECTION_STRINGtüm bağlantı dizesi kullanın, ancak yer tutucuyu {your_password_here} veritabanı parolanızla değiştirin.

    6. içinDB_USER, bağlantı dizesi azureuser bölümünü ile hariç olmak üzere bölümüne kadar ;password={your_password_here}kullanın.

    7. için DB_PASSWORD, veritabanını oluştururken girdiğiniz değeri kullanın.

  3. Kubernetes Gizli Dizisini oluşturmak için aşağıdaki komutları kullanın. Bu makalede, veri kaynağı bağlantısının gizli dizisi için gizli dizi adı sqlserver-secret kullanılır. Farklı bir ad kullanıyorsanız değerin dbmodel.yaml dosyasındaki adla aynı olduğundan emin olun.

    Aşağıdaki komutlarda yer tutucu örneklerini önceki adımlarda DB_CONNECTION_STRINGaçıklanan değerlerle değiştirerek , DB_USERve DB_PASSWORD değişkenlerini doğru ayarladığınızdan emin olun. Kabuğun değerlere müdahale etmesini önlemek için değişkenlerin DB_ değerini tek tırnak içine aldığınızdan emin olun.

    export DB_CONNECTION_STRING='<example-jdbc:sqlserver://server-name.database.windows.net:1433;database=wlsaksquickstart0125>'
    export DB_USER='<example-welogic@sqlserverforwlsaks>'
    export DB_PASSWORD='<example-Secret123456>'
    export WLS_DOMAIN_NS=sample-domain1-ns
    export WLS_DOMAIN_UID=sample-domain1
    export SECRET_NAME=sqlserver-secret
    
    kubectl -n ${WLS_DOMAIN_NS} create secret generic \
        ${SECRET_NAME} \
        --from-literal=password="${DB_PASSWORD}" \
        --from-literal=url="${DB_CONNECTION_STRING}" \
        --from-literal=user="${DB_USER}"
    
    kubectl -n ${WLS_DOMAIN_NS} label secret \
        ${SECRET_NAME} \
        weblogic.domainUID=${WLS_DOMAIN_UID}
    

    Devam etmeden önce aşağıdaki çıkışı görmeniz gerekir. Bu çıkışı görmüyorsanız devam etmeden önce sorunu giderin ve çözün.

    secret/sqlserver-secret created
    secret/sqlserver-secret labeled
    
  4. komutunu kullanarak kubectl patch etki alanı özel kaynak tanımına (CRD) düzeltme eki uygulayarak yardımcı görüntüyü uygulayın.

    Yardımcı görüntü, aşağıdaki örnekte gösterildiği gibi içinde spec.configuration.model.auxiliaryImagestanımlanır. Daha fazla bilgi için bkz . yardımcı görüntüler.

    spec:
      clusters:
      - name: sample-domain1-cluster-1
      configuration:
        model:
          auxiliaryImages:
          - image: wlsaksacrafvzeyyswhxek.azurecr.io/wlsaks-auxiliary-image:1.0
            imagePullPolicy: IfNotPresent
            sourceModelHome: /auxiliary/models
            sourceWDTInstallHome: /auxiliary/weblogic-deploy
    

    Değeri artırmak restartVersion için aşağıdaki komutları kullanın ve gösterilen tanımı kullanarak yardımcı görüntüyü etki alanı CRD'sine uygulamak için kullanın kubectl patch :

    export VERSION=$(kubectl -n ${WLS_DOMAIN_NS} get domain ${WLS_DOMAIN_UID} -o=jsonpath='{.spec.restartVersion}' | tr -d "\"")
    export VERSION=$((VERSION+1))
    
    cat <<EOF >patch-file.json
    [
      {
        "op": "replace",
        "path": "/spec/restartVersion",
        "value": "${VERSION}"
      },
      {
        "op": "add",
        "path": "/spec/configuration/model/auxiliaryImages",
        "value": [{"image": "$ACR_LOGIN_SERVER/wlsaks-auxiliary-image:1.0", "imagePullPolicy": "IfNotPresent", "sourceModelHome": "/auxiliary/models", "sourceWDTInstallHome": "/auxiliary/weblogic-deploy"}]
      },
      {
        "op": "add",
        "path": "/spec/configuration/secrets",
        "value": ["${SECRET_NAME}"]
      }
    ]
    EOF
    
    kubectl -n ${WLS_DOMAIN_NS} patch domain ${WLS_DOMAIN_UID} \
        --type=json \
        --patch-file patch-file.json
    
    kubectl get pod -n ${WLS_DOMAIN_NS} -w
    
  5. Devam etmeden önce yönetici sunucusu ve yönetilen sunucular aşağıdaki çıkış bloğundaki değerleri gösterene kadar bekleyin:

    NAME                             READY   STATUS    RESTARTS   AGE
    sample-domain1-admin-server      1/1     Running   0          20m
    sample-domain1-managed-server1   1/1     Running   0          19m
    sample-domain1-managed-server2   1/1     Running   0          18m
    

    Sistemin bu duruma ulaşması 5-10 dakika sürebilir. Aşağıdaki listede beklerken neler olduğuna ilişkin genel bir bakış sağlanır:

    • Önce çalışan öğesini sample-domain1-introspector görmeniz gerekir. Bu yazılım, Kubernetes kümesinde gerekli eylemleri gerçekleştirebilmesi için etki alanı özel kaynağında yapılan değişiklikleri arar.
    • Değişiklikler algılandığında, etki alanı iç gözlemi değişiklikleri kullanıma almak için yeni podları öldürür ve başlatır.
    • Ardından, pod'un sonlandırılıp yeniden başlatılıp yeniden başlatılıp sonlandırılması sample-domain1-admin-server gerektiğini görmeniz gerekir.
    • Ardından, yönetilen iki sunucunun sonlandırılıp yeniden başlatildiğini görmeniz gerekir.
    • Yalnızca üç pod da durumu gösterdiğinde 1/1 Running devam etmek uygun olur.

Dağıtımın işlevselliğini doğrulama

WLS yönetici konsolunu ve örnek uygulamayı görüntüleyerek dağıtımın işlevselliğini doğrulamak için aşağıdaki adımları kullanın:

  1. adminConsoleExternalUrl değerini İnternet'e bağlı bir web tarayıcısının adres çubuğuna yapıştırın. Tanıdık WLS yönetici konsolu oturum açma ekranını görmeniz gerekir.

  2. Azure portalından WLS dağıtırken girdiğiniz kullanıcı adı weblogic ve parolayla oturum açın. Bu değerin olduğunu wlsAksCluster2022hatırlayın.

  3. Etki Alanı Yapısı kutusunda Hizmetler'i seçin.

  4. Hizmetler'in altında Veri Kaynakları'nı seçin.

  5. JDBC Veri Kaynaklarının Özeti panelinde İzleme'yi seçin. Ekranınız aşağıdaki örneğe benzer görünmelidir. Yönetilen sunucularda veri kaynağının durumunun çalıştığını fark edebilirsiniz.

    Veri kaynağı durumunun ekran görüntüsü.

  6. Etki Alanı Yapısı kutusunda Dağıtımlar'ı seçin.

  7. Dağıtımlar tablosunda bir satır olmalıdır. Ad, appmodel.yaml dosyanızdaki değerle Application aynı değer olmalıdır. Adı seçin.

  8. Ayarlar panelinde Test sekmesini seçin.

  9. Weblogic-café'yi seçin.

  10. Weblogic-café için Ayarlar panelinde Test sekmesini seçin.

  11. + Weblogic-café'nin yanındaki simgeyi genişletin. Ekranınız aşağıdaki örneğe benzer görünmelidir. Özellikle, Test Noktası sütunundakine http://sample-domain1-managed-server1:8001/weblogic-cafe/index.xhtmlbenzer değerler görmeniz gerekir.

    Weblogic-café test noktalarının ekran görüntüsü.

    Not

    Yönetici konsolunu üzerinde çalıştığı dış URL ile yapılandırmadığımız için Test Noktası sütunundaki köprüler seçilemez. Bu makalede WLS yönetim konsolu yalnızca gösterim yoluyla gösterilir. AKS üzerinde WLS çalıştırırken dayanıklı yapılandırma değişiklikleri için WLS yönetici konsolunu kullanmayın. AKS üzerinde WLS'nin bulutta yerel tasarımı, oracle belgelerinde açıklandığı gibi tüm dayanıklı yapılandırmaların ilk docker görüntülerinde gösterilmesini veya modeli güncelleştirme gibi CI/CD teknikleri kullanılarak çalışan AKS kümesine uygulanmasını gerektirir.

  12. Dağıtılan context-path örnek uygulamanın değerini anlayın. Önerilen örnek uygulamayı dağıttıysanız , context-path şeklindedir weblogic-cafe.

  13. clusterExternalUrl değerinin sonuna ekleyerek context-path örnek uygulama için tam URL oluşturun. Önerilen örnek uygulamayı dağıttıysanız, tam URL gibi http://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/olmalıdır.

  14. Tam URL'yi İnternet'e bağlı bir web tarayıcısına yapıştırın. Önerilen örnek uygulamayı dağıttıysanız aşağıdaki ekran görüntüsüne benzer sonuçlar görmeniz gerekir:

    Test web 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 az group delete komutunu kullanın. Aşağıdaki komut kaynak grubunu, kapsayıcı hizmetini, kapsayıcı kayıt defterini ve tüm ilgili kaynakları kaldırır:

az group delete --name <resource-group-name> --yes --no-wait
az group delete --name <db-resource-group-name> --yes --no-wait

Sonraki adımlar

Aşağıdaki bağlantıları izleyerek AKS veya sanal makinelerde WLS çalıştırma hakkında daha fazla bilgi edinin: