Sdílet prostřednictvím


Nasazení aplikace v Javě s WebLogic Serverem v clusteru Azure Kubernetes Service (AKS)

Tento článek ukazuje, jak:

  • Spusťte Javu, Javu EE nebo Jakarta EE na serveru Oracle WebLogic (WLS).
  • Vytvořte cluster WLS pomocí nabídky Azure Marketplace.
  • Sestavte image Dockeru aplikace, která slouží jako pomocná image pro poskytování modelů a aplikací nástroje WDT (WebLogic Deploy Tooling).
  • Nasaďte kontejnerizovanou aplikaci do existujícího clusteru WLS v AKS s připojením k Microsoft Azure SQL.

Tento článek používá nabídku Azure Marketplace pro WLS k urychlení vaší cesty k AKS. Nabídka automaticky zřídí několik prostředků Azure, včetně následujících prostředků:

  • Instance služby Azure Container Registry
  • Cluster AKS
  • Instance kontroleru příchozího přenosu dat brány Aplikace Azure (AGIC)
  • Operátor WebLogic
  • Image kontejneru včetně modulu runtime WebLogic
  • Cluster WLS bez aplikace

Tento článek pak představuje krok za krokem vytvoření pomocné image pro aktualizaci existujícího clusteru WLS. Pomocná image poskytuje modely aplikací a WDT.

Pro úplnou automatizaci můžete vybrat aplikaci a nakonfigurovat připojení zdroje dat z webu Azure Portal před nasazením nabídky. Pokud chcete nabídku zobrazit, navštivte web Azure Portal.

Podrobné pokyny k nastavení Serveru WebLogic ve službě Azure Kubernetes Service najdete v oficiální dokumentaci oracle ve službě Azure Kubernetes Service.

Požadavky

  • Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
  • Ujistěte se, že identita Azure, kterou používáte k přihlášení, a dokončete tento článek, má roli Vlastník v aktuálním předplatném nebo roli Přispěvatel a Přístup uživatelů Správa istrator v aktuálním předplatném. Přehled rolí Azure najdete v tématu Co je řízení přístupu na základě role v Azure (Azure RBAC)? Podrobnosti o konkrétních rolích vyžadovaných službou WLS v AKS najdete v tématu Předdefinované role Azure.
  • Požádejte přihlašovací údaje pro účet jednotného přihlašování (SSO) Oracle. Pokud ho chcete vytvořit, přečtěte si téma Vytvoření účtu Oracle.
  • Přijměte licenční podmínky pro WLS.
    • Navštivte Registr kontejnerů Oracle a přihlaste se.
    • Pokud máte nárok na podporu, vyberte Middleware, vyhledejte a vyberte weblogic_cpu.
    • Pokud nemáte nárok na podporu od Oracle, vyberte Middleware a vyhledejte a vyberte weblogic.

      Poznámka:

      Před přechodem do produkčního prostředí získejte nárok na podporu od Oracle. Selháním této akce je spuštění nezabezpečených imagí, které nejsou opravené kvůli kritickým chybám zabezpečení. Další informace o důležitých aktualizacích oprav Oracle najdete v tématu Kritické opravy Aktualizace, výstrahy zabezpečení a bulletiny od společnosti Oracle.

    • Přijměte licenční smlouvu.
  • Připravte místní počítač s nainstalovaným operačním systémem Unix (například Ubuntu, Azure Linux, macOS, Subsystém Windows pro Linux).
    • Rozhraní příkazového řádku Azure. Slouží az --version k otestování, jestli az works. Tento dokument byl testován s verzí 2.55.1.
    • Docker. Tento dokument byl testován s Docker verze 20.10.7. Slouží docker info k otestování, jestli je spuštěný démon Dockeru.
    • kubectl. Slouží kubectl version k otestování, jestli kubectl funguje. Tento dokument byl testován s verzí v1.21.2.
    • Sada Java JDK kompatibilní s verzí služby WLS, kterou chcete spustit. Článek vás nasměruje k instalaci verze WLS, která používá sadu JDK 11. Azure doporučuje Microsoft Build openJDK. Ujistěte se, že je vaše JAVA_HOME proměnná prostředí správně nastavená v prostředích, ve kterých spouštíte příkazy.
    • Maven 3.5.0 nebo vyšší.
    • Ujistěte se, že máte nainstalovaný nástroj zip/rozbalení. Slouží zip/unzip -v k otestování, jestli zip/unzip funguje.
  • Všechny kroky v tomto článku, s výjimkou těch, které se týkají Dockeru, je možné spustit také v Azure Cloud Shellu. Další informace o Azure Cloud Shellu najdete v tématu Co je Azure Cloud Shell?

