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 aplikaci v Javě na Serveru Oracle WebLogic (WLS).
  • Vytvořte cluster Serveru WebLogic v AKS pomocí nabídky Azure Marketplace.
  • Sestavte image Dockeru aplikace, která obsahuje modely nástrojů WDT (WebLogic Deploy Tooling).
  • Nasaďte kontejnerizovanou aplikaci do clusteru Serveru WebLogic v AKS s připojením k Microsoft Azure SQL.

Tento článek využívá nabídku Azure Marketplace pro Server WebLogic 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 Serveru WebLogic bez aplikace

Potom článek představuje vytvoření image pro aktualizaci clusteru Serveru WebLogic. Image poskytuje modely aplikací a WDT.

Pokud dáváte přednost méně automatizovanému přístupu k nasazení WebLogic v AKS, přečtěte si podrobné pokyny uvedené v oficiální dokumentaci od Oracle pro Azure Kubernetes Service.

Pokud chcete poskytnout zpětnou vazbu nebo úzce spolupracovat na scénářích migrace s technickým týmem, který vyvíjí WebLogic na řešeních AKS, vyplňte tento krátký průzkum o migraci WebLogic a uveďte své kontaktní informace. Tým programových manažerů, architektů a inženýrů se s vámi okamžitě spojí a zahájí úzkou spolupráci.

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čení tohoto článku má v aktuálním předplatném roli Vlastník , nebo role Přispěvatel a Správce uživatelských přístupů 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 WebLogic Server.
    • 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.
    • Přijměte licenční smlouvu.

    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 Důležité aktualizace oprav, výstrahy zabezpečení a bulletiny od Společnosti Oracle.

  • 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 Development Kit (JDK) kompatibilní s verzí serveru WebLogic, kterou chcete spustit. Článek vás nasměruje k instalaci verze serveru WebLogic, která používá sadu JDK 11. 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.

    Poznámka:

    Všechny kroky tohoto článku můžete provést v Azure Cloud Shellu s výjimkou těch, které se týkají Dockeru. Další informace o Azure Cloud Shellu najdete v tématu Co je Azure Cloud Shell?

Nasazení serveru WebLogic v AKS

Následující kroky ukazují, jak najít WebLogic Server 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í Server WebLogic 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 pro předplatné.

    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 Přihlašovací údaje pro WebLogic ponechte výchozí hodnotu pro uživatelské jméno pro správce WebLogic.

  7. wlsAksCluster2022 Zadejte heslo pro správce WebLogic. Pro pole pro potvrzení a heslo pro šifrování modelu WebLogic použijte stejnou hodnotu.

  8. 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. Nezapomeňte si všimnout kroků v informačním poli začínajícím 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 výběr typu 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 verzi Serveru WebLogic, sady JDK a operačního systému.

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

Následující kroky zajistí, aby se konzola pro správu serveru WebLogic a ukázková aplikace zveřejnily veřejnému internetu s integrovaným doplňkem 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?

  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.

    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

  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 pro správu 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 serveru WebLogic 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 na serveru WebLogic 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ý se používá k sestavení image kontejneru. Tuto hodnotu si uložte na později.

  9. ShellCmdtoOutputWlsImageProperties je řetězec base64 vlastností modelu WDT, který se používá k sestavení image kontejneru. Tuto hodnotu si uložte na později.

  10. Hodnota shellCmdtoConnectAks je příkaz Azure CLI pro připojení k tomuto konkrétnímu clusteru AKS.

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í 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 možností Možnosti připojení a nastavení 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;.

Pak pomocí následujícího postupu vytvořte schéma ukázkové aplikace:

  1. Otevřete podokno Editoru dotazů podle kroků v části Dotazování databáze rychlého startu: Vytvoření izolované databáze – Azure SQL Database.

  2. 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: 1. 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 Serveru WebLogic. 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í WebLogic Serveru 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 Serveru WebLogic prostřednictvím modelu v imagi. Cluster Serveru WebLogic v současné době nemá nasazenou žádnou aplikaci.

Tato část aktualizuje cluster Serveru WebLogic 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 (Java Database Connectivity)
  • 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 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 být teď 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. K ověření obsahu obrázku použijte následující příkaz:

    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 Deploy WebLogic Server on 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 na cluster Serveru WebLogic 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řipojte se ke clusteru AKS zkopírováním hodnoty shellCmdtoConnectAks , 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 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řipojovací ř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. Chcete-li zabránit, aby prostředí zasahovalo do nich, uzavřete hodnotu proměnných DB_ do jednoduchých uvozovek.

    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.

    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ího postupu ověřte funkčnost nasazení zobrazením konzoly pro správu serveru WebLogic 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 serveru WebLogic.

  2. Přihlaste se pomocí uživatelského jména weblogic a hesla, které jste zadali při nasazování serveru WebLogic 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 . Klikněte na název.

  8. Vyberte kartu Testování.

  9. Vyberte weblogic-café.

  10. Na panelu Nastavení 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 serveru WebLogic pouze ukázkou. Při spouštění serveru WebLogic v AKS nepoužívejte konzolu pro správu serveru WebLogic. Návrh serveru WebLogic v AKS nativní pro cloud 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-path weblogic-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, databázi 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 spuštění Serveru WebLogic na AKS nebo virtuálních počítačích najdete na těchto odkazech:

Další informace o nabídkách Oracle WebLogic na Azure Marketplace najdete v tématu Oracle WebLogic Server v Azure. Všechny tyto nabídky jsou přineste si vlastní licenci. Předpokládají, že už máte příslušné licence s Oraclem a máte správnou licenci ke spouštění nabídek v Azure.