Menyebarkan aplikasi Java dengan WebLogic Server pada kluster Azure Kubernetes Service (AKS)

Artikel ini menunjukkan cara untuk:

  • Jalankan Java, Java EE, atau Jakarta EE Anda di Oracle WebLogic Server (WLS).
  • Berdirilah kluster WLS menggunakan penawaran Marketplace Azure.
  • Bangun gambar Docker aplikasi untuk berfungsi sebagai gambar tambahan untuk menyediakan model dan aplikasi WebLogic Deploy Tooling (WDT).
  • Sebarkan aplikasi dalam kontainer ke kluster WLS yang ada di AKS dengan koneksi ke Microsoft Azure SQL.

Artikel ini menggunakan penawaran Marketplace Azure bagi WLS untuk mempercepat perjalanan Anda ke AKS. Penawaran ini secara otomatis menyediakan beberapa sumber daya Azure, termasuk sumber daya berikut:

  • Instans Azure Container Registry
  • Kluster AKS
  • Instans Pengontrol Ingress Azure App Gateway (AGIC)
  • The WebLogic Operator
  • Gambar kontainer termasuk runtime WebLogic
  • Kluster WLS tanpa aplikasi

Kemudian, artikel ini memperkenalkan pembuatan gambar tambahan langkah demi langkah untuk memperbarui kluster WLS yang ada. Gambar tambahan menyediakan aplikasi dan model WDT.

Untuk otomatisasi penuh, Anda dapat memilih aplikasi dan mengonfigurasi koneksi sumber data dari portal Azure sebelum penyebaran penawaran. Untuk melihat penawaran, kunjungi portal Azure.

Untuk panduan langkah demi langkah dalam menyiapkan WebLogic Server di Azure Kubernetes Service, lihat dokumentasi resmi dari Oracle di Azure Kubernetes Service.

Prasyarat

  • Jika Anda tidak memiliki Langganan Azure, buat Akun gratis Azure sebelum memulai.
  • Pastikan identitas Azure yang Anda gunakan untuk masuk dan menyelesaikan artikel ini memiliki peran Pemilik dalam langganan saat ini atau peran Kontributor dan Administrator Akses Pengguna dalam langganan saat ini. Untuk gambaran umum peran Azure, lihat Apa itu kontrol akses berbasis peran Azure (Azure RBAC)? Untuk detail tentang peran tertentu yang diperlukan oleh WLS di AKS, lihat Peran bawaan Azure.
  • Memiliki kredensial untuk akun akses menyeluruh (SSO) Oracle. Untuk membuatnya, lihat Membuat Akun Oracle Anda.
  • Terima ketentuan lisensi untuk WLS.
    • Kunjungi Oracle Container Registry dan masuk.
    • Jika Anda memiliki pemberian dukungan, pilih Middleware, lalu cari dan pilih weblogic_cpu.
    • Jika Anda tidak memiliki pemberian dukungan dari Oracle, pilih Middleware, lalu cari dan pilih weblogic.

      Catatan

      Dapatkan pemberian dukungan dari Oracle sebelum pergi ke produksi. Kegagalan untuk melakukannya mengakibatkan berjalannya gambar yang tidak aman yang tidak di-patch untuk kelemahan keamanan penting. Untuk informasi selengkapnya tentang pembaruan patch penting Oracle, lihat Pembaruan Patch Kritis, Pemberitahuan Keamanan, dan Buletin dari Oracle.

    • Terima perjanjian lisensi.
  • Siapkan komputer lokal dengan sistem operasi seperti Unix yang diinstal (misalnya, Ubuntu, Azure Linux, macOS, Subsistem Windows untuk Linux).
    • Azure CLI. Gunakan az --version untuk menguji apakah az bekerja. Dokumen ini diuji dengan versi 2.55.1.
    • Docker. Dokumen ini diuji dengan Docker versi 20.10.7. Gunakan docker info untuk menguji apakah Docker Daemon berjalan.
    • kubectl. Gunakan kubectl version untuk menguji apakah kubectl berfungsi. Dokumen ini diuji dengan versi v1.21.2.
    • Java JDK kompatibel dengan versi WLS yang ingin Anda jalankan. Artikel ini mengarahkan Anda untuk menginstal versi WLS yang menggunakan JDK 11. Azure merekomendasikan Microsoft Build of OpenJDK. Pastikan variabel lingkungan Anda JAVA_HOME diatur dengan benar di shell tempat Anda menjalankan perintah.
    • Maven 3.5.0 atau lebih tinggi.
    • Pastikan Anda telah menginstal utilitas zip/unzip. Gunakan zip/unzip -v untuk menguji apakah zip/unzip berfungsi.
  • Semua langkah dalam artikel ini, kecuali yang melibatkan Docker, juga dapat dijalankan di Azure Cloud Shell. Untuk mempelajari selengkapnya tentang Azure Cloud Shell, lihat Apa itu Azure Cloud Shell?