Nasazení služby WLS v AKS

Kroky v této části vás nasměruje k nasazení služby WLS v AKS nejjednodušším možným způsobem. WLS v AKS nabízí širokou a hlubokou škálu integrací Azure. Další informace najdete v tématu Co jsou řešení pro spuštění Oracle WebLogic Serveru ve službě Azure Kubernetes Service?

Následující kroky ukazují, jak najít WLS v nabídce AKS a vyplnit podokno Základy .

  1. Na panelu hledání v horní části webu Azure Portal zadejte weblogic. V automaticky navrhovaných výsledcích hledání v části Marketplace vyberte WebLogic Server v AKS.

    Snímek obrazovky webu Azure Portal zobrazící seznam WLS ve výsledcích hledání

    Můžete také přejít přímo na WebLogic Server v nabídce AKS .

  2. Na stránce nabídky vyberte Vytvořit.

  3. V podokně Základy se ujistěte, že hodnota zobrazená v poli Předplatné je stejná jako hodnota, ke které jste se přihlásili v Azure. Ujistěte se, že máte role uvedené v části Požadavky.

    Snímek obrazovky webu Azure Portal zobrazící Server WebLogic v AKS

  4. Nabídku musíte nasadit do prázdné skupiny prostředků. V poli Skupina prostředků vyberte Vytvořit nový a potom vyplňte hodnotu skupiny prostředků. Vzhledem k tomu, že skupiny prostředků musí být v rámci předplatného jedinečné, vyberte jedinečný název. Jednoduchým způsobem, jak mít jedinečné názvy, je použít kombinaci iniciály, dnešního data a identifikátoru – například ejb0723wls.

  5. V části Podrobnosti o instanci vyberte oblast nasazení. Seznam oblastí Azure, ve kterých je služba AKS dostupná, najdete v tématu Dostupnost oblastí AKS.

  6. V části Pověření pro WebLogic ponechte výchozí hodnotu pro uživatelské jméno pro WebLogic Správa istrator.

  7. wlsAksCluster2022Zadejte heslo pro webLogic Správa istrator. Pro pole pro potvrzení a heslo pro šifrování modelu WebLogic použijte stejnou hodnotu.

  8. Posuňte se do dolní části podokna Základy a všimněte si užitečných odkazů pro dokumentaci, podporu komunity a hlášení problémů.

  9. Vyberte Další.

Následující kroky ukazují, jak spustit proces nasazení.

  1. Posuňte se do části s popiskem Zadejte účet jednotného přihlašování (SSO) Oracle. Vyplňte přihlašovací údaje k jednotnému přihlašování Oracle z předpokladů.

    Snímek obrazovky webu Azure Portal s nakonfigurovaným podoknem jednotného přihlašování

  2. Postupujte podle kroků v informačním poli počínaje postupem před přechodem , musíte přijmout standardní podmínky a omezení Oracle.

  3. V závislosti na tom, jestli má účet jednotného přihlašování Oracle nárok na podporu Oracle, vyberte příslušnou možnost pro možnost Vybrat typ imagí serveru WebLogic. Pokud má účet nárok na podporu, vyberte opravy imagí serveru WebLogic. Jinak vyberte Obecné image serveru WebLogic.

  4. Ponechte hodnotu v možnosti Vybrat požadovanou kombinaci serveru WebLogic... ve své výchozí hodnotě. Máte širokou škálu možností pro WLS, JDK a verzi operačního systému.

  5. V části Aplikace vedle možnosti Nasadit aplikaci vyberte Ne.

