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í, jestlizip/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?
- Rozhraní příkazového řádku Azure. Slouží
Nasazení serveru WebLogic v AKS
Následující kroky ukazují, jak najít WebLogic Server v nabídce AKS a vyplnit 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ší.
Následující kroky ukazují, jak spustit 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.
Ponechte výchozí hodnoty pro jiná pole.
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.
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.
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.
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.
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:
Otevřete podokno Editoru dotazů podle kroků v části Dotazování databáze rychlého startu: Vytvoření izolované databáze – Azure SQL Database.
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:
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
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
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-secret
kó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
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
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 odeberte instalační program WDT:
rm weblogic-deploy.zip
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
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
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
Pomocí následujících kroků nasdílíte pomocnou image do služby Azure Container Registry:
Otevřete Azure Portal a přejděte do skupiny prostředků, kterou jste zřídili v části Deploy WebLogic Server on AKS .
V seznamu prostředků vyberte prostředek typu Registr kontejneru.
Najeďte myší na hodnotu vedle přihlašovacího serveru a vyberte ikonu kopírování vedle textu.
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>
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
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.
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
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
Navštivte prostředek databáze SQL na webu Azure Portal.
V navigačním podokně v části Nastavení vyberte Připojovací řetězce.
Vyberte kartu JDBC.
Výběrem ikony kopírování zkopírujte připojovací řetězec do schránky.
Pro
DB_CONNECTION_STRING
použití celého připojovací řetězec, ale nahraďte zástupný symbol{your_password_here}
heslem databáze.Pro
DB_USER
použití části připojovací řetězec zazureuser
až do, ale ne včetně;password={your_password_here}
.Pro
DB_PASSWORD
, použijte hodnotu, kterou jste zadali při vytváření databáze.
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_STRING
DB_USER
aDB_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ýchDB_
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
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)) 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
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.
- Měli byste vidět
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 . Klikněte na 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