Menyebarkan WLS di AKS

Langkah-langkah di bagian ini mengarahkan Anda untuk menyebarkan WLS di AKS dengan cara yang paling sederhana. WLS di AKS menawarkan pilihan integrasi Azure yang luas dan mendalam. Untuk informasi selengkapnya, lihat Apa solusi untuk menjalankan Oracle WebLogic Server di Azure Kubernetes Service?

Langkah-langkah berikut menunjukkan kepada Anda cara menemukan penawaran WLS di AKS dan mengisi panel Dasar .

  1. Di bilah pencarian di bagian atas portal Azure, masukkan weblogic. Di hasil pencarian yang disarankan secara otomatis, di bagian Marketplace , pilih WebLogic Server di AKS.

    Cuplikan layar portal Azure yang memperlihatkan WLS di hasil pencarian.

    Anda juga dapat langsung masuk ke WebLogic Server pada penawaran AKS .

  2. Pada halaman penawaran, pilih Buat.

  3. Pada panel Dasar , pastikan nilai yang diperlihatkan di bidang Langganan sama dengan yang Anda masuki di Azure. Pastikan Anda memiliki peran yang tercantum di bagian prasyarat.

    Cuplikan layar portal Azure yang memperlihatkan WebLogic Server di AKS.

  4. Anda harus menyebarkan penawaran dalam grup sumber daya kosong. Di bidang Grup sumber daya, pilih Buat baru lalu isi nilai untuk grup sumber daya. Karena grup sumber daya harus unik di dalam langganan, pilih nama unik. Cara mudah untuk memiliki nama unik adalah dengan menggunakan kombinasi inisial Anda, tanggal hari ini, dan beberapa pengidentifikasi - misalnya, ejb0723wls.

  5. Di bawah Detail instans, pilih wilayah untuk penyebaran. Untuk daftar wilayah Azure tempat AKS tersedia, lihat Ketersediaan wilayah AKS.

  6. Di bawah Kredensial untuk WebLogic, biarkan nilai default untuk Nama Pengguna untuk Administrator WebLogic.

  7. wlsAksCluster2022 Isi kata sandi untuk Administrator WebLogic. Gunakan nilai yang sama untuk konfirmasi dan Kata Sandi untuk bidang enkripsi Model WebLogic.

  8. Gulir ke bagian bawah panel Dasar dan perhatikan tautan bermanfaat untuk dokumentasi, dukungan komunitas, dan cara melaporkan masalah.

  9. Pilih Selanjutnya.

Langkah-langkah berikut menunjukkan kepada Anda cara memulai proses penyebaran.

  1. Gulir ke bagian berlabel Sediakan akun Akses Menyeluruh (SSO) Oracle. Isi kredensial Oracle SSO Anda dari prasyarat.

    Cuplikan layar portal Azure yang memperlihatkan panel SSO yang dikonfigurasi.

  2. Ikuti langkah-langkah dalam kotak info yang dimulai dengan Sebelum melanjutkan, Anda harus menerima Ketentuan dan Batasan Standar Oracle.

  3. Bergantung pada apakah akun Oracle SSO memiliki hak dukungan Oracle atau tidak, pilih opsi yang sesuai untuk Pilih jenis Gambar Server WebLogic.. Jika akun memiliki pemberian dukungan, pilih Gambar Server WebLogic Yang Di-patch. Jika tidak, pilih Gambar Server WebLogic Umum.

  4. Biarkan nilai di Pilih kombinasi WebLogic Server yang diinginkan... pada nilai defaultnya. Anda memiliki berbagai pilihan untuk versi WLS, JDK, dan OS.

  5. Di bagian Aplikasi , di samping Sebarkan aplikasi?, pilih Tidak.