Následující postup zajistí, že se konzola pro správu WLS a ukázková aplikace zpřístupní veřejnému internetu pomocí integrovaného doplňku příchozího přenosu dat služby Application Gateway. Další informace najdete v tématu Co je kontroler příchozího přenosu dat služby Application Gateway?

Snímek obrazovky webu Azure Portal znázorňující nejjednodušší možnou konfiguraci nástroje pro vyrovnávání zatížení na stránce Vytvořit Oracle WebLogic Server na stránce Azure Kubernetes Service

  1. Výběrem možnosti Další zobrazíte podokno TLS/SSL.

  2. Výběrem možnosti Další zobrazíte podokno vyrovnávání zatížení.

  3. Vedle možností vyrovnávání zatížení vyberte kontroler příchozího přenosu dat služby Application Gateway.

  4. V kontroleru příchozího přenosu dat služby Application Gateway by se měla zobrazit všechna pole předem vyplněná výchozími hodnotami pro virtuální síť a podsíť. Ponechte výchozí hodnoty.

  5. V části Vytvořit příchozí přenos dat pro konzolu Správa istrace vyberte Ano.

    Snímek obrazovky webu Azure Portal znázorňující konfiguraci kontroleru příchozího přenosu dat služby Application Gateway na stránce Vytvořit Oracle WebLogic Server na stránce Azure Kubernetes Service

  6. Ponechte výchozí hodnoty pro jiná pole.

  7. Vyberte Zkontrolovat a vytvořit. Ujistěte se, že ověření se nezdaří. Pokud selže, opravte případné problémy s ověřením a pak znovu vyberte Zkontrolovat a vytvořit .

  8. Vyberte Vytvořit.

  9. Sledujte průběh nasazení na stránce Nasazení .

V závislosti na podmínkách sítě a dalších aktivitách ve vybrané oblasti může dokončení nasazení trvat až 50 minut.

Kroky v části Vytvoření služby Azure SQL Database můžete provést během čekání. Až dokončíte vytváření databáze, vraťte se do této části.

Prozkoumání výstupu nasazení

Pomocí kroků v této části ověřte, že nasazení proběhlo úspěšně.

Pokud jste přešli mimo stránku Nasazení , následující kroky ukazují, jak se vrátit na tuto stránku. Pokud jste stále na stránce, na které je vidět , že je vaše nasazení dokončené, můžete přeskočit na krok 5 po dalším snímku obrazovky.

  1. V rohu libovolné stránky webu Azure Portal vyberte hamburgerovou nabídku a vyberte Skupiny prostředků.

  2. Do pole s textovým filtrem pro jakékoli pole zadejte několik prvních znaků skupiny prostředků, kterou jste vytvořili dříve. Pokud jste postupovali podle doporučené konvence, zadejte iniciály a pak vyberte příslušnou skupinu prostředků.

  3. V navigačním podokně v části Nastavení vyberte Nasazení. Zobrazí se uspořádaný seznam nasazení do této skupiny prostředků s nejnovějším.

  4. Posuňte se k nejstarší položce v tomto seznamu. Tato položka odpovídá nasazení, které jste začali v předchozí části. Vyberte nejstarší nasazení, jak je znázorněno na následujícím snímku obrazovky.

    Snímek obrazovky webu Azure Portal se seznamem nasazení skupin prostředků

  5. V navigačním podokně vyberte Výstupy. Tento seznam zobrazuje výstupní hodnoty z nasazení. Užitečné informace jsou zahrnuty ve výstupech.

  6. Hodnota adminConsoleExternalUrl je plně kvalifikovaný veřejný internetový viditelný odkaz na konzolu pro správu WLS pro tento cluster AKS. Výběrem ikony kopírování vedle hodnoty pole zkopírujte odkaz do schránky. Tuto hodnotu si uložte na později.

  7. Hodnota clusterExternalUrl je plně kvalifikovaný veřejný internetový viditelný odkaz na ukázkovou aplikaci nasazenou ve službě WLS v tomto clusteru AKS. Výběrem ikony kopírování vedle hodnoty pole zkopírujte odkaz do schránky. Tuto hodnotu si uložte na později.

  8. ShellCmdtoOutputWlsImageModelYaml je řetězec base64 modelu WDT, který je integrovaný v imagi kontejneru. Tuto hodnotu si uložte na později.

  9. Hodnota shellCmdtoOutputWlsImageProperties je řetězec base64 vlastností modelu WDT, které jsou integrované v imagi kontejneru. Tuto hodnotu si uložte na později.

  10. Hodnota shellCmdto Připojení Aks je příkaz Azure CLI pro připojení k tomuto konkrétnímu clusteru AKS. To vám umožní spravovat kubectl cluster.

