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 uygulamanızı Oracle WebLogic Server'da (WLS) çalıştırın.
- Azure Market teklifi kullanarak AKS'de WebLogic Server kümesi oluşturun.
- WebLogic Deploy Tooling (WDT) modellerini içeren bir uygulama Docker görüntüsü oluşturun.
- Kapsayıcılı uygulamayı Microsoft Azure SQL bağlantısıyla AKS'de WebLogic Server kümesine dağıtın.
Bu makalede, AKS yolculuğunuzu hızlandırmak için WebLogic Server'a 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 WebLogic Server kümesi
Daha sonra makale, WebLogic Server kümesini güncelleştirmek için bir görüntü derlemeyi tanıtır. Görüntü, uygulama ve WDT modellerini sağlar.
AKS'de WebLogic'i dağıtmak için daha az otomatik bir yaklaşım tercih ediyorsanız Azure Kubernetes Service için Oracle'ın resmi belgelerinde yer alan adım adım yönergelere bakın.
Aks üzerinde WebLogic çözümleri geliştiren mühendislik ekibiyle geri bildirim sağlamak veya geçiş senaryolarınız üzerinde yakından çalışmak istiyorsanız WebLogic 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ğ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öneticisi 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.
- WebLogic Server 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.
- Lisans sözleşmesini kabul edin.
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ştirmeleri, Güvenlik Uyarıları ve Bültenler .
- Ubuntu, Azure Linux, macOS, Linux için Windows Alt Sistemi gibi Unix benzeri işletim sistemi yüklü yerel bir makine hazırlayın.
- 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ırmak istediğiniz WebLogic Server sürümüyle uyumlu bir Java Geliştirme Seti (JDK). Makale sizi JDK 11 kullanan bir WebLogic Server sürümü yüklemeye yönlendirir. 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
.
Not
Docker'ı içerenler dışında bu makalenin tüm adımlarını Azure Cloud Shell'de gerçekleştirebilirsiniz. Azure Cloud Shell hakkında daha fazla bilgi edinmek için bkz. Azure Cloud Shell nedir?
- Azure CLI. az'nin çalışıp çalışmadığını test etmek için kullanın
AKS'de WebLogic Server'ı dağıtma
Aşağıdaki adımlarda AKS'de WebLogic Server teklifini nasıl bulacağınız ve Temel Bilgiler bölmesini nasıl doldurabileceğiniz gösterilmektedir .
Azure portalının üst kısmındaki arama çubuğuna weblogic yazın. Otomatik olarak alınan arama sonuçlarında Market bölümünde AKS'de 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. Abonelik için önkoşullar bölümünde listelenen rollere sahip olduğunuzdan 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'nin altında, WebLogic Yöneticisi için Kullanıcı Adı için varsayılan değeri bırakın.
wlsAksCluster2022
WebLogic Yöneticisi parolası için doldurun. WebLogic Model şifreleme alanları için onay ve Parola için aynı değeri kullanın.İ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.
Bilgi kutusundaki adımları not edin. 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 olmadığına bağlı olarak, WebLogic Server Görüntüleri türünü seçin için uygun seçeneği belirleyin. 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. WebLogic Server, 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, WebLogic Server 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önetim 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 WebLogic Server yönetici 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 WebLogic Server'da dağıtılan örnek uygulamanın tam, 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ünü oluşturmak için kullanılan WDT modelinin base64 dizesidir. Bu değeri daha sonra için bir kenara kaydedin.
shellCmdtoOutputWlsImageProperties değeri, kapsayıcı görüntüsünü derlemek için kullanılan WDT modeli özelliklerinin base64 dizesidir. Bu değeri daha sonra için bir kenara kaydedin.
shellCmdtoConnectAks değeri, bu aks kümesine bağlanmak için kullanılan Azure CLI komutudur.
Çı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ğlantı 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 adresini 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;
.
Ardından aşağıdaki adımları kullanarak örnek uygulama için bir şema oluşturun:
Hızlı Başlangıç: Tek veritabanı oluşturma - Azure SQL Veritabanı'nin Veritabanını sorgulama bölümündeki adımları izleyerek Sorgu düzenleyicisi bölmesini açın.
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ı oldu: Etkilenen satırlar: 1 iletisini görmeniz gerekir. Bu iletiyi görmüyorsanız devam etmeden önce sorunu giderin ve çözün.
Veritabanı, tablolar, AKS kümesi ve WebLogic Server kümesi oluşturulur. İsterseniz, bir tarayıcı açıp adminConsoleExternalUrl adresine giderek yönetici konsolunu keşfedebilirsiniz. AKS dağıtımında WebLogic Server 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 WebLogic Server kümesini sağlar. Şu anda WebLogic Server kümesinde dağıtılan bir uygulama yok.
Bu bölüm, yardımcı görüntü kullanarak örnek bir uygulama dağıtarak WebLogic Server 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
- Java Veritabanı Bağlantısı (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. Görüntünün içeriğini doğrulamak için 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 WebLogic Server 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ü WebLogic Server 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 bir kenara kaydettiğiniz shellCmdtoConnectAks değerini kopyalayıp Bash penceresine yapıştırıp komutunu çalıştırarak AKS kümesine bağlanın. 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. Veri kaynağı bağlantısının gizli dizisini oluşturmak için bu değerleri 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ölmesinde, Ayarlar'ın altında Bağlantı 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 bunlara müdahale etmesini önlemek için değişkenlerinDB_
değerini tek tırnak içine alın.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.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
WebLogic Server 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 WebLogic Server yönetici konsolu oturum açma ekranını görmeniz gerekir.
Azure portalından WebLogic Server'ı 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. Ada tıklayın.Test sekmesini seçin.
Weblogic-café'yi seçin.
Weblogic-café 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 WebLogic Server yönetici konsolu yalnızca gösterim yoluyla gösterilir. AKS üzerinde WebLogic Server çalıştırırken dayanıklı yapılandırma değişiklikleri için WebLogic Server yönetici konsolunu kullanmayın. AKS üzerinde WebLogic Server'ın buluta özel 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, veritabanını 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
Şu bağlantıları izleyerek AKS veya sanal makinelerde WebLogic Server çalıştırma hakkında daha fazla bilgi edinin:
Azure Market'daki Oracle WebLogic teklifleri hakkında daha fazla bilgi için bkz. Azure'da Oracle WebLogic Server. Bu tekliflerin tümü Kendi Lisansını Getir'tir. Oracle'da uygun lisanslara sahip olduğunuzu ve Azure'da teklifleri çalıştırmak için uygun lisanslara sahip olduğunuzu varsayarlar.
Azure Kubernetes Service