Wdrażanie aplikacji Java przy użyciu serwera WebLogic w klastrze usługi Azure Kubernetes Service (AKS)
W tym artykule pokazano, jak:
- Uruchom środowisko Java, Java EE lub Jakarta EE na serwerze Oracle WebLogic Server (WLS).
- Utwórz klaster WLS przy użyciu oferty witryny Azure Marketplace.
- Skompiluj obraz platformy Docker aplikacji, aby służyć jako obraz pomocniczy w celu udostępnienia modeli i aplikacji webLogic Deploy Tooling (WDT).
- Wdróż konteneryzowaną aplikację w istniejącym klastrze WLS w usłudze AKS z połączeniem z usługą Microsoft Azure SQL.
W tym artykule do przyspieszenia podróży do usługi AKS używana jest oferta witryny Azure Marketplace dla usług WLS. Oferta automatycznie aprowizuje kilka zasobów platformy Azure, w tym następujące zasoby:
- Wystąpienie usługi Azure Container Registry
- Klaster usługi AKS
- Wystąpienie kontrolera ruchu przychodzącego bramy aplikacja systemu Azure (AGIC)
- The WebLogic Operator
- Obraz kontenera, w tym środowisko uruchomieniowe WebLogic
- Klaster WLS bez aplikacji
Następnie w tym artykule przedstawiono tworzenie obrazu pomocniczego krok po kroku w celu zaktualizowania istniejącego klastra WLS. Obraz pomocniczy udostępnia modele aplikacji i WDT.
Aby uzyskać pełną automatyzację, możesz wybrać aplikację i skonfigurować połączenie źródła danych z witryny Azure Portal przed wdrożeniem oferty. Aby wyświetlić ofertę, odwiedź witrynę Azure Portal.
Aby uzyskać szczegółowe wskazówki dotyczące konfigurowania serwera WebLogic w usłudze Azure Kubernetes Service, zobacz oficjalną dokumentację firmy Oracle w usłudze Azure Kubernetes Service.
Wymagania wstępne
- Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
- Upewnij się, że tożsamość platformy Azure używana do logowania się i ukończenie tego artykułu ma rolę Właściciel w bieżącej subskrypcji lub współautora i dostępu użytkowników Administracja istrator ról w bieżącej subskrypcji. Aby zapoznać się z omówieniem ról platformy Azure, zobacz Co to jest kontrola dostępu oparta na rolach platformy Azure (Azure RBAC)? Aby uzyskać szczegółowe informacje na temat określonych ról wymaganych przez usługę WLS w usłudze AKS, zobacz Role wbudowane platformy Azure.
- Poświadczenia dla konta logowania jednokrotnego (SSO) oracle. Aby je utworzyć, zobacz Tworzenie konta Oracle.
- Zaakceptuj postanowienia licencyjne dotyczące usługi WLS.
- Odwiedź usługę Oracle Container Registry i zaloguj się.
- Jeśli masz uprawnienie do pomocy technicznej, wybierz pozycję Oprogramowanie pośredniczące, a następnie wyszukaj i wybierz pozycję weblogic_cpu.
- Jeśli nie masz uprawnień do pomocy technicznej w programie Oracle, wybierz pozycję Oprogramowanie pośredniczące, a następnie wyszukaj i wybierz pozycję weblogic.
Uwaga
Uzyskaj uprawnienie do pomocy technicznej od firmy Oracle przed przejściem do środowiska produkcyjnego. Niepowodzenie w tym celu powoduje uruchomienie niezabezpieczonych obrazów, które nie są poprawiane pod kątem krytycznych wad zabezpieczeń. Aby uzyskać więcej informacji na temat aktualizacji poprawek krytycznych firmy Oracle, zobacz Krytyczne poprawki Aktualizacje, Alerty zabezpieczeń i biuletyny firmy Oracle.
- Zaakceptuj umowę licencyjną.
- Przygotuj maszynę lokalną z zainstalowanym systemem operacyjnym przypominającym system Unix (na przykład Ubuntu, Azure Linux, macOS, Podsystem Windows dla systemu Linux).
- Interfejs wiersza polecenia platformy Azure. Użyj polecenia
az --version
, aby sprawdzić, czy polecenie az works. Ten dokument został przetestowany w wersji 2.55.1. - Platforma Docker Ten dokument został przetestowany przy użyciu platformy Docker w wersji 20.10.7. Użyj polecenia
docker info
, aby sprawdzić, czy demon platformy Docker jest uruchomiony. - kubectl. Użyj polecenia
kubectl version
, aby sprawdzić, czy narzędzie kubectl działa. Ten dokument został przetestowany z wersją 1.21.2. - Zestaw Java JDK zgodny z wersją systemu WLS, którą zamierzasz uruchomić. Ten artykuł kieruje Cię do zainstalowania wersji systemu WLS korzystającej z zestawu JDK 11. Platforma Azure zaleca korzystanie z pakietu Microsoft Build zestawu OpenJDK. Upewnij się, że
JAVA_HOME
zmienna środowiskowa jest poprawnie ustawiona w powłokach, w których uruchamiasz polecenia. - Maven 3.5.0 lub nowszy.
- Upewnij się, że masz zainstalowane narzędzie zip/unzip. Użyj polecenia
zip/unzip -v
, aby sprawdzić, czyzip/unzip
działa.
- Interfejs wiersza polecenia platformy Azure. Użyj polecenia
- Wszystkie kroki opisane w tym artykule, z wyjątkiem tych, które dotyczą platformy Docker, można również wykonać w usłudze Azure Cloud Shell. Aby dowiedzieć się więcej o usłudze Azure Cloud Shell, zobacz Co to jest usługa Azure Cloud Shell?
Wdrażanie zabezpieczeń WLS w usłudze AKS
Kroki opisane w tej sekcji umożliwiają wdrożenie zabezpieczeń WLS w usłudze AKS w najprostszy możliwy sposób. Usługa WLS w usłudze AKS oferuje szeroki i szeroki wybór integracji platformy Azure. Aby uzyskać więcej informacji, zobacz Co to są rozwiązania dotyczące uruchamiania serwera Oracle WebLogic w usłudze Azure Kubernetes Service?
W poniższych krokach pokazano, jak znaleźć ofertę WLS w usłudze AKS i wypełnić okienko Podstawy .
Na pasku wyszukiwania w górnej części witryny Azure Portal wprowadź ciąg weblogic. W wynikach wyszukiwania sugerowanych automatycznie w sekcji Marketplace wybierz pozycję Serwer WebLogic w usłudze AKS.
Możesz również przejść bezpośrednio do serwera WebLogic w ofercie usługi AKS .
Na stronie oferty wybierz pozycję Utwórz.
W okienku Podstawowe upewnij się, że wartość wyświetlana w polu Subskrypcja jest taka sama, do której zalogowano się na platformie Azure. Upewnij się, że masz role wymienione w sekcji wymagań wstępnych.
Należy wdrożyć ofertę w pustej grupie zasobów. W polu Grupa zasobów wybierz pozycję Utwórz nową, a następnie wypełnij wartość dla grupy zasobów. Ponieważ grupy zasobów muszą być unikatowe w ramach subskrypcji, wybierz unikatową nazwę. Łatwym sposobem na używanie unikatowych nazw jest użycie kombinacji inicjałów, dzisiejszej daty i identyfikatora — na przykład
ejb0723wls
.W obszarze Szczegóły wystąpienia wybierz region wdrożenia. Aby uzyskać listę regionów świadczenia usługi Azure, w których usługa AKS jest dostępna, zobacz Dostępność regionów usługi AKS.
W obszarze Credentials for WebLogic (Poświadczenia dla serwera WebLogic) pozostaw wartość domyślną pola Username for WebLogic Administracja istrator.
wlsAksCluster2022
Wprowadź hasło dla Administracja istratora WebLogic. Użyj tej samej wartości dla pól potwierdzenia i hasła dla pól szyfrowania modelu WebLogic.Przewiń do dołu okienka Podstawy i zwróć uwagę na przydatne linki do dokumentacji, pomocy technicznej społeczności i sposobu zgłaszania problemów.
Wybierz Dalej.
W poniższych krokach pokazano, jak rozpocząć proces wdrażania.
Przewiń do sekcji z etykietą Provide an Oracle Single Sign-On (SSO) account (Zapewnianie konta logowania jednokrotnego Oracle). Wypełnij poświadczenia logowania jednokrotnego Oracle z warunków wstępnych.
Wykonaj kroki opisane w polu informacyjnym, zaczynając od pozycji Przed przejściem do przodu, musisz zaakceptować standardowe warunki i ograniczenia oracle.
W zależności od tego, czy konto logowania jednokrotnego Oracle ma uprawnienie do obsługi oracle, wybierz odpowiednią opcję dla pozycji Wybierz typ obrazów serwera WebLogic. Jeśli konto ma uprawnienie do pomocy technicznej, wybierz pozycję Patched WebLogic Server Images (Poprawione obrazy serwera WebLogic). W przeciwnym razie wybierz pozycję Ogólne obrazy serwera WebLogic.
Pozostaw wartość w polu Wybierz żądaną kombinację serwera WebLogic... w wartości domyślnej. Masz szeroką gamę opcji dla systemów WLS, JDK i OS.
W sekcji Aplikacja obok pozycji Wdróż aplikację? wybierz pozycję Nie.
Poniższe kroki sprawiają, że konsola administracyjna usługi WLS i przykładowa aplikacja są uwidocznione w publicznym Internecie z wbudowanym dodatkiem ruchu przychodzącego usługi Application Gateway. Aby uzyskać więcej informacji, zobacz Co to jest kontroler ruchu przychodzącego usługi Application Gateway?
Wybierz pozycję Dalej , aby wyświetlić okienko TLS/SSL .
Wybierz pozycję Dalej , aby wyświetlić okienko Równoważenie obciążenia.
Obok pozycji Opcje równoważenia obciążenia wybierz pozycję Kontroler ruchu przychodzącego usługi Application Gateway.
W obszarze Kontroler ruchu przychodzącego usługi Application Gateway powinny zostać wyświetlone wszystkie pola wstępnie wypełnione wartościami domyślnymi dla sieci wirtualnej i podsieci. Pozostaw wartości domyślne.
W obszarze Create ingress for Administracja istration Console (Utwórz ruch przychodzący dla konsoli Administracja istration) wybierz pozycję Tak.
Pozostaw wartości domyślne dla innych pól.
Wybierz pozycję Przejrzyj i utwórz. Upewnij się, że walidacja nie zakończy się niepowodzeniem. Jeśli zakończy się to niepowodzeniem, rozwiąż wszelkie problemy z walidacją, a następnie ponownie wybierz pozycję Przejrzyj i utwórz .
Wybierz pozycję Utwórz.
Śledzenie postępu wdrażania na stronie Wdrażanie jest w toku .
W zależności od warunków sieciowych i innych działań w wybranym regionie wdrożenie może potrwać do 50 minut.
Możesz wykonać kroki opisane w sekcji Tworzenie bazy danych Azure SQL Database podczas oczekiwania. Wróć do tej sekcji po zakończeniu tworzenia bazy danych.
Sprawdzanie danych wyjściowych wdrożenia
Wykonaj kroki opisane w tej sekcji, aby sprawdzić, czy wdrożenie zakończyło się pomyślnie.
Jeśli nastąpi przejście z dala od strony Wdrożenie jest w toku , poniższe kroki pokazują, jak wrócić do tej strony. Jeśli nadal znajdujesz się na stronie z wyświetlonym komunikatem Wdrożenie zostało ukończone, możesz przejść do kroku 5 po następnym zrzucie ekranu.
W rogu dowolnej strony witryny Azure Portal wybierz menu typu hamburger i wybierz pozycję Grupy zasobów.
W polu z tekstem Filtr dla dowolnego pola wprowadź kilka pierwszych znaków utworzonej wcześniej grupy zasobów. Jeśli wykonano zalecaną konwencję, wprowadź swoje inicjały, a następnie wybierz odpowiednią grupę zasobów.
W okienku nawigacji w sekcji Ustawienia wybierz pozycję Wdrożenia. Zostanie wyświetlona uporządkowana lista wdrożeń w tej grupie zasobów z najnowszą.
Przewiń do najstarszego wpisu na tej liście. Ten wpis odpowiada wdrożeniu rozpoczętym w poprzedniej sekcji. Wybierz najstarsze wdrożenie, jak pokazano na poniższym zrzucie ekranu.
W okienku nawigacji wybierz pozycję Dane wyjściowe. Ta lista zawiera wartości wyjściowe z wdrożenia. Przydatne informacje są zawarte w danych wyjściowych.
Wartość adminConsoleExternalUrl to w pełni kwalifikowany, publiczny link widoczny w Internecie do konsoli administracyjnej usługi WLS dla tego klastra usługi AKS. Wybierz ikonę kopiowania obok wartości pola, aby skopiować link do schowka. Zapisz tę wartość na bok później.
Wartość clusterExternalUrl to w pełni kwalifikowany, publiczny link widoczny w Internecie do przykładowej aplikacji wdrożonej w usłudze WLS w tym klastrze usługi AKS. Wybierz ikonę kopiowania obok wartości pola, aby skopiować link do schowka. Zapisz tę wartość na bok później.
ShellCmdtoOutputWlsImageModelYaml jest ciągiem base64 modelu WDT wbudowanym w obraz kontenera. Zapisz tę wartość na bok później.
Wartość shellCmdtoOutputWlsImageProperties jest ciągiem base64 właściwości modelu WDT wbudowanym w obraz kontenera. Zapisz tę wartość na bok później.
Wartość shellCmdto Połączenie Aks to polecenie interfejsu wiersza polecenia platformy Azure służące do łączenia się z tym konkretnym klastrem usługi AKS.
kubectl
Umożliwia to administrowanie klastrem.
Inne wartości w danych wyjściowych wykraczają poza zakres tego artykułu, ale zostały szczegółowo wyjaśnione w podręczniku użytkownika aplikacji WebLogic w usłudze AKS.
Tworzenie bazy danych SQL platformy Azure
Aby utworzyć pojedynczą bazę danych usługi Azure SQL Database do użycia z aplikacją, wykonaj kroki opisane w przewodniku Szybki start: tworzenie pojedynczej bazy danych w usłudze Azure SQL Database. Uważnie zanotuj następujące różnice:
W kroku Podstawowe zapisz wartości dla grupy zasobów, nazwy bazy danych, <nazwy> serwera.database.windows.net, identyfikatora logowania administratora serwera i hasła. W tym artykule opisano wartość grupy zasobów bazy danych jako
<db-resource-group>
.W kroku Sieć ustaw metodę Połączenie ivity na Publiczny punkt końcowy, ustaw opcję Zezwalaj usługom i zasobom platformy Azure na dostęp do tego serwera na wartość Tak, a następnie ustaw pozycję Dodaj bieżący adres IP klienta na Wartość Tak.
Uwaga
Bezserwerowa warstwa obliczeniowa wybrana dla tej bazy danych pozwala zaoszczędzić pieniądze, umieszczając bazę danych w stanie uśpienia w okresach braku aktywności. Przykładowa aplikacja zakończy się niepowodzeniem, jeśli baza danych zostanie uśpiona po uruchomieniu aplikacji.
Aby wymusić wznawianie bazy danych, możesz uruchomić zapytanie przy użyciu edytora zapytań. Wykonaj kroki opisane w artykule Wykonywanie zapytań względem bazy danych. Oto przykładowe zapytanie: SELECT * FROM COFFEE;
.
Utwórz schemat dla przykładowej aplikacji. Wykonaj zapytanie względem bazy danych , aby otworzyć okienko Edytor zapytań. Wpisz i uruchom następujące zapytanie:
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 pomyślnym uruchomieniu powinien zostać wyświetlony komunikat Zapytanie powiodło się: wiersze, których dotyczy problem: 0. Jeśli ten komunikat nie jest widoczny, przed kontynuowaniem rozwiąż problem i rozwiąż go.
Tworzona jest baza danych, tabele, klaster usługi AKS i klaster WLS. Jeśli chcesz, możesz eksplorować konsolę administracyjną, otwierając przeglądarkę i przechodząc do adresu adminConsoleExternalUrl. Zaloguj się przy użyciu wartości wprowadzonych podczas wdrażania usługi WLS w usłudze AKS.
Możesz kontynuować przygotowywanie usługi AKS do hostowania aplikacji WebLogic.
Konfigurowanie i wdrażanie przykładowej aplikacji
Oferta aprowizuje klaster WLS za pomocą modelu na obrazie. Obecnie klaster WLS nie ma wdrożonej aplikacji.
Ta sekcja aktualizuje klaster WLS, wdrażając przykładową aplikację przy użyciu obrazu pomocniczego.
Wyewidencjonowywanie aplikacji
W tej sekcji sklonujesz przykładowy kod dla tego przewodnika. Przykład znajduje się w witrynie GitHub w repozytorium weblogic-on-azure w folderze javaee/weblogic-café/ . Oto struktura plików aplikacji.
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
Użyj następujących poleceń, aby sklonować repozytorium:
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
Jeśli zostanie wyświetlony komunikat o stanie "odłączony HEAD", ten komunikat jest bezpieczny do zignorowania. Oznacza to po prostu wyewidencjonowanie tagu.
Użyj następującego polecenia, aby skompilować plik javaee/weblogic-café/:
mvn clean package --file $BASE_DIR/weblogic-on-azure/javaee/weblogic-cafe/pom.xml
Pakiet powinien zostać pomyślnie wygenerowany i zlokalizowany w lokalizacji $BASE_DIR/weblogic-on-azure/javaee/weblogic-café/target/weblogic-café.war. Jeśli nie widzisz pakietu, przed kontynuowaniem musisz rozwiązać problem i rozwiązać ten problem.
Tworzenie obrazu pomocniczego przy użyciu platformy Docker
W krokach w tej sekcji pokazano, jak utworzyć obraz pomocniczy. Ten obraz zawiera następujące składniki:
- Model w plikach modelu obrazów
- Twoja aplikacja
- Plik archiwum sterownika JDBC
- Instalacja narzędzi WebLogic Deploy
Obraz pomocniczy to obraz kontenera platformy Docker zawierający aplikację i konfigurację. Operator Kubernetes WebLogic łączy obraz pomocniczy z domain.spec.image
klastrem AKS zawierającym serwer WebLogic, zestaw JDK i system operacyjny. Aby uzyskać więcej informacji na temat obrazów pomocniczych, zobacz Obrazy pomocnicze w dokumentacji oracle.
Ta sekcja wymaga terminalu systemu Linux z zainstalowanym interfejsem wiersza polecenia platformy Azure i rozwiązaniem kubectl.
Aby skompilować obraz, wykonaj następujące czynności:
Użyj następujących poleceń, aby utworzyć katalog do przygotowania modeli i aplikacji:
mkdir -p ${BASE_DIR}/mystaging/models cd ${BASE_DIR}/mystaging/models
Skopiuj wartość shellCmdtoOutputWlsImageModelYaml zapisaną z danych wyjściowych wdrożenia, wklej ją w oknie powłoki Bash i uruchom polecenie. Polecenie powinno wyglądać podobnie do następującego przykładu:
echo -e IyBDb3B5cmlna...Cgo= | base64 -d > model.yaml
To polecenie tworzy plik ${BASE_DIR}/mystaging/models/model.yaml z zawartością podobną do następującego przykładu:
# 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"
W podobny sposób skopiuj wartość shellCmdtoOutputWlsImageProperties , wklej ją w oknie powłoki Bash i uruchom polecenie . Polecenie powinno wyglądać podobnie do następującego przykładu:
echo -e IyBDb3B5cml...pFPTUK | base64 -d > model.properties
To polecenie tworzy plik ${BASE_DIR}/mystaging/models/model.properties z zawartością podobną do następującego przykładu:
# 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
Aby utworzyć plik modelu aplikacji, wykonaj następujące kroki.
Użyj następujących poleceń, aby skopiować plik weblogic-café.war i zapisać go 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
Użyj następujących poleceń, aby utworzyć plik modelu aplikacji z wyświetloną zawartością. Zapisz plik modelu w lokalizacji ${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
Użyj następujących poleceń, aby pobrać i zainstalować sterownik JDBC programu Microsoft SQL Server 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
Następnie użyj następujących poleceń, aby utworzyć plik modelu połączenia bazy danych z wyświetloną zawartością. Zapisz plik modelu w lokalizacji ${BASE_DIR}/mystaging/models/dbmodel.yaml. Model używa symboli zastępczych (wpisów tajnych
sqlserver-secret
) dla nazwy użytkownika, hasła i adresu URL bazy danych. Upewnij się, że następujące pola są poprawnie ustawione. Poniższy model nazywa zasób ciągiemjdbc/WebLogicCafeDB
.Nazwa elementu Pole Wartość Nazwa JNDI resources.JDBCSystemResource.<resource-name>.JdbcResource.JDBCDataSourceParams.JNDIName
jdbc/WebLogicCafeDB
Nazwa sterownika resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.DriverName
com.microsoft.sqlserver.jdbc.SQLServerDriver
Adres URL bazy danych resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.URL
@@SECRET:sqlserver-secret:url@@
Hasło bazy danych resources.JDBCSystemResource.<resource-name>.JDBCDriverParams.PasswordEncrypted
@@SECRET:sqlserver-secret:password@@
Nazwa użytkownika bazy danych 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
Użyj następujących poleceń, aby utworzyć plik archiwum aplikacji, a następnie usunąć folder wlsdeploy , którego nie potrzebujesz już:
cd ${BASE_DIR}/mystaging/models zip -r archive.zip wlsdeploy rm -f -r wlsdeploy
Użyj następujących poleceń, aby pobrać i zainstalować narzędzie WebLogic Deploy Tooling (WDT) w katalogu przejściowym i usunąć jego pliki weblogic-deploy/bin/*.cmd, które nie są używane w środowiskach system 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
Użyj następującego polecenia, aby usunąć instalatora WDT:
rm weblogic-deploy.zip
Użyj następujących poleceń, aby skompilować obraz pomocniczy przy użyciu platformy Docker:
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
Uruchom polecenie przy użyciu polecenia ${BASE_DIR}/mystaging/Dockerfile, jak pokazano w poniższym przykładzie:cd ${BASE_DIR}/mystaging docker buildx build --platform linux/amd64 --build-arg AUXILIARY_IMAGE_PATH=/auxiliary --tag model-in-image:WLS-v1 .
Po pomyślnym skompilowania obrazu dane wyjściowe wyglądają podobnie do następującego przykładu:
[+] 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
Jeśli obraz został pomyślnie utworzony, powinien on teraz znajdować się w repozytorium platformy Docker komputera lokalnego. Aby zweryfikować tworzenie obrazu, użyj następującego polecenia:
docker images model-in-image:WLS-v1
To polecenie powinno wygenerować dane wyjściowe podobne do następującego przykładu:
REPOSITORY TAG IMAGE ID CREATED SIZE model-in-image WLS-v1 76abc1afdcc6 2 hours ago 8.61MB
Po utworzeniu obrazu powinny znajdować się pliki wykonywalne WDT w plikach /auxiliary/weblogic-deploy oraz w modelu WDT, właściwości i plikach archiwum w /auxiliary/models. Użyj następującego polecenia na obrazie platformy Docker, aby zweryfikować ten wynik:
docker run -it --rm model-in-image:WLS-v1 find /auxiliary -maxdepth 2 -type f -print
To polecenie powinno wygenerować dane wyjściowe podobne do następującego przykładu:
/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
Aby wypchnąć obraz pomocniczy do usługi Azure Container Registry, wykonaj następujące kroki:
Otwórz witrynę Azure Portal i przejdź do grupy zasobów aprowizowanej w sekcji Wdrażanie programu WSL w usłudze AKS .
Wybierz zasób typu Rejestr kontenerów z listy zasobów.
Umieść kursor myszy na wartości obok pozycji Serwer logowania i wybierz ikonę kopiowania obok tekstu.
Zapisz wartość w zmiennej środowiskowej
ACR_LOGIN_SERVER
przy użyciu następującego polecenia:export ACR_LOGIN_SERVER=<value-from-clipboard>
Uruchom następujące polecenia, aby oznaczyć obraz i wypchnąć go. Przed wykonaniem tych poleceń upewnij się, że platforma Docker jest uruchomiona.
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
Możesz uruchomić polecenie
az acr repository show
, aby sprawdzić, czy obraz jest wypychany do repozytorium zdalnego, jak pokazano w poniższym przykładzie:az acr repository show --name ${ACR_NAME} --image wlsaks-auxiliary-image:1.0
To polecenie powinno wygenerować dane wyjściowe podobne do następującego przykładu:
{ "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 }
Stosowanie obrazu pomocniczego
W poprzednich krokach utworzono obraz pomocniczy, w tym modele i WDT. Przed zastosowaniem obrazu pomocniczego do klastra WLS wykonaj następujące kroki, aby utworzyć wpis tajny dla adresu URL źródła danych, nazwy użytkownika i hasła. Wpis tajny jest używany jako część symbolu zastępczego w pliku dbmodel.yaml.
Połączenie do klastra usługi AKS, kopiując wartość shellCmdto Połączenie Aks zapisaną wcześniej, wklejając ją w oknie powłoki Bash, a następnie uruchamiając polecenie. Polecenie powinno wyglądać podobnie do następującego przykładu:
az account set --subscription <subscription>; az aks get-credentials \ --resource-group <resource-group> \ --name <name>
Powinny zostać wyświetlone dane wyjściowe podobne do poniższego przykładu. Jeśli te dane wyjściowe nie są widoczne, przed kontynuowaniem rozwiąż problem i rozwiąż go.
Merged "<name>" as current context in /Users/<username>/.kube/config
Wykonaj poniższe kroki, aby uzyskać wartości zmiennych przedstawionych w poniższej tabeli. Te wartości będą później używane do utworzenia wpisu tajnego dla połączenia źródła danych.
Zmienna opis Przykład DB_CONNECTION_STRING
Parametry połączenia programu SQL Server. jdbc:sqlserver://server-name.database.windows.net:1433;database=wlsaksquickstart0125
DB_USER
Nazwa użytkownika do logowania się do serwera SQL. welogic@sqlserverforwlsaks
DB_PASSWORD
Hasło do logowania się na serwerze sQL. Secret123456
Odwiedź zasób bazy danych SQL w witrynie Azure Portal.
W okienku nawigacji w obszarze Ustawienia wybierz pozycję ciągi Połączenie ion.
Wybierz kartę JDBC .
Wybierz ikonę kopiowania, aby skopiować parametry połączenia do schowka.
W przypadku
DB_CONNECTION_STRING
programu użyj całej parametry połączenia, ale zastąp symbol zastępczy{your_password_here}
hasłem bazy danych.W przypadku
DB_USER
programu użyj części parametry połączenia zazureuser
maksymalnie do , ale nie w tym;password={your_password_here}
.W polu
DB_PASSWORD
użyj wartości wprowadzonej podczas tworzenia bazy danych.
Użyj następujących poleceń, aby utworzyć wpis tajny platformy Kubernetes. W tym artykule użyto nazwy
sqlserver-secret
wpisu tajnego dla wpisu tajnego połączenia ze źródłem danych. Jeśli używasz innej nazwy, upewnij się, że wartość jest taka sama jak w pliku dbmodel.yaml.W poniższych poleceniach pamiętaj, aby ustawić zmienne
DB_CONNECTION_STRING
,DB_USER
iDB_PASSWORD
poprawnie, zastępując przykłady symboli zastępczych wartościami opisanymi w poprzednich krokach. Pamiętaj, aby ująć wartośćDB_
zmiennych w pojedynczych cudzysłowach, aby zapobiec zakłócaniu działania powłoki z wartościami.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}
Zanim przejdziesz dalej, musisz wyświetlić następujące dane wyjściowe. Jeśli nie widzisz tych danych wyjściowych, rozwiąż problem przed kontynuowaniem.
secret/sqlserver-secret created secret/sqlserver-secret labeled
Zastosuj obraz pomocniczy, stosując poprawkę niestandardowej definicji zasobu domeny (CRD) przy użyciu
kubectl patch
polecenia .Obraz pomocniczy jest zdefiniowany w
spec.configuration.model.auxiliaryImages
pliku , jak pokazano w poniższym przykładzie. Aby uzyskać więcej informacji, zobacz obrazy pomocnicze.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
Użyj następujących poleceń, aby zwiększyć
restartVersion
wartość i użyćkubectl patch
polecenia , aby zastosować obraz pomocniczy do domeny CRD przy użyciu przedstawionej definicji: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
Przed kontynuowaniem poczekaj, aż serwer administracyjny i serwery zarządzane pokażą wartości w następującym bloku danych wyjściowych:
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
Osiągnięcie tego stanu przez system może potrwać od 5 do 10 minut. Poniższa lista zawiera omówienie tego, co się dzieje podczas oczekiwania:
- Powinien zostać wyświetlony
sample-domain1-introspector
pierwszy uruchomiony element. To oprogramowanie wyszukuje zmiany w zasobie niestandardowym domeny, dzięki czemu może podejmować niezbędne działania w klastrze Kubernetes. - Po wykryciu zmian introspektor domeny zabija i uruchamia nowe zasobniki w celu wdrożenia zmian.
- Następnie powinno zostać wyświetlone
sample-domain1-admin-server
zakończenie i ponowne uruchomienie zasobnika. - Następnie powinny zostać wyświetlone dwa serwery zarządzane, które zakończą działanie i uruchom ponownie.
- Tylko wtedy, gdy wszystkie trzy zasobniki pokazują
1/1 Running
stan, czy można kontynuować.
- Powinien zostać wyświetlony
Weryfikowanie funkcjonalności wdrożenia
Wykonaj następujące kroki, aby zweryfikować funkcjonalność wdrożenia, wyświetlając konsolę administracyjną usługi WLS i przykładową aplikację:
Wklej wartość adminConsoleExternalUrl na pasku adresu przeglądarki internetowej połączonej z Internetem. Powinien zostać wyświetlony ekran logowania zaznajomiony z konsolą administracyjną usługi WLS.
Zaloguj się przy użyciu nazwy użytkownika
weblogic
i hasła wprowadzonego podczas wdrażania zabezpieczeń WLS z witryny Azure Portal. Pamiętaj, że ta wartość towlsAksCluster2022
.W polu Struktura domeny wybierz pozycję Usługi.
W obszarze Usługi wybierz pozycję Źródła danych.
W panelu Podsumowanie źródeł danych JDBC wybierz pozycję Monitorowanie. Ekran powinien wyglądać podobnie do poniższego przykładu. Stan źródła danych jest uruchomiony na serwerach zarządzanych.
W polu Struktura domeny wybierz pozycję Wdrożenia.
W tabeli Wdrożenia powinien istnieć jeden wiersz. Nazwa powinna być taka sama jak
Application
wartość w pliku appmodel.yaml . Wybierz nazwę.Na panelu Ustawienia wybierz kartę Testowanie.
Wybierz pozycję weblogic-café.
W panelu Ustawienia dla weblogic-café wybierz kartę Testowanie.
Rozwiń ikonę + obok weblogic-café. Ekran powinien wyglądać podobnie do poniższego przykładu. W szczególności powinny być widoczne wartości podobne do
http://sample-domain1-managed-server1:8001/weblogic-cafe/index.xhtml
w kolumnie Punkt testu.Uwaga
Hiperlinki w kolumnie Punkt testowy nie można zaznaczyć, ponieważ nie skonfigurowaliśmy konsoli administracyjnej przy użyciu zewnętrznego adresu URL, na którym jest uruchomiony. W tym artykule przedstawiono konsolę administracyjną ZLS tylko w sposób demonstracyjny. Nie używaj konsoli administracyjnej usługi WLS do żadnych trwałych zmian konfiguracji podczas uruchamiania usługi WLS w usłudze AKS. Natywny dla chmury projekt usługi WLS w usłudze AKS wymaga, aby każda trwała konfiguracja została przedstawiona w początkowych obrazach platformy Docker lub zastosowana do uruchomionego klastra usługi AKS przy użyciu technik ciągłej integracji/ciągłego wdrażania, takich jak aktualizowanie modelu, zgodnie z opisem w dokumentacji oracle.
Zapoznaj się z wartością
context-path
wdrożonej przykładowej aplikacji. Jeśli wdrożono zalecaną przykładową aplikację, parametrcontext-path
toweblogic-cafe
.Skonstruuj w pełni kwalifikowany adres URL przykładowej aplikacji, dołączając
context-path
element do wartości clusterExternalUrl . Jeśli wdrożono zalecaną przykładową aplikację, w pełni kwalifikowany adres URL powinien być podobny dohttp://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/
następującego: .Wklej w pełni kwalifikowany adres URL w przeglądarce internetowej połączonej z Internetem. Jeśli wdrożono zalecaną przykładową aplikację, powinny zostać wyświetlone wyniki podobne do poniższego zrzutu ekranu:
Czyszczenie zasobów
Aby uniknąć opłat za platformę Azure, należy wyczyścić niepotrzebne zasoby. Gdy klaster nie jest już potrzebny, użyj polecenia az group delete . Następujące polecenie usuwa grupę zasobów, usługę kontenera, rejestr kontenerów i wszystkie powiązane zasoby:
az group delete --name <resource-group-name> --yes --no-wait
az group delete --name <db-resource-group-name> --yes --no-wait
Następne kroki
Dowiedz się więcej na temat uruchamiania zabezpieczeń WLS na usłudze AKS lub maszynach wirtualnych, korzystając z następujących linków: