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 Kubernetes
  • 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.
    • 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). Tento článek vás nasměruje k instalaci sady Microsoft Build sady OpenJDK 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.

Vytvoření databáze Azure SQL Database

Tato část vytvoří službu Azure SQL Database pomocí ověřování Microsoft Entra s povoleným připojením spravované identity.

Vytvoření skupiny zdrojů

Vytvořte skupinu prostředků pomocí příkazu az group create. 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 abc1228rg. Tento příklad vytvoří skupinu prostředků pojmenovanou abc1228rg eastus v umístění:

export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
    --name ${RESOURCE_GROUP_NAME} \
    --location eastus

Vytvoření databázového serveru a databáze

Vytvořte server pomocí příkazu az sql server create . Tento příklad vytvoří server s názvem myazuresql20130213 správce a heslem správce azureuser . <your-password> nahraďte svým heslem. Další informace najdete v tématu Rychlý start: Vytvoření izolované databáze – Azure SQL Database.

Poznámka:

I když tady používáte uživatelské jméno a heslo, tyto přihlašovací údaje nejsou vystavené mimo databázi. Připojení mezi aplikační vrstvou a databází je zabezpečené pomocí spravovaných identit.

export AZURESQL_SERVER_NAME="myazuresql20130213"
export AZURESQL_ADMIN_USER="azureuser"
export AZURESQL_ADMIN_PASSWORD="<your-password>"
export DATABASE_NAME="mysingledatabase20230213"
az sql server create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $AZURESQL_SERVER_NAME \
    --location westus \
    --admin-user $AZURESQL_ADMIN_USER \
    --admin-password $AZURESQL_ADMIN_PASSWORD

Vytvořte databázi pomocí příkazu az sql db create na úrovni výpočetních prostředků bez serveru.

az sql db create \
    --resource-group $RESOURCE_GROUP_NAME \
    --server $AZURESQL_SERVER_NAME \
    --name $DATABASE_NAME \
    --sample-name AdventureWorksLT \
    --edition GeneralPurpose \
    --compute-model Serverless \
    --family Gen5 \
    --capacity 2

Konfigurace správce Microsoft Entra

Informace o tom, jak Azure SQL Server komunikuje se spravovanými identitami, najdete v tématu Připojení pomocí ověřování Microsoft Entra.

Pomocí následujících kroků nakonfigurujte účet správce Microsoft Entra na Azure SQL Server z webu Azure Portal:

  1. Na webu Azure Portal otevřete instanci myazuresql20130213Azure SQL Serveru.
  2. Vyberte Nastavení a pak vyberte Microsoft Entra ID. Na stránce Microsoft Entra ID vyberte Nastavit správce.
  3. Na stránce Přidat správce vyhledejte uživatele, vyberte uživatele nebo skupinu, které chcete být správcem, a pak vyberte Vybrat.
  4. V horní části stránky Microsoft Entra ID vyberte Uložit. U uživatelů a skupin Microsoft Entra se ID objektu zobrazí vedle názvu správce.
  5. Proces změny správce může trvat několik minut. Nový správce se pak zobrazí v poli Microsoft Entra ID .

Vytvoření spravované identity přiřazené uživatelem

Dále v Azure CLI vytvořte identitu ve vašem předplatném pomocí příkazu az identity create . Tuto spravovanou identitu použijete pro připojení k databázi.

az identity create \
    --resource-group ${RESOURCE_GROUP_NAME} \
    --name myManagedIdentity

Vytvoření databázového uživatele pro spravovanou identitu

Teď se připojte jako uživatel správce Microsoft Entra k databázi Azure SQL z webu Azure Portal a vytvořte uživatele pro vaši spravovanou identitu.