Ostatní hodnoty ve výstupech jsou nad rámec tohoto článku, ale jsou podrobně vysvětleny v uživatelské příručce WebLogic v AKS.

Vytvoření databáze Azure SQL Database

Pokud chcete vytvořit jednoúčelovou databázi Azure SQL Database pro použití s vaší aplikací, postupujte podle kroků v rychlém startu: Vytvoření izolované databáze ve službě Azure SQL Database. Pečlivě si poznamenejte následující rozdíly:

  • V kroku Základy zapište hodnoty pro skupinu prostředků, název databáze,< název> serveru.database.windows.net, přihlášení správce serveru a heslo. Tento článek se týká hodnoty skupiny prostředků databáze jako <db-resource-group>.

  • V kroku Sítě nastavte metodu Připojení ivity na veřejný koncový bod, nastavte Povolit službám a prostředkům Azure přístup k tomuto serveru na Ano a nastavte Přidat aktuální IP adresu klienta na Ano.

    Snímek obrazovky webu Azure Portal znázorňující kartu Sítě na stránce Vytvořit databázi SQL se zvýrazněnou metodou Připojení ivity a nastavením pravidel brány firewall

Poznámka:

Bezserverová výpočetní úroveň , kterou jste vybrali pro tuto databázi, šetří peníze tím, že databázi umístíte do režimu spánku během období nečinnosti. Ukázková aplikace selže, pokud databáze po spuštění aplikace spí.

Pokud chcete vynutit probuzení databáze, můžete spustit dotaz pomocí editoru dotazů. Postupujte podle kroků v dotazu na databázi. Tady je příklad dotazu: SELECT * FROM COFFEE;.

  1. Vytvořte schéma pro ukázkovou aplikaci. Otevřete podokno editoru dotazů podle příkazu Dotaz na databázi. Zadejte a spusťte následující dotaz:

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

    Po úspěšném spuštění by se měla zobrazit zpráva Dotaz byl úspěšný: Ovlivněné řádky: 0. Pokud tuto zprávu nevidíte, před pokračováním problém vyřešte a vyřešte ho.

Vytvoří se databáze, tabulky, cluster AKS a cluster WLS. Pokud chcete, můžete konzolu pro správu prozkoumat tak, že otevřete prohlížeč a přejdete na adresu adminConsoleExternalUrl. Přihlaste se pomocí hodnot, které jste zadali během nasazení služby WLS v AKS.

Můžete pokračovat v přípravě AKS na hostování vaší aplikace WebLogic.

Konfigurace a nasazení ukázkové aplikace

Nabídka zřídí cluster WLS prostřednictvím modelu v imagi. Cluster WLS v současné době nemá nasazenou žádnou aplikaci.

Tato část aktualizuje cluster WLS nasazením ukázkové aplikace pomocí pomocné image.

Podívejte se na aplikaci