Langkah-langkah berikut membuatnya sehingga konsol admin WLS dan aplikasi sampel diekspos ke Internet publik dengan add-on masuk Application Gateway bawaan. Untuk informasi selengkapnya, lihat Apa itu Pengontrol Ingress Application Gateway?

Cuplikan layar portal Azure yang menunjukkan konfigurasi load balancer paling sederhana pada halaman Buat Oracle WebLogic Server di Azure Kubernetes Service.

  1. Pilih Berikutnya untuk melihat panel TLS/SSL .

  2. Pilih Berikutnya untuk melihat panel Penyeimbangan beban.

  3. Di samping Opsi Penyeimbangan Beban, pilih Pengontrol Ingress Application Gateway.

  4. Di bawah Pengontrol Ingress Application Gateway, Anda akan melihat semua bidang yang telah diisi sebelumnya dengan default untuk Jaringan virtual dan Subnet. Biarkan nilai default.

  5. Untuk Buat ingress untuk Konsol Administrasi, pilih Ya.

    Cuplikan layar portal Azure yang menunjukkan konfigurasi Pengontrol Ingress Application Gateway pada halaman Buat Oracle WebLogic Server di Azure Kubernetes Service.

  6. Biarkan nilai default untuk bidang lain.

  7. Pilih Tinjau + buat. Pastikan validasi tidak gagal. Jika gagal, perbaiki masalah validasi, lalu pilih Tinjau + buat lagi.

  8. Pilih Buat.

  9. Lacak kemajuan penyebaran pada halaman Penyebaran sedang berlangsung .

Bergantung pada kondisi jaringan dan aktivitas lain di wilayah yang Anda pilih, penyebaran mungkin memerlukan waktu hingga 50 menit untuk diselesaikan.

Anda bisa melakukan langkah-langkah di bagian Membuat Azure SQL Database saat menunggu. Kembali ke bagian ini saat Anda selesai membuat database.

Memeriksa output penyebaran

Gunakan langkah-langkah di bagian ini untuk memverifikasi bahwa penyebaran berhasil.

Jika Anda menavigasi jauh dari halaman Penyebaran sedang berlangsung , langkah-langkah berikut menunjukkan kepada Anda cara kembali ke halaman tersebut. Jika Anda masih berada di halaman yang memperlihatkan Penyebaran Anda selesai, Anda dapat melompat ke langkah 5 setelah cuplikan layar berikutnya.

  1. Di sudut halaman portal Azure mana pun, pilih menu hamburger dan pilih Grup sumber daya.

  2. Dalam kotak dengan teks Filter untuk bidang apa pun, masukkan beberapa karakter pertama grup sumber daya yang Anda buat sebelumnya. Apabila Anda mengikuti konvensi yang direkomendasikan, masukkan inisial Anda, kemudian pilih grup sumber daya yang sesuai.

  3. Di panel navigasi, di bagian Pengaturan, pilih Penyebaran. Anda melihat daftar penyebaran yang diurutkan ke grup sumber daya ini, dengan yang terbaru terlebih dahulu.

  4. Gulir ke entri terlama dalam daftar ini. Entri ini sesuai dengan penyebaran yang Anda mulai di bagian sebelumnya. Pilih penyebaran terlama, seperti yang ditunjukkan pada cuplikan layar berikut.

    Cuplikan layar portal Azure yang memperlihatkan daftar penyebaran grup sumber daya.

  5. Di panel navigasi, pilih Output. Daftar ini memperlihatkan nilai output dari penyebaran. Informasi yang berguna disertakan dalam output.

  6. Nilai adminConsoleExternalUrl adalah tautan internet publik yang sepenuhnya memenuhi syarat dan terlihat ke konsol admin WLS untuk kluster AKS ini. Pilih ikon salin di samping nilai bidang untuk menyalin tautan ke clipboard Anda. Simpan nilai ini selain untuk nanti.

  7. Nilai clusterExternalUrl adalah tautan internet publik yang sepenuhnya memenuhi syarat dan terlihat ke aplikasi sampel yang disebarkan di WLS pada kluster AKS ini. Pilih ikon salin di samping nilai bidang untuk menyalin tautan ke clipboard Anda. Simpan nilai ini selain untuk nanti.

  8. Nilai shellCmdtoOutputWlsImageModelYaml adalah string base64 model WDT yang dibangun dalam gambar kontainer. Simpan nilai ini selain untuk nanti.

  9. Nilai shellCmdtoOutputWlsImageProperties adalah string base64 dari properti model WDT yang dibangun dalam gambar kontainer. Simpan nilai ini selain untuk nanti.

  10. Nilai shellCmdto Koneksi Aks adalah perintah Azure CLI untuk menyambungkan ke kluster AKS tertentu ini. Ini memungkinkan Anda menggunakan kubectl untuk mengelola kluster.