Nejprve vytvořte pravidlo brány firewall pro přístup k serveru Azure SQL z portálu, jak je znázorněno v následujících krocích:

  1. Na webu Azure Portal otevřete instanci myazuresql20130213Azure SQL Serveru.
  2. Vyberte Zabezpečení a pak vyberte Sítě.
  3. V části Pravidla brány firewall vyberte Přidat IP adresu IPV4 klienta.
  4. V části Výjimky vyberte Povolit službám a prostředkům Azure přístup k tomuto serveru.
  5. Zvolte Uložit.

Po vytvoření pravidla brány firewall můžete získat přístup k serveru Azure SQL z portálu. Pomocí následujícího postupu vytvořte uživatele databáze:

  1. Vyberte Nastavení a pak vyberte databáze SQL. Vyberte možnost mysingledatabase20230213.

  2. Vyberte Editor dotazů. Na stránce Vítejte ve službě SQL Database Editor Power Query v části Ověřování služby Active Directory vyhledejte zprávu, jako Logged in as user@contoso.comje .

  3. Vyberte Pokračovat jako user@contoso.com, kde user je název účtu správce AD.

  4. Po přihlášení spusťte v editoru Query 1 následující příkazy a vytvořte uživatele databáze pro spravovanou identitu myManagedIdentity.

    CREATE USER "myManagedIdentity" FROM EXTERNAL PROVIDER
    ALTER ROLE db_datareader ADD MEMBER "myManagedIdentity";
    ALTER ROLE db_datawriter ADD MEMBER "myManagedIdentity";
    ALTER ROLE db_ddladmin ADD MEMBER "myManagedIdentity";
    GO
    
  5. V editoru Dotazu 1 vyberte Spustit a spusťte příkazy SQL.

  6. Pokud se příkazy úspěšně dokončily, můžete najít zprávu.Query succeeded: Affected rows: 0

Pomocí následujícího příkazu získáte připojovací řetězec, které použijete v další části:

export CONNECTION_STRING="jdbc:sqlserver://${AZURESQL_SERVER_NAME}.database.windows.net:1433;database=${DATABASE_NAME};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
echo ${CONNECTION_STRING}

Vytvoření schématu pro ukázkovou aplikaci

Vyberte Nový dotaz a pak v editoru dotazů 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.

Můžete pokračovat nasazením služby WLS v nabídce AKS.

Nasazení serveru WebLogic v AKS

Pomocí následujících kroků vyhledejte server WebLogic v nabídce AKS a vyplňte 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ší.

Pomocí následujících kroků spusťte 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. Výběrem možnosti Další zobrazíte podokno DNS.

  7. Výběrem možnosti Další zobrazíte podokno Databáze.

Ke konfiguraci připojení k databázi pomocí spravované identity použijte následující postup:

  1. V případě připojení k databázi vyberte Ano.
  2. V části Nastavení připojení v části Zvolit typ databáze otevřete rozevírací nabídku a pak vyberte Microsoft SQL Server (s podporou pro připojení bez hesla).
  3. Jako název JNDI zadejte jdbc/WebLogicCafeDB.
  4. Jako připojovací řetězec zdroje dat zadejte připojovací řetězec, které jste získali v poslední části.
  5. Vyberte Použít připojení zdroje dat bez hesla.
  6. U spravované identity přiřazené uživatelem vyberte spravovanou identitu, kterou jste vytvořili v předchozím kroku. V tomto příkladu je myManagedIdentityjeho název .
  7. Vyberte Přidat.

Část Nastavení připojení by měla vypadat jako na následujícím snímku obrazovky:

Snímek obrazovky webu Azure Portal s kartou Databáze na stránce Vytvořit Oracle WebLogic Server na stránce Azure Kubernetes Service

K dokončení nasazení použijte následující kroky:

  1. 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 .
  2. Vyberte Vytvořit.
  3. 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.

Poznámka:

Pokud vaše organizace vyžaduje nasazení úlohy v rámci podnikové virtuální sítě bez povolených veřejných IP adres, můžete zvolit interní službu Load Balanceru. Ke konfiguraci interní služby Load Balanceru použijte následující kroky na kartě Vyrovnávání zatížení:

  1. U možností vyrovnávání zatížení vyberte Službu Load Balanceru úrovně Standard.

  2. Vyberte Použít interní nástroj pro vyrovnávání zatížení.

  3. Do tabulky zadejte následující údaje:

    Předpona názvu služby Cíl Port
    wls-admin-internal admin-server 7001
    wls-cluster-internal cluster-1 8001

Karta Vyrovnávání zatížení by měla vypadat jako na následujícím snímku obrazovky:

Snímek obrazovky webu Azure Portal zobrazující kartu Vyrovnávání zatížení na stránce Vytvořit Oracle WebLogic Server na stránce Azure Kubernetes Service

Po nasazení najdete přístupové adresy URL serveru pro správu a clusteru z výstupu s popiskem adminConsoleExternalUrl a clusterExternalUrl.

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.

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í služby Azure Container Registry

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. Ke konfiguraci připojení ke zdroji dat použijte následující postup.

    1. Pomocí následujícího postupu stáhněte a nainstalujte ovladač Microsoft SQL Server JDBC a rozšíření identit Azure, které umožňuje připojení k databázím pomocí spravované identity Azure.

      1. Ke stažení a instalaci ovladače wlsdeploy/externalJDBCLibrariesMicrosoft SQL Server JDBC použijte následující příkazy:

        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
        
      2. Pomocí následujících příkazů nainstalujte rozšíření Azure Identity do wlsdeploy/classpathLibraries:

        curl -LO https://github.com/oracle/weblogic-azure/raw/refs/heads/main/weblogic-azure-aks/src/main/resources/azure-identity-extensions.xml
        
        mvn dependency:copy-dependencies -f azure-identity-extensions.xml
        
        mkdir -p ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/azureLibraries
        mkdir ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson
        # fix JARs conflict issue in GA images, put jackson libraries to PRE_CLASSPATH to upgrade the existing libs.
        mv target/dependency/jackson-annotations-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/
        mv target/dependency/jackson-core-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/
        mv target/dependency/jackson-databind-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/
        mv target/dependency/jackson-dataformat-xml-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/
        # Thoes jars will be appended to CLASSPATH
        mv target/dependency/*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/azureLibraries/
        
      3. K vyčištění prostředků použijte následující příkazy:

        rm target -f -r
        rm azure-identity-extensions.xml
        
    2. 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
      
    3. Exportujte model připojení k databázi a uložte ho do ${BASE_DIR}/mystaging/models/dbmodel.yaml. Následující kroky extrahuje konfigurační model databáze z objektu ConfigMap sample-domain1-wdt-config-map. Název se řídí formátem <domain-uid>-wdt-config-map, kde <domain-uid> se nastavuje během nasazení nabídky. Pokud jste upravili výchozí hodnotu, nahraďte ji vlastním UID domény.

      1. Datový klíč je db-secret-name.yaml>.< K načtení názvu tajného klíče databáze použijte následující příkaz:

        export WLS_DOMAIN_UID=sample-domain1
        export WLS_DOMAIN_NS=${WLS_DOMAIN_UID}-ns
        export DB_K8S_SECRET_NAME=$(kubectl get secret -n ${WLS_DOMAIN_NS} | grep "ds-secret" | awk '{print $1}')
        
      2. Dále extrahujte model databáze pomocí tohoto příkazu:

        kubectl get configmap sample-domain1-wdt-config-map -n ${WLS_DOMAIN_NS} -o=jsonpath="{['data']['${DB_K8S_SECRET_NAME}\.yaml']}" >${BASE_DIR}/mystaging/models/dbmodel.yaml
        
      3. Nakonec pomocí následujícího příkazu ověřte obsah dbmodel.yaml.

        cat ${BASE_DIR}/mystaging/models/dbmodel.yaml
        

        Výstup tohoto příkazu by měl vypadat podobně jako následující struktura:

        # 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.
        
        resources:
          JDBCSystemResource:
            jdbc/WebLogicCafeDB:
              Target: 'cluster-1'
              JdbcResource:
              JDBCDataSourceParams:
                 JNDIName: [
                    jdbc/WebLogicCafeDB
                 ]
                 GlobalTransactionsProtocol: OnePhaseCommit
              JDBCDriverParams:
                 DriverName: com.microsoft.sqlserver.jdbc.SQLServerDriver
                 URL: '@@SECRET:ds-secret-sqlserver-1727147748:url@@'
                 PasswordEncrypted: '@@SECRET:ds-secret-sqlserver-1727147748:password@@'
                 Properties:
                    user:
                    Value: '@@SECRET:ds-secret-sqlserver-1727147748:user@@'
              JDBCConnectionPoolParams:
                    TestTableName: SQL SELECT 1
                    TestConnectionsOnReserve: true
        
  6. Pomocí následujících příkazů vytvořte archivní soubor a pak odeberte složku wlsdeploy , kterou už nepotřebujete:

    cd ${BASE_DIR}/mystaging/models
    zip -r archive.zip wlsdeploy
    
    rm -f -r wlsdeploy
    
  7. 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
    
  8. Pomocí následujícího příkazu vyčistíte instalační program WDT:

    rm weblogic-deploy.zip
    
  9. K vytvoření souboru Dockeru použijte následující příkazy:

    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
    COPY --chown=\$USER:\$GROUP ./ \${AUXILIARY_IMAGE_PATH}/
    USER \$USER
    EOF
    
  10. az acr build Spusťte příkaz pomocí ${BASE_DIR}/mystaging/Dockerfile, jak je znázorněno v následujícím příkladu:

    export ACR_NAME=<value-from-clipboard>
    export IMAGE="wlsaks-auxiliary-image:1.0"
    
  11. Pomocí následujících příkazů pečlivě zkontrolujte pracovní soubory:

    cd ${BASE_DIR}/mystaging
    find -maxdepth 2 -type f -print
    

    Tyto příkazy vytvářejí výstup podobný následujícímu příkladu:

    ./models/model.properties
    ./models/model.yaml
    ./models/appmodel.yaml
    ./models/dbmodel.yaml
    ./models/archive.zip
    ./Dockerfile
    ./weblogic-deploy/VERSION.txt
    ./weblogic-deploy/LICENSE.txt
    
  12. Sestavte image s obrázkem az acr build, jak je znázorněno v následujícím příkladu:

    az acr build -t ${IMAGE} --build-arg AUXILIARY_IMAGE_PATH=/auxiliary -r ${ACR_NAME} --platform linux/amd64 .
    

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

    ...
    Step 1/9 : FROM busybox
    latest: Pulling from library/busybox
    Digest: sha256:9ae97d36d26566ff84e8893c64a6dc4fe8ca6d1144bf5b87b2b85a32def253c7
    Status: Image is up to date for busybox:latest
    ---> 65ad0d468eb1
    Step 2/9 : ARG AUXILIARY_IMAGE_PATH=/auxiliary
    ---> Running in 1f8f4e82ccb6
    Removing intermediate container 1f8f4e82ccb6
    ---> 947fde618be9
    Step 3/9 : ARG USER=oracle
    ---> Running in dda021591e41
    Removing intermediate container dda021591e41
    ---> f43d84be4517
    Step 4/9 : ARG USERID=1000
    ---> Running in cac4df6dfd13
    Removing intermediate container cac4df6dfd13
    ---> e5513f426c74
    Step 5/9 : ARG GROUP=root
    ---> Running in 8fec1763270c
    Removing intermediate container 8fec1763270c
    ---> 9ef233dbe279
    Step 6/9 : ENV AUXILIARY_IMAGE_PATH=${AUXILIARY_IMAGE_PATH}
    ---> Running in b7754f58157a
    Removing intermediate container b7754f58157a
    ---> 4a26a97eb572
    Step 7/9 : RUN adduser -D -u ${USERID} -G $GROUP $USER
    ---> Running in b6c1f1a81af1
    Removing intermediate container b6c1f1a81af1
    ---> 97d3e5ad7540
    Step 8/9 : COPY --chown=$USER:$GROUP ./ ${AUXILIARY_IMAGE_PATH}/
    ---> 21088171876f
    Step 9/9 : USER $USER
    ---> Running in 825e0abc9f6a
    Removing intermediate container 825e0abc9f6a
    ---> b81d6430fcda
    Successfully built b81d6430fcda
    Successfully tagged wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0
    2024/08/28 03:06:19 Successfully executed container: build
    2024/08/28 03:06:19 Executing step ID: push. Timeout(sec): 3600, Working directory: '', Network: ''
    2024/08/28 03:06:19 Pushing image: wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0, attempt 1
    The push refers to repository [wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image]
    ee589b3cda86: Preparing
    c1fd1adab3b9: Preparing
    d51af96cf93e: Preparing
    c1fd1adab3b9: Pushed
    d51af96cf93e: Pushed
    ee589b3cda86: Pushed
    1.0: digest: sha256:c813eb75576eb07a179c3cb4e70106ca7dd280f933ab33a2f6858de673b12eac size: 946
    2024/08/28 03:06:21 Successfully pushed image: wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0
    2024/08/28 03:06:21 Step ID: build marked as successful (elapsed time in seconds: 8.780235)
    2024/08/28 03:06:21 Populating digests for step ID: build...
    2024/08/28 03:06:22 Successfully populated digests for step ID: build
    2024/08/28 03:06:22 Step ID: push marked as successful (elapsed time in seconds: 1.980158)
    2024/08/28 03:06:22 The following dependencies were found:
    2024/08/28 03:06:22
    - image:
       registry: wlsaksacru6jyly7kztoqu.azurecr.io
       repository: wlsaks-auxiliary-image
       tag: "1.0"
       digest: sha256:c813eb75576eb07a179c3cb4e70106ca7dd280f933ab33a2f6858de673b12eac
    runtime-dependency:
       registry: registry.hub.docker.com
       repository: library/busybox
       tag: latest
       digest: sha256:9ae97d36d26566ff84e8893c64a6dc4fe8ca6d1144bf5b87b2b85a32def253c7
    git: {}
    
    Run ID: ca1 was successful after 14s
    

    Image se po úspěšném sestavení odešle do ACR.

  13. 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 ${IMAGE}
    

    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. Pomocí následujícího postupu použijte pomocný obrázek na cluster Serveru WebLogic.

  1. 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))
    
    export ACR_LOGIN_SERVER=$(az acr show --name ${ACR_NAME} --query "loginServer" --output tsv)
    
    cat <<EOF >patch-file.json
    [
      {
        "op": "replace",
        "path": "/spec/restartVersion",
        "value": "${VERSION}"
      },
      {
        "op": "add",
        "path": "/spec/configuration/model/auxiliaryImages",
        "value": [{"image": "$ACR_LOGIN_SERVER/$IMAGE", "imagePullPolicy": "IfNotPresent", "sourceModelHome": "/auxiliary/models", "sourceWDTInstallHome": "/auxiliary/weblogic-deploy"}]
      },
      {
       "op": "remove",
       "path": "/spec/configuration/model/configMap"
      }
    ]
    EOF
    
    kubectl -n ${WLS_DOMAIN_NS} patch domain ${WLS_DOMAIN_UID} \
        --type=json \
        --patch-file patch-file.json
    
  2. Vzhledem k tomu, že připojení k databázi je nakonfigurováno v pomocné imagi, spuštěním následujícího příkazu odeberte Objekt ConfigMap:

    kubectl delete configmap sample-domain1-wdt-config-map -n ${WLS_DOMAIN_NS}
    

Než budete pokračovat, počkejte, až následující příkaz vygeneruje následující výstup pro server pro správu a spravované servery:

kubectl get pod -n ${WLS_DOMAIN_NS} -w
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 . Vyberte 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.