V této části naklonujete vzorový kód pro tuto příručku. Ukázka je na GitHubu v úložišti weblogic-on-azure ve složce javaee/weblogic-café/ . Tady je struktura souborů aplikace.

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

Ke klonování úložiště použijte následující příkazy:

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

Pokud se zobrazí zpráva o tom, že je v odpojeném stavu HEAD, je tato zpráva v bezpečí ignorovat. Jen to znamená, že jste si rezervovali značku.

Pomocí následujícího příkazu sestavte javaee/weblogic-café/:

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

Balíček by měl být úspěšně vygenerován a umístěn v $BASE_DIR/weblogic-on-azure/javaee/weblogic-café/target/weblogic-café.war. Pokud balíček nevidíte, musíte tento problém vyřešit a teprve potom pokračovat.

Vytvoření pomocné image pomocí Dockeru

Kroky v této části ukazují, jak vytvořit pomocnou image. Tento obrázek obsahuje následující součásti:

  • Model v souborech modelu obrázků
  • Vaše aplikace
  • Archiv souboru ovladače JDBC
  • Instalace nástrojů Nasazení WebLogic

Pomocná image je image kontejneru Dockeru obsahující vaši aplikaci a konfiguraci. Operátor Kubernetes WebLogic kombinuje vaši pomocnou image s clusterem domain.spec.image AKS, který obsahuje server WebLogic, sadu JDK a operační systém. Další informace o pomocných obrázcích naleznete v nápovědě k obrázkům v dokumentaci Oracle.

Tato část vyžaduje linuxový terminál s nainstalovaným Azure CLI a kubectl.