Nilai lain dalam output berada di luar cakupan artikel ini, tetapi dijelaskan secara rinci dalam panduan pengguna WebLogic di AKS.

Membuat Azure SQL Database

Untuk membuat database tunggal Azure SQL Database untuk digunakan dengan aplikasi Anda, ikuti langkah-langkah di Mulai Cepat: Membuat database tunggal di Azure SQL Database. Perhatikan dengan cermat perbedaan berikut:

  • Pada langkah Dasar, tuliskan nilai untuk Grup sumber daya, Nama database, <server-name.database.windows.net>, Login admin server, dan Kata Sandi. Artikel ini mengacu pada nilai grup Sumber Daya database sebagai <db-resource-group>.

  • Pada langkah Jaringan, atur metode Koneksi ivity ke Titik akhir publik, atur Izinkan layanan dan sumber daya Azure untuk mengakses server ini ke Ya, dan atur Tambahkan alamat IP klien saat ini ke Ya.

    Cuplikan layar portal Azure yang memperlihatkan tab Jaringan dari halaman Buat SQL Database dengan metode Koneksi ivity dan pengaturan Aturan firewall disorot.

Catatan

Tingkat komputasi tanpa server yang Anda pilih untuk database ini menghemat uang dengan membuat database tidur selama periode tidak aktif. Aplikasi sampel akan gagal jika database tertidur saat aplikasi dimulai.

Untuk memaksa database bangun, Anda bisa menjalankan kueri dengan menggunakan editor kueri. Ikuti langkah-langkah dalam Mengkueri database. Berikut adalah contoh kueri: SELECT * FROM COFFEE;.

  1. Buat skema untuk aplikasi sampel. Ikuti Kueri database untuk membuka panel Editor kueri . Masukkan dan jalankan kueri berikut:

    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);
    

    Setelah berhasil dijalankan, Anda akan melihat pesan Kueri berhasil: Baris yang terpengaruh: 0. Jika Anda tidak melihat pesan ini, pecahkan masalah dan atasi masalah sebelum melanjutkan.

Database, tabel, kluster AKS, dan kluster WLS dibuat. Jika mau, Anda dapat menjelajahi konsol admin dengan membuka browser dan menavigasi ke alamat adminConsoleExternalUrl. Masuk dengan nilai yang Anda masukkan selama penyebaran WLS di AKS.

Anda dapat melanjutkan untuk menyiapkan AKS untuk menghosting aplikasi WebLogic Anda.

Konfigurasikan dan sebarkan aplikasi sampel

Penawaran ini menyediakan kluster WLS melalui model dalam gambar. Saat ini, kluster WLS tidak memiliki aplikasi yang disebarkan.

Bagian ini memperbarui kluster WLS dengan menyebarkan aplikasi sampel menggunakan gambar tambahan.

Lihat aplikasinya

Di bagian ini, Anda mengkloning kode sampel untuk panduan ini. Sampel ada di GitHub di repositori weblogic-on-azure di folder javaee/weblogic-café/ . Berikut struktur file aplikasi tersebut.

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

Gunakan perintah berikut untuk mengkloning repositori:

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

Jika Anda melihat pesan tentang berada dalam status "HEAD yang terlepas", pesan ini aman untuk diabaikan. Ini hanya berarti Anda memeriksa tag.

Gunakan perintah berikut untuk membangun javaee/weblogic-café/:

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

Paket harus berhasil dibuat dan terletak di $BASE_DIR/weblogic-on-azure/javaee/weblogic-café/target/weblogic-café.war. Jika tidak melihat paket, Anda harus memecahkan masalah dan menyelesaikan masalah sebelum melanjutkan.

Menggunakan Docker untuk membuat gambar tambahan

Langkah-langkah di bagian ini menunjukkan kepada Anda cara membuat gambar tambahan. Gambar ini mencakup komponen berikut:

  • Model dalam file model Gambar
  • Aplikasi Anda
  • File arsip driver JDBC
  • Penginstalan WebLogic Deploy Tooling

Gambar tambahan adalah gambar kontainer Docker yang berisi aplikasi dan konfigurasi Anda. Operator WebLogic Kubernetes menggabungkan gambar tambahan Anda dengan domain.spec.image di kluster AKS yang berisi WebLogic Server, JDK, dan sistem operasi. Untuk informasi selengkapnya tentang gambar tambahan, lihat Gambar tambahan dalam dokumentasi Oracle.

Bagian ini memerlukan terminal Linux dengan Azure CLI dan kubectl yang diinstal.

Gunakan langkah-langkah berikut untuk membangun gambar:

  1. Gunakan perintah berikut untuk membuat direktori untuk menahapkan model dan aplikasi:

    mkdir -p ${BASE_DIR}/mystaging/models
    cd ${BASE_DIR}/mystaging/models
    
  2. Salin nilai shellCmdtoOutputWlsImageModelYaml yang Anda simpan dari output penyebaran, tempelkan ke jendela Bash, dan jalankan perintah . Perintah akan terlihat mirip dengan contoh berikut:

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

    Perintah ini menghasilkan file ${BASE_DIR}/mystaging/models/model.yaml dengan konten yang mirip dengan contoh berikut:

    # 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. Dengan cara yang sama, salin nilai shellCmdtoOutputWlsImageProperties , tempelkan ke jendela Bash, dan jalankan perintah . Perintah akan terlihat mirip dengan contoh berikut:

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

    Perintah ini menghasilkan file ${BASE_DIR}/mystaging/models/model.properties dengan konten yang mirip dengan contoh berikut:

    # 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. Gunakan langkah-langkah berikut untuk membuat file model aplikasi.

    1. Gunakan perintah berikut untuk menyalin weblogic-café.war dan simpan ke wlsdeploy/applications:

      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. Gunakan perintah berikut untuk membuat file model aplikasi dengan konten yang ditampilkan. Simpan file model ke ${BASE_DIR}/mystaging/models/appmodel.yaml.

      cat <<EOF >appmodel.yaml
      appDeployments:
        Application:
          weblogic-cafe:
            SourcePath: 'wlsdeploy/applications/weblogic-cafe.war'
            ModuleType: ear
            Target: 'cluster-1'
      EOF
      
  5. Gunakan perintah berikut untuk mengunduh dan menginstal driver Microsoft SQL Server JDBC ke wlsdeploy/externalJDBCLibraries:

    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. Selanjutnya, gunakan perintah berikut untuk membuat file model koneksi database dengan konten yang diperlihatkan. Simpan file model ke ${BASE_DIR}/mystaging/models/dbmodel.yaml. Model ini menggunakan tempat penampung (rahasia sqlserver-secret) untuk nama pengguna, kata sandi, dan URL database. Pastikan bidang berikut diatur dengan benar. Model berikut menamai sumber daya dengan jdbc/WebLogicCafeDB.

    Nama Item Bidang Nilai
    Nama JNDI resources.JDBCSystemResource.<resource-name>.JdbcResource.JDBCDataSourceParams.JNDIName jdbc/WebLogicCafeDB
    Nama driver resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.DriverName com.microsoft.sqlserver.jdbc.SQLServerDriver
    Database Url resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.URL @@SECRET:sqlserver-secret:url@@
    Kata sandi database resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.PasswordEncrypted @@SECRET:sqlserver-secret:password@@
    Nama pengguna database 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. Gunakan perintah berikut untuk membuat file arsip aplikasi lalu hapus folder wlsdeploy , yang tidak Anda perlukan lagi:

    cd ${BASE_DIR}/mystaging/models
    zip -r archive.zip wlsdeploy
    
    rm -f -r wlsdeploy
    
  8. Gunakan perintah berikut untuk mengunduh dan menginstal WebLogic Deploy Tooling (WDT) di direktori penahapan dan menghapus file weblogic-deploy/bin/*.cmd , yang tidak digunakan di lingkungan UNIX:

    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. Gunakan perintah berikut untuk menghapus penginstal WDT:

    rm weblogic-deploy.zip
    
  10. Gunakan perintah berikut untuk membangun gambar tambahan menggunakan docker:

    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. Jalankan docker buildx build perintah menggunakan ${BASE_DIR}/mystaging/Dockerfile, seperti yang ditunjukkan dalam contoh berikut:

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

    Saat Anda berhasil membangun gambar, output terlihat mirip dengan contoh berikut:

    [+] 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. Jika Anda telah berhasil membuat gambar, maka sekarang harus berada di repositori Docker komputer lokal Anda. Anda dapat memverifikasi pembuatan gambar dengan menggunakan perintah berikut:

    docker images model-in-image:WLS-v1
    

    Perintah ini harus menghasilkan output yang mirip dengan contoh berikut:

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

    Setelah gambar dibuat, gambar harus memiliki file WDT yang dapat dieksekusi dalam /auxiliary/weblogic-deploy, dan model WDT, properti, dan file arsip di /auxiliary/models. Gunakan perintah berikut pada gambar Docker untuk memverifikasi hasil ini:

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

    Perintah ini harus menghasilkan output yang mirip dengan contoh berikut:

    /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. Gunakan langkah-langkah berikut untuk mendorong gambar tambahan ke Azure Container Registry:

    1. Buka portal Azure dan buka grup sumber daya yang Anda provisikan di bagian Sebarkan WSL di AKS.

    2. Pilih sumber daya jenis Registri kontainer dari daftar sumber daya.

    3. Arahkan mouse ke atas nilai di samping Server masuk dan pilih ikon salin di samping teks.

    4. Simpan nilai dalam ACR_LOGIN_SERVER variabel lingkungan dengan menggunakan perintah berikut:

      export ACR_LOGIN_SERVER=<value-from-clipboard>
      
    5. Jalankan perintah berikut untuk menandai dan mendorong gambar. Pastikan Docker berjalan sebelum menjalankan perintah ini.

      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. Anda dapat menjalankan az acr repository show untuk menguji apakah gambar berhasil didorong ke repositori jarak jauh, seperti yang ditunjukkan dalam contoh berikut:

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

      Perintah ini harus menghasilkan output yang mirip dengan contoh berikut:

      {
        "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
      }
      

Menerapkan gambar tambahan

Pada langkah-langkah sebelumnya, Anda membuat gambar tambahan termasuk model dan WDT. Sebelum Anda menerapkan gambar tambahan ke kluster WLS, gunakan langkah-langkah berikut untuk membuat rahasia url sumber data, nama pengguna, dan kata sandi. Rahasia digunakan sebagai bagian dari tempat penampung di dbmodel.yaml.

  1. Koneksi ke kluster AKS dengan menyalin nilai shellCmdto Koneksi Aks yang Anda simpan sebelumnya, menempelkannya ke jendela Bash, lalu menjalankan perintah. Perintah akan terlihat mirip dengan contoh berikut:

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

    Anda akan melihat output yang mirip dengan contoh berikut. Jika Anda tidak melihat output ini, pecahkan masalah dan atasi masalah sebelum melanjutkan.

    Merged "<name>" as current context in /Users/<username>/.kube/config
    
  2. Gunakan langkah-langkah berikut untuk mendapatkan nilai untuk variabel yang diperlihatkan dalam tabel berikut. Anda menggunakan nilai-nilai ini nanti untuk membuat rahasia untuk koneksi sumber data.

    Variabel Deskripsi Contoh
    DB_CONNECTION_STRING String koneksi server SQL. jdbc:sqlserver://sqlserverforwlsaks.database.windows.net:1433;database=wlsaksquickstart0125
    DB_USER Nama pengguna untuk masuk ke server SQL. welogic@sqlserverforwlsaks
    DB_PASSWORD Kata sandi untuk masuk ke server sQL. Secret123456
    1. Kunjungi sumber daya database SQL di portal Azure.

    2. Di panel navigasi, di bawah Pengaturan, pilih string Koneksi ion.

    3. Pilih tab JDBC .

    4. Pilih ikon salin untuk menyalin string koneksi ke clipboard.

    5. Untuk DB_CONNECTION_STRING, gunakan seluruh string koneksi, tetapi ganti tempat penampung {your_password_here} dengan kata sandi database Anda.

    6. Untuk DB_USER, gunakan bagian string koneksi dari azureuser hingga tetapi tidak termasuk ;password={your_password_here}.

    7. Untuk DB_PASSWORD, gunakan nilai yang Anda masukkan saat membuat database.

  3. Gunakan perintah berikut untuk membuat Rahasia Kubernetes. Artikel ini menggunakan nama sqlserver-secret rahasia untuk rahasia koneksi sumber data. Jika Anda menggunakan nama yang berbeda, pastikan nilainya sama dengan yang ada di dbmodel.yaml.

    Dalam perintah berikut, pastikan untuk mengatur variabel DB_CONNECTION_STRING, , DB_USERdan DB_PASSWORD dengan benar dengan mengganti contoh tempat penampung dengan nilai yang dijelaskan dalam langkah-langkah sebelumnya. Pastikan untuk mengapit nilai DB_ variabel dalam tanda kutip tunggal untuk mencegah shell mengganggu nilai.

    export DB_CONNECTION_STRING='<example-jdbc:sqlserver://sqlserverforwlsaks.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}
    

    Anda harus melihat output berikut sebelum melanjutkan. Jika Anda tidak melihat output ini, pecahkan masalah dan atasi masalah sebelum melanjutkan.

    secret/sqlserver-secret created
    secret/sqlserver-secret labeled
    
  4. Terapkan gambar tambahan dengan menambal definisi sumber daya kustom domain (CRD) menggunakan kubectl patch perintah .

    Gambar tambahan didefinisikan dalam spec.configuration.model.auxiliaryImages, seperti yang ditunjukkan dalam contoh berikut. Untuk informasi selengkapnya, lihat gambar tambahan.

    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
    

    Gunakan perintah berikut untuk meningkatkan restartVersion nilai dan menggunakan kubectl patch untuk menerapkan gambar tambahan ke CRD domain menggunakan definisi yang diperlihatkan:

    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. Tunggu hingga server admin dan server terkelola memperlihatkan nilai dalam blok output berikut sebelum Anda melanjutkan:

    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
    

    Mungkin perlu waktu 5-10 menit agar sistem mencapai status ini. Daftar berikut ini memberikan gambaran umum tentang apa yang terjadi saat Anda menunggu:

    • Anda akan melihat yang sample-domain1-introspector berjalan terlebih dahulu. Perangkat lunak ini mencari perubahan pada sumber daya kustom domain sehingga dapat mengambil tindakan yang diperlukan pada kluster Kubernetes.
    • Ketika perubahan terdeteksi, introspektor domain akan membunuh dan memulai pod baru untuk meluncurkan perubahan.
    • Selanjutnya, Anda akan melihat sample-domain1-admin-server pod dihentikan dan dimulai ulang.
    • Kemudian, Anda akan melihat dua server terkelola mengakhiri dan memulai ulang.
    • Hanya ketika ketiga pod menunjukkan status 1/1 Running , apakah tidak apa-apa untuk melanjutkan.

Memverifikasi fungsionalitas penyebaran

Gunakan langkah-langkah berikut untuk memverifikasi fungsi penyebaran dengan melihat konsol admin WLS dan aplikasi sampel:

  1. Tempelkan nilai adminConsoleExternalUrl ke bilah alamat browser web yang terhubung ke Internet. Anda akan melihat layar login konsol admin WLS yang sudah dikenal.

  2. Masuk dengan nama weblogic pengguna dan kata sandi yang Anda masukkan saat menyebarkan WLS dari portal Azure. Ingat bahwa nilai ini adalah wlsAksCluster2022.

  3. Dalam kotak Struktur Domain, pilih Layanan.

  4. Di bawah Layanan, pilih Sumber Data.

  5. Di panel Ringkasan Sumber Data JDBC, pilih Pemantauan. Layar Anda akan terlihat mirip dengan contoh berikut. Anda menemukan status sumber data berjalan di server terkelola.

    Cuplikan layar status sumber data.

  6. Dalam kotak Struktur Domain, pilih Penyebaran.

  7. Dalam tabel Penyebaran, harus ada satu baris. Nama harus bernilai Application sama dengan nilai dalam file appmodel.yaml Anda. Pilih nama.

  8. Di panel Pengaturan, pilih tab Pengujian.

  9. Pilih weblogic-café.

  10. Di panel Pengaturan untuk weblogic-café, pilih tab Pengujian.

  11. Perluas ikon di + samping weblogic-café. Layar Anda akan terlihat mirip dengan contoh berikut. Secara khusus, Anda akan melihat nilai yang mirip http://sample-domain1-managed-server1:8001/weblogic-cafe/index.xhtml dengan di kolom Titik Uji.

    Cuplikan layar titik pengujian weblogic-café.

    Catatan

    Hyperlink di kolom Titik Uji tidak dapat dipilih karena kami tidak mengonfigurasi konsol admin dengan URL eksternal tempatnya berjalan. Artikel ini menunjukkan konsol admin WLS hanya dengan cara demonstrasi. Jangan gunakan konsol admin WLS untuk perubahan konfigurasi yang tahan lama saat menjalankan WLS di AKS. Desain cloud-native WLS di AKS mengharuskan konfigurasi tahan lama harus diwakili dalam gambar docker awal atau diterapkan ke kluster AKS yang sedang berjalan menggunakan teknik CI/CD seperti memperbarui model, seperti yang dijelaskan dalam dokumentasi Oracle.

  12. context-path Pahami nilai aplikasi sampel yang Anda sebarkan. Jika Anda menyebarkan aplikasi sampel yang direkomendasikan, context-path adalah weblogic-cafe.

  13. Buat URL yang sepenuhnya memenuhi syarat untuk aplikasi sampel dengan menambahkan ke context-pathnilai clusterExternalUrl . Jika Anda menyebarkan aplikasi sampel yang direkomendasikan, URL yang sepenuhnya memenuhi syarat harus seperti http://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/.

  14. Tempelkan URL yang sepenuhnya memenuhi syarat di browser web yang terhubung ke Internet. Jika Anda menyebarkan aplikasi sampel yang direkomendasikan, Anda akan melihat hasil yang mirip dengan cuplikan layar berikut:

    Cuplikan layar aplikasi web pengujian.

Membersihkan sumber daya

Untuk menghindari biaya Azure, Anda harus membersihkan sumber daya yang tidak diperlukan. Saat Anda tidak lagi membutuhkan kluster, gunakan perintah az group delete. Perintah berikut menghapus grup sumber daya, layanan kontainer, registri kontainer, dan semua sumber daya terkait:

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

Langkah berikutnya

Pelajari selengkapnya tentang menjalankan WLS di AKS atau komputer virtual dengan mengikuti tautan berikut: