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í, jestlizip/unzip
funguje.
- Rozhraní příkazového řádku Azure. Slouží
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:
- Na webu Azure Portal otevřete instanci
myazuresql20130213
Azure SQL Serveru. - Vyberte Nastavení a pak vyberte Microsoft Entra ID. Na stránce Microsoft Entra ID vyberte Nastavit správce.
- 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.
- 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.
- 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:
- Na webu Azure Portal otevřete instanci
myazuresql20130213
Azure SQL Serveru. - Vyberte Zabezpečení a pak vyberte Sítě.
- V části Pravidla brány firewall vyberte Přidat IP adresu IPV4 klienta.
- V části Výjimky vyberte Povolit službám a prostředkům Azure přístup k tomuto serveru.
- 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:
Vyberte Nastavení a pak vyberte databáze SQL. Vyberte možnost
mysingledatabase20230213
.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.com
je .Vyberte Pokračovat jako user@contoso.com, kde
user
je název účtu správce AD.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
V editoru Dotazu 1 vyberte Spustit a spusťte příkazy SQL.
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 :
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.
Můžete také přejít přímo na WebLogic Server v nabídce AKS .
Na stránce nabídky vyberte Vytvořit.
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é.
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
.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.
V části Přihlašovací údaje pro WebLogic ponechte výchozí hodnotu pro uživatelské jméno pro správce WebLogic.
wlsAksCluster2022
Zadejte heslo pro správce WebLogic. Pro pole pro potvrzení a heslo pro šifrování modelu WebLogic použijte stejnou hodnotu.Vyberte Další.
Pomocí následujících kroků spusťte proces nasazení:
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ů.
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.
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.
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.
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?
Výběrem možnosti Další zobrazíte podokno TLS/SSL.
Výběrem možnosti Další zobrazíte podokno vyrovnávání zatížení.
Vedle možností vyrovnávání zatížení vyberte kontroler příchozího přenosu dat služby Application Gateway.
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.
V části Vytvořit příchozí přenos dat pro konzolu pro správu vyberte Ano.
Výběrem možnosti Další zobrazíte podokno DNS.
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:
- V případě připojení k databázi vyberte Ano.
- 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).
- Jako název JNDI zadejte jdbc/WebLogicCafeDB.
- Jako připojovací řetězec zdroje dat zadejte připojovací řetězec, které jste získali v poslední části.
- Vyberte Použít připojení zdroje dat bez hesla.
- 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
myManagedIdentity
jeho název . - Vyberte Přidat.
Část Nastavení připojení by měla vypadat jako na následujícím snímku obrazovky:
K dokončení nasazení použijte následující kroky:
- 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 .
- Vyberte Vytvořit.
- 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í:
U možností vyrovnávání zatížení vyberte Službu Load Balanceru úrovně Standard.
Vyberte Použít interní nástroj pro vyrovnávání zatížení.
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:
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.
V rohu libovolné stránky webu Azure Portal vyberte hamburgerovou nabídku a vyberte Skupiny prostředků.
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ů.
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.
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.
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.
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.
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.
ShellCmdtoOutputWlsImageModelYaml je řetězec base64 modelu WDT, který se používá k sestavení image kontejneru. Tuto hodnotu si uložte na později.
ShellCmdtoOutputWlsImageProperties je řetězec base64 vlastností modelu WDT, který se používá k sestavení image kontejneru. Tuto hodnotu si uložte na později.
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:
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
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"
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
Pomocí následujícího postupu vytvořte soubor modelu aplikace.
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
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
Ke konfiguraci připojení ke zdroji dat použijte následující postup.
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.
Ke stažení a instalaci ovladače
wlsdeploy/externalJDBCLibraries
Microsoft 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
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/
K vyčištění prostředků použijte následující příkazy:
rm target -f -r rm azure-identity-extensions.xml
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
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.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}')
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
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
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
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
Pomocí následujícího příkazu vyčistíte instalační program WDT:
rm weblogic-deploy.zip
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
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"
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
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.
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.
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žijtekubectl 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
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:
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.
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 jewlsAksCluster2022
.V poli Domain Structure (Struktura domény) vyberte Services (Služby).
V části Služby vyberte Zdroje dat.
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.
V poli Domain Structure (Struktura domény) vyberte Deployments (Nasazení).
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.Vyberte kartu Testování.
Vyberte weblogic-café.
Na panelu Nastavení weblogic-café vyberte kartu Testování .
+ 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 .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.
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
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ě taktohttp://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/
.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:
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.
Azure Kubernetes Service