K sestavení image použijte následující postup:

  1. Pomocí následujících příkazů vytvořte adresář, který připraví modely a aplikaci:

    mkdir -p ${BASE_DIR}/mystaging/models
    cd ${BASE_DIR}/mystaging/models
    
  2. Zkopírujte hodnotu shellCmdtoOutputWlsImageModelYaml, kterou jste uložili z výstupů nasazení, vložte ji do okna Bash a spusťte příkaz. Příkaz by měl vypadat podobně jako v následujícím příkladu:

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

    Tento příkaz vytvoří soubor ${BASE_DIR}/mystaging/models/model.yaml s obsahem podobným následujícímu příkladu:

    # 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. Podobným způsobem zkopírujte hodnotu shellCmdtoOutputWlsImageProperties , vložte ji do okna Bash a spusťte příkaz. Příkaz by měl vypadat podobně jako v následujícím příkladu:

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

    Tento příkaz vytvoří soubor ${BASE_DIR}/mystaging/models/model.properties s obsahem podobným následujícímu příkladu:

    # 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. Pomocí následujícího postupu vytvořte soubor modelu aplikace.

    1. Pomocí následujících příkazů zkopírujte weblogic-café.war a uložte ho do knihovny 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. Pomocí následujících příkazů vytvořte soubor modelu aplikace se zobrazeným obsahem. Uložte soubor modelu do ${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. Pomocí následujících příkazů stáhněte a nainstalujte ovladač Microsoft SQL Server JDBC do knihovny 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. Dále pomocí následujících příkazů vytvořte soubor modelu připojení databáze se zobrazeným obsahem. Uložte soubor modelu do ${BASE_DIR}/mystaging/models/dbmodel.yaml. Model používá zástupné symboly (tajný sqlserver-secretkód) pro uživatelské jméno databáze, heslo a adresu URL. Ujistěte se, že jsou následující pole správně nastavená. Následující model pojmenuje prostředek pomocí jdbc/WebLogicCafeDB.

    Název položky Pole Hodnota
    Název JNDI resources.JDBCSystemResource.<resource-name>.JdbcResource.JDBCDataSourceParams.JNDIName jdbc/WebLogicCafeDB
    Název ovladače resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.DriverName com.microsoft.sqlserver.jdbc.SQLServerDriver
    Adresa URL databáze resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.URL @@SECRET:sqlserver-secret:url@@
    Heslo databáze resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.PasswordEncrypted @@SECRET:sqlserver-secret:password@@
    Uživatelské jméno databáze 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. Pomocí následujících příkazů vytvořte soubor archivu aplikace a pak odeberte složku wlsdeploy , kterou už nepotřebujete:

    cd ${BASE_DIR}/mystaging/models
    zip -r archive.zip wlsdeploy
    
    rm -f -r wlsdeploy
    
  8. Pomocí následujících příkazů stáhněte a nainstalujte nástroj WebLogic Deploy Tooling (WDT) do přípravného adresáře a odeberte jeho soubory weblogic-deploy/bin/*.cmd, které se nepoužívají v prostředích systém 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. Pomocí následujícího příkazu odeberte instalační program WDT:

    rm weblogic-deploy.zip
    
  10. Pomocí následujících příkazů vytvořte pomocí Dockeru pomocnou image:

    cd ${BASE_DIR}/mystaging
    cat <<EOF >Dockerfile
    FROM busybox
    ARG AUXILIARY_IMAGE_PATH=/auxiliary
    ARG USER=oracle
    ARG USERID=1000
    ARG GROUP=root
    ENV AUXILIARY_IMAGE_PATH=\${AUXILIARY_IMAGE_PATH}
    RUN adduser -D -u \${USERID} -G \$GROUP \$USER
    # ARG expansion in COPY command's --chown is available in docker version 19.03.1+.
    # For older docker versions, change the Dockerfile to use separate COPY and 'RUN chown' commands.
    COPY --chown=\$USER:\$GROUP ./ \${AUXILIARY_IMAGE_PATH}/
    USER \$USER
    EOF
    
  11. docker buildx build Spusťte příkaz pomocí ${BASE_DIR}/mystaging/Dockerfile, jak je znázorněno v následujícím příkladu:

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

    Po úspěšném sestavení image bude výstup vypadat podobně jako v následujícím příkladu:

    [+] 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. Pokud jste image úspěšně vytvořili, měla by teď být v úložišti Dockeru vašeho místního počítače. Vytvoření image můžete ověřit pomocí následujícího příkazu:

    docker images model-in-image:WLS-v1
    

    Tento příkaz by měl vytvořit výstup podobný následujícímu příkladu:

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

    Po vytvoření image by měla mít spustitelné soubory WDT v /auxiliary/weblogic-deploy a model WDT, vlastnost a archivní soubory v /pomocných/modelech. Pomocí následujícího příkazu na imagi Dockeru ověřte tento výsledek:

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

    Tento příkaz by měl vytvořit výstup podobný následujícímu příkladu:

    /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. Pomocí následujících kroků nasdílíte pomocnou image do služby Azure Container Registry:

    1. Otevřete Azure Portal a přejděte do skupiny prostředků, kterou jste zřídili v části Nasazení WSL v AKS .

    2. V seznamu prostředků vyberte prostředek typu Registr kontejneru.

    3. Najeďte myší na hodnotu vedle přihlašovacího serveru a vyberte ikonu kopírování vedle textu.

    4. Hodnotu uložte do ACR_LOGIN_SERVER proměnné prostředí pomocí následujícího příkazu:

      export ACR_LOGIN_SERVER=<value-from-clipboard>
      
    5. Spusťte následující příkazy, které označí a nasdílí image. Před spuštěním těchto příkazů se ujistěte, že je Docker spuštěný.

      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. Spuštěním můžete az acr repository show otestovat, jestli se image úspěšně nasdílí do vzdáleného úložiště, jak je znázorněno v následujícím příkladu:

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

      Tento příkaz by měl vytvořit výstup podobný následujícímu příkladu:

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

Použití pomocného obrázku

V předchozích krocích jste vytvořili pomocnou image včetně modelů a WDT. Před použitím pomocné image pro cluster WLS pomocí následujícího postupu vytvořte tajný kód pro adresu URL zdroje dat, uživatelské jméno a heslo. Tajný kód se používá jako součást zástupného symbolu v dbmodel.yaml.

  1. Připojení do clusteru AKS zkopírováním hodnoty shellCmdto Připojení Aks, kterou jste si předtím uložili, vložením do okna Bash a spuštěním příkazu. Příkaz by měl vypadat podobně jako v následujícím příkladu:

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

    Měl by se zobrazit výstup podobný následujícímu příkladu. Pokud tento výstup nevidíte, před pokračováním problém vyřešte a vyřešte ho.

    Merged "<name>" as current context in /Users/<username>/.kube/config
    
  2. Následující postup slouží k získání hodnot proměnných zobrazených v následující tabulce. Tyto hodnoty použijete později k vytvoření tajného kódu pro připojení zdroje dat.

    Proměnná Popis Příklad
    DB_CONNECTION_STRING Připojovací řetězec SQL Serveru. jdbc:sqlserver://server-name.database.windows.net:1433;database=wlsaksquickstart0125
    DB_USER Uživatelské jméno pro přihlášení k SERVERU SQL. welogic@sqlserverforwlsaks
    DB_PASSWORD Heslo pro přihlášení k serveru sQL. Secret123456
    1. Navštivte prostředek databáze SQL na webu Azure Portal.

    2. V navigačním podokně v části Nastavení vyberte Připojení ionové řetězce.

    3. Vyberte kartu JDBC.

    4. Výběrem ikony kopírování zkopírujte připojovací řetězec do schránky.

    5. Pro DB_CONNECTION_STRINGpoužití celého připojovací řetězec, ale nahraďte zástupný symbol {your_password_here} heslem databáze.

    6. Pro DB_USERpoužití části připojovací řetězec z azureuser až do, ale ne včetně ;password={your_password_here}.

    7. Pro DB_PASSWORD, použijte hodnotu, kterou jste zadali při vytváření databáze.

  3. Pomocí následujících příkazů vytvořte tajný klíč Kubernetes. Tento článek používá název sqlserver-secret tajného kódu pro tajný kód připojení zdroje dat. Pokud použijete jiný název, ujistěte se, že je hodnota stejná jako hodnota v dbmodel.yaml.

    V následujících příkazech nezapomeňte nastavit proměnné DB_CONNECTION_STRINGDB_USERa DB_PASSWORD správně nahradit zástupné příklady hodnotami popsanými v předchozích krocích. Nezapomeňte hodnotu proměnných DB_ uzavřít do jednoduchých uvozovek, aby prostředí nezasahovalo do hodnot.

    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}
    

    Než budete pokračovat, musíte vidět následující výstup. Pokud tento výstup nevidíte, před pokračováním problém vyřešte a vyřešte ho.

    secret/sqlserver-secret created
    secret/sqlserver-secret labeled
    
  4. Použijte pomocný obrázek opravou definice vlastního prostředku domény (CRD) pomocí kubectl patch příkazu.

    Pomocný obrázek je definován v spec.configuration.model.auxiliaryImages, jak je znázorněno v následujícím příkladu. Další informace najdete v pomocných obrázcích.

    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
    

    Pomocí následujících příkazů zvyšte restartVersion hodnotu a použijte kubectl patch pomocný obrázek pro doménu CRD pomocí uvedené definice:

    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. Než budete pokračovat, počkejte, než server pro správu a spravované servery zobrazí hodnoty v následujícím výstupním bloku:

    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
    

    Dosažení tohoto stavu může trvat 5 až 10 minut. Následující seznam obsahuje přehled toho, co se děje, když čekáte:

    • Měli byste vidět sample-domain1-introspector první spuštění. Tento software hledá změny vlastního prostředku domény, aby mohl provádět potřebné akce v clusteru Kubernetes.
    • Když se zjistí změny, nástroj introspector domény se zruší a spustí nové pody, aby se změny zaváděly.
    • V dalším kroku by se měl sample-domain1-admin-server pod ukončit a restartovat.
    • Pak byste měli vidět, že dva spravované servery se ukončí a restartují.
    • Pouze když všechny tři pody zobrazují 1/1 Running stav, je v pořádku pokračovat.

Ověření funkčnosti nasazení

Pomocí následujících kroků ověřte funkčnost nasazení zobrazením konzoly pro správu WLS a ukázkové aplikace:

  1. Vložte hodnotu adminConsoleExternalUrl do adresního řádku webového prohlížeče připojeného k internetu. Měla by se zobrazit známá přihlašovací obrazovka konzoly pro správu WLS.

  2. Přihlaste se pomocí uživatelského jména weblogic a hesla, které jste zadali při nasazování služby WLS z webu Azure Portal. Vzpomeňte si, že tato hodnota je wlsAksCluster2022.

  3. V poli Domain Structure (Struktura domény) vyberte Services (Služby).

  4. V části Služby vyberte Zdroje dat.

  5. Na panelu Souhrn zdrojů dat JDBC vyberte Monitorování. Obrazovka by měla vypadat podobně jako v následujícím příkladu. Zjistíte, že stav zdroje dat běží na spravovaných serverech.

    Snímek obrazovky se stavem zdroje dat

  6. V poli Domain Structure (Struktura domény) vyberte Deployments (Nasazení).

  7. V tabulce Nasazení by měl být jeden řádek. Název by měl být stejná jako Application hodnota v souboru appmodel.yaml . Vyberte název.

  8. Na panelu Nastavení vyberte kartu Testování.

  9. Vyberte weblogic-café.

  10. V Nastavení panelu weblogic-café vyberte kartu Testování.

  11. + Rozbalte ikonu vedle weblogic-café. Obrazovka by měla vypadat podobně jako v následujícím příkladu. Konkrétně byste měli vidět hodnoty podobné http://sample-domain1-managed-server1:8001/weblogic-cafe/index.xhtml ve sloupci Testovací bod .

    Snímek obrazovky s testovacími body weblogic-café

    Poznámka:

    Hypertextové odkazy ve sloupci Testovací bod nelze vybrat, protože jsme nekonfigurovali konzolu pro správu s externí adresou URL, na které běží. Tento článek ukazuje konzolu pro správu WLS pouze ukázkou. Při spouštění služby WLS v AKS nepoužívejte konzolu pro správu WLS. Návrh služby WLS nativní pro cloud v AKS vyžaduje, aby byla jakákoli odolná konfigurace reprezentována v počátečních imagích Dockeru nebo použita pro spuštěný cluster AKS pomocí technik CI/CD, jako je aktualizace modelu, jak je popsáno v dokumentaci Oracle.

  12. Seznamte se s context-path hodnotou ukázkové aplikace, kterou jste nasadili. Pokud jste nasadili doporučenou ukázkovou aplikaci, je to .context-pathweblogic-cafe

  13. Vytvořte plně kvalifikovanou adresu URL ukázkové aplikace připojením context-path k hodnotě clusterExternalUrl . Pokud jste nasadili doporučenou ukázkovou aplikaci, měla by plně kvalifikovaná adresa URL vypadat přibližně takto http://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/.

  14. Vložte plně kvalifikovanou adresu URL ve webovém prohlížeči připojeném k internetu. Pokud jste nasadili doporučenou ukázkovou aplikaci, měli byste vidět výsledky podobné následujícímu snímku obrazovky:

    Snímek obrazovky s testovací webovou aplikací

Vyčištění prostředků

Abyste se vyhnuli poplatkům za Azure, měli byste vyčistit nepotřebné prostředky. Pokud už cluster nepotřebujete, použijte příkaz az group delete . Následující příkaz odebere skupinu prostředků, službu kontejneru, registr kontejneru a všechny související prostředky:

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

Další kroky

Další informace o spouštění služby WLS na AKS nebo virtuálních počítačích najdete na těchto odkazech: