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
.
- Azure CLI. az'nin çalışıp çalışmadığını test etmek için kullanın
- 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 .
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.
Ayrıca doğrudan AKS'de WebLogic Server teklifine de gidebilirsiniz.
Teklif sayfasında Oluştur'u seçin.
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.
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.Ö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.
WebLogic kimlik bilgileri altında, WebLogic Yönetici istrator için Kullanıcı Adı için varsayılan değeri bırakın.
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.Temel Bilgiler bölmesinin en altına gidin ve belgeler, topluluk desteği ve sorunları bildirme ile ilgili yararlı bağlantılara dikkat edin.
İleri'yi seçin.
Aşağıdaki adımlarda dağıtım işlemini nasıl başlatabileceğiniz gösterilmektedir.
Oracle Çoklu Oturum Açma (SSO) hesabı sağlama etiketli bölüme gidin. Önkoşullardan Oracle SSO kimlik bilgilerinizi girin.
Devam etmeden önce Oracle Standart Hüküm ve Kısıtlamaları'nı kabul etmeniz gerekir.
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.
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.
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?
TLS/SSL bölmesini görmek için İleri'yi seçin.
Yük dengeleme bölmesini görmek için İleri'yi seçin.
Yük Dengeleme Seçenekleri'nin yanında Application Gateway Giriş Denetleyicisi'ni seçin.
Application Gateway Giriş Denetleyicisi altında, tüm alanların Sanal ağ ve Alt Ağ varsayılanlarıyla önceden doldurulmuş olduğunu görmeniz gerekir. Varsayılan değerleri bırakın.
Yönetici istrasyon Konsolu için giriş oluştur için Evet'i seçin.
Diğer alanlar için varsayılan değerleri bırakın.
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.
Oluştur'u belirleyin.
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.
Herhangi bir Azure portalı sayfasının köşesinde hamburger menüsünü 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ı uyguladıysanız baş harflerinizi girin ve uygun kaynak grubunu seçin.
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.
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.
Gezinti bölmesinde Çıkışlar'ı seçin. Bu liste, dağıtımdaki çıkış değerlerini gösterir. Çıkışlara yararlı bilgiler eklenir.
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.
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.
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.
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.
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.
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;
.
Ö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:
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
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"
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
Uygulama modeli dosyasını oluşturmak için aşağıdaki adımları kullanın.
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
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
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
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-secret
dizi) kullanır. Aşağıdaki alanların doğru ayarlandığından emin olun. Aşağıdaki model, kaynağı ile adlandırınjdbc/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
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
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
WDT yükleyicisini kaldırmak için aşağıdaki komutu kullanın:
rm weblogic-deploy.zip
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
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
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
Yardımcı görüntüyü Azure Container Registry'ye göndermek için aşağıdaki adımları kullanın:
Azure portalını açın ve AKS'de WSL dağıtma bölümünde sağladığınız kaynak grubuna gidin.
Kaynak listesinden Container registry türündeki kaynağı seçin.
Fareyi Oturum açma sunucusunun yanındaki değerin üzerine getirin ve metnin yanındaki kopyala simgesini seçin.
ACR_LOGIN_SERVER
Aşağıdaki komutu kullanarak değeri ortam değişkenine kaydedin:export ACR_LOGIN_SERVER=<value-from-clipboard>
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
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.
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
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
Azure portalında SQL veritabanı kaynağını ziyaret edin.
Gezinti bölmesindeki Ayarlar altında Bağlan dizeleri'ni seçin.
JDBC sekmesini seçin.
bağlantı dizesi panoya kopyalamak için kopyala simgesini seçin.
için
DB_CONNECTION_STRING
tüm bağlantı dizesi kullanın, ancak yer tutucuyu{your_password_here}
veritabanı parolanızla değiştirin.için
DB_USER
, bağlantı dizesiazureuser
bölümünü ile hariç olmak üzere bölümüne kadar;password={your_password_here}
kullanın.için
DB_PASSWORD
, veritabanını oluştururken girdiğiniz değeri kullanın.
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_STRING
açıklanan değerlerle değiştirerek ,DB_USER
veDB_PASSWORD
değişkenlerini doğru ayarladığınızdan emin olun. Kabuğun değerlere müdahale etmesini önlemek için değişkenlerinDB_
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
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.auxiliaryImages
tanı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ınkubectl 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
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.
- Önce çalışan öğesini
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:
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.
Azure portalından WLS dağıtırken girdiğiniz kullanıcı adı
weblogic
ve parolayla oturum açın. Bu değerin olduğunuwlsAksCluster2022
hatırlayın.Etki Alanı Yapısı kutusunda Hizmetler'i seçin.
Hizmetler'in altında Veri Kaynakları'nı seçin.
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.
Etki Alanı Yapısı kutusunda Dağıtımlar'ı seçin.
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.Ayarlar panelinde Test sekmesini seçin.
Weblogic-café'yi seçin.
Weblogic-café için Ayarlar panelinde Test sekmesini seçin.
+ 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.xhtml
benzer değerler görmeniz gerekir.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.
Dağıtılan
context-path
örnek uygulamanın değerini anlayın. Önerilen örnek uygulamayı dağıttıysanız ,context-path
şeklindedirweblogic-cafe
.clusterExternalUrl değerinin sonuna ekleyerek
context-path
örnek uygulama için tam URL oluşturun. Önerilen örnek uygulamayı dağıttıysanız, tam URL gibihttp://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/
olmalıdır.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:
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: