Wdrażanie aplikacji Java przy użyciu biblioteki Open Liberty lub WebSphere Liberty w klastrze usługi Azure Kubernetes Service (AKS)
W tym artykule pokazano, jak:
- Uruchom aplikację Java, Java EE, Jakarta EE lub MicroProfile w środowisku uruchomieniowym Open Liberty lub IBM WebSphere Liberty .
- Skompiluj obraz
az acr build
platformy Docker aplikacji przy użyciu obrazów kontenerów Open Liberty lub WebSphere Liberty. - Wdróż konteneryzowaną aplikację w klastrze usługi Azure Kubernetes Service (AKS) przy użyciu operatora Open Liberty lub operatora WebSphere Liberty.
Open Liberty Operator upraszcza wdrażanie aplikacji działających w klastrach Kubernetes i zarządzanie nimi. Za pomocą operatora Open Liberty lub Operatora WebSphere Liberty można również wykonywać bardziej zaawansowane operacje, takie jak zbieranie śladów i zrzutów.
W tym artykule użyto oferty witryny Azure Marketplace dla platformy Open Liberty lub WebSphere Liberty, aby przyspieszyć podróż do usługi AKS. Oferta automatycznie aprowizuje niektóre zasoby platformy Azure, w tym:
- Wystąpienie usługi Azure Container Registry.
- Klaster usługi AKS.
- Wystąpienie kontrolera ruchu przychodzącego usługi Application Gateway (AGIC).
- Operator Open Liberty i Operator WebSphere Liberty.
- Opcjonalnie obraz kontenera zawierający wolność i aplikację.
Jeśli wolisz ręczne wskazówki krok po kroku dotyczące uruchamiania aplikacji Liberty w usłudze AKS, zobacz Ręczne wdrażanie aplikacji Java przy użyciu biblioteki Open Liberty lub WebSphere Liberty w klastrze usługi Azure Kubernetes Service (AKS).
Ten artykuł ma pomóc w szybkim rozpoczęciu wdrażania. Przed przejściem do środowiska produkcyjnego należy zapoznać się z dokumentacją IBM dotyczącą dostrajania Liberty.
Jeśli chcesz przekazać opinię lub ściśle pracować nad scenariuszami migracji z zespołem inżynierów opracowującym rozwiązanie WebSphere na platformie Azure, wypełnij tę krótką ankietę dotyczącą migracji webSphere i dołącz informacje kontaktowe. Zespół menedżerów programów, architektów i inżynierów natychmiast skontaktuje się z Tobą w celu zainicjowania ścisłej współpracy.
Wymagania wstępne
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
- Przygotuj maszynę lokalną z zainstalowanym systemem operacyjnym przypominającym system Unix — na przykład Ubuntu, Azure Linux, macOS lub Podsystem Windows dla systemu Linux.
- Zainstaluj interfejs wiersza polecenia platformy Azure, aby uruchomić polecenia interfejsu wiersza polecenia platformy Azure.
- Zaloguj się do interfejsu wiersza polecenia platformy Azure przy użyciu
az login
polecenia . Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure. - Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą interfejsu wiersza polecenia platformy Azure.
- Uruchom polecenie
az version
, aby znaleźć zainstalowaną wersję i biblioteki zależne. Aby przeprowadzić uaktualnienie do najnowszej wersji, uruchom polecenieaz upgrade
. Ten artykuł wymaga co najmniej wersji 2.61.0 interfejsu wiersza polecenia platformy Azure.
- Zaloguj się do interfejsu wiersza polecenia platformy Azure przy użyciu
- Zainstaluj implementację języka Java Standard Edition (SE) w wersji 17 (na przykład Eclipse Open J9).
- Zainstaluj program Maven w wersji 3.9.8 lub nowszej.
- Upewnij się, że usługa Git jest zainstalowana.
- Upewnij się, że masz przypisaną
Owner
rolę lubContributor
role iUser Access Administrator
w subskrypcji. Możesz to sprawdzić, wykonując kroki opisane w temacie List role assignments for a user or group (Wyświetlanie listy przypisań ról dla użytkownika lub grupy).
Tworzenie wdrożenia usługi Liberty w usłudze AKS przy użyciu portalu
Poniższe kroki zawierają instrukcje tworzenia środowiska uruchomieniowego Liberty w usłudze AKS. Po wykonaniu tych kroków będziesz mieć wystąpienie usługi Container Registry i klaster usługi AKS na potrzeby wdrażania konteneryzowanej aplikacji.
Przejdź do portalu Azure Portal. W polu wyszukiwania w górnej części strony wprowadź ciąg WebSphere Liberty/Open Liberty na platformie Kubernetes. Po wyświetleniu sugestii wybierz tę i dopasowaną tylko w sekcji Marketplace .
Jeśli wolisz, możesz przejść bezpośrednio do oferty.
Wybierz pozycję Utwórz.
W okienku Podstawy :
- Tworzenie nowej 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
ejb0913-java-liberty-project-rg
). Zapisz nazwę grupy zasobów do późniejszego użycia w tym artykule. - W obszarze Region wybierz region, który jest blisko Ciebie. Na przykład wybierz pozycję Wschodnie stany USA 2.
- Tworzenie nowej 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
Wybierz Dalej. W okienku usługi AKS możesz opcjonalnie wybrać istniejący klaster usługi AKS i wystąpienie usługi Container Registry, zamiast powodować utworzenie nowych wdrożeń. Ten wybór umożliwia użycie wzorca przyczepki, jak pokazano w Centrum architektury platformy Azure. Możesz również dostosować ustawienia rozmiaru i liczby maszyn wirtualnych w puli węzłów usługi AKS.
Na potrzeby tego artykułu po prostu zachowaj wszystkie wartości domyślne w tym okienku.
Wybierz Dalej. W okienku Równoważenie obciążenia obok pozycji Połącz z bramą aplikacja systemu Azure? wybierz pozycję Tak. W tej sekcji można dostosować następujące opcje wdrażania:
W przypadku sieci wirtualnej i podsieci można opcjonalnie dostosować sieć wirtualną i podsieć, w której wdrożenie umieszcza zasoby. Nie musisz zmieniać pozostałych wartości z ich wartości domyślnych.
W przypadku certyfikatu TLS/SSL można podać certyfikat TLS/SSL z usługi aplikacja systemu Azure Gateway. Pozostaw wartości domyślne, aby spowodować wygenerowanie certyfikatu z podpisem własnym.
Nie należy przechodzić do środowiska produkcyjnego przy użyciu certyfikatu z podpisem własnym. Aby uzyskać więcej informacji na temat certyfikatów z podpisem własnym, zobacz Tworzenie certyfikatu publicznego z podpisem własnym w celu uwierzytelnienia aplikacji.
Możesz wybrać opcję Włącz koligację opartą na plikach cookie, znaną również jako sesje sticky. W tym artykule użyto lepkich sesji, więc pamiętaj, aby wybrać tę opcję.
Wybierz Dalej. W okienku Operator i aplikacja w tym artykule są używane wszystkie wartości domyślne. Można jednak dostosować następujące opcje wdrażania:
- Operator WebSphere Liberty można wdrożyć, wybierając pozycję Tak dla opcji obsługiwanej przez firmę IBM?. Pozostawienie domyślnej opcji Nie umożliwia wdrożenia operatora Open Liberty.
- Możesz wdrożyć aplikację dla wybranego operatora, wybierając pozycję Tak dla opcji Wdróż aplikację?. Pozostawienie domyślnej wartości Nie nie powoduje wdrożenia żadnej aplikacji.
Wybierz pozycję Przejrzyj i utwórz , aby zweryfikować wybrane opcje. W okienku Przeglądanie i tworzenie po zakończeniu walidacji wybierz pozycję Utwórz.
Wdrożenie może potrwać do 20 minut. Podczas oczekiwania na zakończenie wdrożenia możesz wykonać kroki opisane w sekcji Tworzenie wystąpienia usługi Azure SQL Database. Po ukończeniu tej sekcji wróć tutaj i kontynuuj.
Przechwytywanie wybranych informacji z wdrożenia
W przypadku przeniesienia z okienka Wdrożenie jest w toku , poniższe kroki pokazują, jak wrócić do tego okienka. Jeśli nadal znajdujesz się w okienku z wyświetlonym komunikatem Wdrożenie zostało ukończone, przejdź do nowo utworzonej grupy zasobów i przejdź do trzeciego kroku.
W rogu dowolnej strony portalu wybierz przycisk menu, a następnie 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.
Na liście zasobów w grupie zasobów wybierz zasób z wartością Typ rejestru kontenerów.
W okienku nawigacji w obszarze Ustawienia wybierz pozycję Klucze dostępu.
Zapisz wartości pól Nazwa rejestru i Serwer logowania. Możesz użyć ikony kopiowania obok każdego pola, aby skopiować wartość do schowka systemowego.
Uwaga
W tym artykule użyto
az acr build
polecenia , aby skompilować i wypchnąć obraz platformy Docker do rejestru kontenerów bez użycia iusername
password
rejestru kontenerów. Nadal można używać nazwy użytkownika i hasła za pomocą poleceniadocker login
idocker push
. Użycie nazwy użytkownika i hasła jest mniej bezpieczne niż uwierzytelnianie bez hasła.Wróć do grupy zasobów, w której wdrożono zasoby.
W sekcji Ustawienia wybierz pozycję Wdrożenia.
Wybierz najbardziej najwięcej wdrożeń na liście. Wartość Nazwa wdrożenia jest zgodna z identyfikatorem wydawcy oferty. Zawiera on ciąg
ibm
.W okienku nawigacji wybierz pozycję Dane wyjściowe.
Korzystając z tej samej techniki kopiowania, co w przypadku powyższych wartości, zapisz wartości dla następujących danych wyjściowych:
cmdToConnectToCluster
appDeploymentTemplateYaml
jeśli wdrożenie nie zawiera aplikacji. Oznacza to, że wybrano opcję Nie dla opcji Wdróż aplikację? po wdrożeniu oferty marketplace. W tym artykule wybrano pozycję Nie. Jeśli jednak wybrano opcję Tak, zapisz wartośćappDeploymentYaml
, która obejmuje wdrożenie aplikacji.Wklej wartość
appDeploymentTemplateYaml
lubappDeploymentYaml
w powłoce powłoki Bash i uruchom polecenie .Dane wyjściowe tego polecenia to wdrożenie aplikacji YAML. Wyszukaj wpis tajny PROTOKOŁU TLS ruchu przychodzącego za pomocą słowa kluczowego
secretName
, takiego jak- secretName: secret785e2c
. Zapisz wartość na boksecretName
.
Uruchom następujące polecenia, aby ustawić zmienne środowiskowe przechwycone w poprzednich krokach. Te zmienne środowiskowe są używane w dalszej części tego artykułu.
export RESOURCE_GROUP_NAME=<your-resource-group-name>
export REGISTRY_NAME=<your-registry-nam-of-container-registry>
export LOGIN_SERVER=<your-login-server-of-container-registry>
export INGRESS_TLS_SECRET=<your-ingress-tls-secret-name>
Tworzenie wystąpienia usługi Azure SQL Database
W tej sekcji utworzysz pojedynczą bazę danych usługi Azure SQL Database do użycia z aplikacją.
Najpierw ustaw zmienne środowiskowe związane z bazą danych. Zastąp <your-unique-sql-server-name>
element unikatową nazwą serwera usługi Azure SQL Database.
export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb
Uruchom następujące polecenie w terminalu, aby utworzyć pojedynczą bazę danych w usłudze Azure SQL Database i ustawić bieżącego zalogowanego użytkownika jako administratora firmy Microsoft Entra. Aby uzyskać więcej informacji, zobacz Szybki start: tworzenie pojedynczej bazy danych — Azure SQL Database.
export ENTRA_ADMIN_NAME=$(az account show --query user.name --output tsv)
az sql server create \
--name $SQL_SERVER_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--enable-ad-only-auth \
--external-admin-principal-type User \
--external-admin-name $ENTRA_ADMIN_NAME \
--external-admin-sid $(az ad signed-in-user show --query id --output tsv)
az sql db create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name $DB_NAME \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--capacity 2
Następnie dodaj lokalny adres IP do reguł zapory serwera usługi Azure SQL Database, aby umożliwić maszynie lokalnej nawiązywanie połączenia z bazą danych na potrzeby testowania lokalnego później.
export AZ_LOCAL_IP_ADDRESS=$(curl -s https://whatismyip.akamai.com)
az sql server firewall-rule create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP \
--start-ip-address $AZ_LOCAL_IP_ADDRESS \
--end-ip-address $AZ_LOCAL_IP_ADDRESS
Uwaga
Ten artykuł wyłącza uwierzytelnianie SQL w celu zilustrowania najlepszych rozwiązań w zakresie zabezpieczeń. Identyfikator Entra firmy Microsoft służy do uwierzytelniania połączenia z serwerem. Jeśli musisz włączyć uwierzytelnianie SQL, zobacz az sql server create
.
Tworzenie połączenia usługi w usłudze AKS za pomocą łącznika usługi
W tej sekcji utworzysz połączenie usługi między klastrem usługi AKS i usługą Azure SQL Database przy użyciu Tożsamość obciążeń Microsoft Entra z łącznikiem usługi. To połączenie umożliwia klastrowi usługi AKS dostęp do usługi Azure SQL Database bez korzystania z uwierzytelniania SQL.
Najpierw przyznaj aplikacji uprawnienia dostawcy zasobów łącznika usługi Azure Service Connector do wdrożonej wcześniej usługi Application Gateway. Ten krok jest wymagany do pomyślnego utworzenia połączenia usługi między klastrem usługi AKS a usługą Azure SQL Database.
- Przejdź do witryny Azure Portal i przejdź do utworzonej wcześniej grupy zasobów.
- Na liście zasobów w grupie zasobów wybierz zasób z wartością Typ bramy aplikacji.
- Wybierz pozycję Kontrola dostępu (IAM). Następnie rozwiń węzeł Dodaj i wybierz pozycję Dodaj przypisanie roli.
- Na karcie Rola wybierz pozycję Role administratora uprzywilejowanego. Następnie wybierz pozycję Współautor. Wybierz Dalej.
- Na karcie Członkowie wybierz pozycję Wybierz członków. Następnie wyszukaj aplikację Dostawcy zasobów łącznika usługi Azure. Wybierz aplikację i wybierz pozycję Wybierz. Wybierz Dalej.
- Wybierz Przejrzyj + przypisz. Poczekaj kilka sekund na ukończenie przypisania roli.
Następnie uruchom następujące polecenia, aby utworzyć połączenie między klastrem usługi AKS i bazą danych SQL przy użyciu Tożsamość obciążeń Microsoft Entra z łącznikiem usługi. Aby uzyskać więcej informacji, zobacz Tworzenie połączenia usługi w usłudze AKS przy użyciu łącznika usługi (wersja zapoznawcza).
# Register the Service Connector and Kubernetes Configuration resource providers
az provider register --namespace Microsoft.ServiceLinker --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
# Install the Service Connector passwordless extension
az extension add --name serviceconnector-passwordless --upgrade --allow-preview true
# Retrieve the AKS cluster and Azure SQL Server resource IDs
export AKS_CLUSTER_RESOURCE_ID=$(az aks show \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--query id \
--output tsv)
export AZURE_SQL_SERVER_RESOURCE_ID=$(az sql server show \
--resource-group $RESOURCE_GROUP_NAME \
--name $SQL_SERVER_NAME \
--query id \
--output tsv)
# Create a user-assigned managed identity used for workload identity
export USER_ASSIGNED_IDENTITY_NAME=workload-identity-uami
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${USER_ASSIGNED_IDENTITY_NAME}
# Retrieve the user-assigned managed identity resource ID
export UAMI_RESOURCE_ID=$(az identity show \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${USER_ASSIGNED_IDENTITY_NAME} \
--query id \
--output tsv)
# Create a service connection between your AKS cluster and your SQL database using Microsoft Entra Workload ID
az aks connection create sql \
--connection akssqlconn \
--client-type java \
--source-id $AKS_CLUSTER_RESOURCE_ID \
--target-id $AZURE_SQL_SERVER_RESOURCE_ID/databases/$DB_NAME \
--workload-identity $UAMI_RESOURCE_ID
Uwaga
Zalecamy używanie Tożsamość obciążeń Microsoft Entra w celu zapewnienia bezpiecznego dostępu do usługi Azure SQL Database bez korzystania z uwierzytelniania SQL. Jeśli musisz użyć uwierzytelniania SQL, zignoruj poprzednie kroki w tej sekcji i użyj nazwy użytkownika i hasła, aby nawiązać połączenie z usługą Azure SQL Database.
Pobieranie konta usługi i wpisu tajnego utworzonego przez łącznik usługi
Aby uwierzytelnić się w usłudze Azure SQL Database, musisz pobrać konto usługi i wpis tajny utworzony przez łącznik usługi. Postępuj zgodnie z instrukcjami w sekcji Aktualizowanie kontenera w artykule Samouczek: łączenie aplikacji usługi AKS z usługą Azure SQL Database. Wykonaj opcję Bezpośrednio utwórz wdrożenie przy użyciu udostępnionego przykładowego fragmentu kodu YAML i wykonaj następujące czynności:
Z wyróżnionych sekcji w przykładowym wdrożeniu kubernetes YAML skopiuj
serviceAccountName
wartości isecretRef.name
, jak pokazano w poniższym przykładzie:serviceAccountName: <service-account-name> containers: - name: raw-linux envFrom: - secretRef: name: <secret-name>
Użyj następujących poleceń, aby zdefiniować zmienne środowiskowe. Zastąp
<service-account-name>
wartości i<secret-name>
wartościami skopiowanymi w poprzednim kroku.export SERVICE_ACCOUNT_NAME=<service-account-name> export SECRET_NAME=<secret-name>
Te wartości są używane w następnej sekcji, aby wdrożyć aplikację Liberty w klastrze usługi AKS.
Uwaga
Wpis tajny utworzony przez łącznik usługi zawiera AZURE_SQL_CONNECTIONSTRING
wartość , która jest bezpłatnym hasłem parametry połączenia do usługi Azure SQL Database. Aby uzyskać więcej informacji, zobacz przykładową wartość w sekcji Uwierzytelnianie tożsamości zarządzanej przypisanej przez użytkownika w temacie Integrowanie usługi Azure SQL Database z łącznikiem usługi.
Po skonfigurowaniu bazy danych i klastra usługi AKS możesz przystąpić do przygotowywania usługi AKS do hostowania aplikacji Open Liberty.
Konfigurowanie i wdrażanie przykładowej aplikacji
Wykonaj kroki opisane w tej sekcji, aby wdrożyć przykładową aplikację w środowisku uruchomieniowym Liberty. W tych krokach użyto narzędzia Maven.
Wyewidencjonowywanie aplikacji
Sklonuj przykładowy kod dla tego artykułu. Przykład znajduje się w witrynie GitHub.
W repozytorium znajduje się kilka przykładów. W tym artykule użyto języka java-app. Uruchom następujące polecenia, aby pobrać przykład:
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20241107
Jeśli zostanie wyświetlony komunikat o stanie "odłączony HEAD", możesz bezpiecznie go zignorować. Komunikat oznacza po prostu wyewidencjonowanie tagu.
Oto struktura plików aplikacji z ważnymi plikami i katalogami:
java-app
├─ src/main/
│ ├─ aks/
│ │ ├─ openlibertyapplication-agic-passwordless-db.yaml
│ ├─ docker/
│ │ ├─ Dockerfile
│ │ ├─ Dockerfile-wlp
│ ├─ liberty/config/
│ │ ├─ server.xml
│ ├─ java/
│ ├─ resources/
│ ├─ webapp/
├─ pom.xml
├─ pom-azure-identity.xml
Katalogi java, zasoby i aplikacja internetowa zawierają kod źródłowy przykładowej aplikacji. Kod deklaruje i używa źródła danych o nazwie jdbc/JavaEECafeDB
.
W katalogu aks plik openlibertyapplication-agic-passwordless-db.yaml służy do wdrażania obrazu aplikacji za pomocą programu AGIC i połączenia bez hasła z usługą Azure SQL Database. W tym artykule założono, że używasz tego pliku.
W katalogu platformy Docker istnieją dwa pliki do utworzenia obrazu aplikacji za pomocą polecenia Open Liberty lub WebSphere Liberty.
W katalogu liberty/config plik server.xml służy do konfigurowania połączenia bazy danych dla klastra Open Liberty i WebSphere Liberty. Definiuje zmienną azure.sql.connectionstring
używaną do nawiązywania połączenia z usługą Azure SQL Database.
Plik pom.xml to plik modelu obiektów projektu Maven (POM), który zawiera informacje o konfiguracji projektu. Plik pom-azure-identity.xml deklaruje zależność od azure-identity
. Ten plik służy do uwierzytelniania w usługach platformy Azure przy użyciu identyfikatora Entra firmy Microsoft.
Uwaga
W tym przykładzie użyto azure-identity
biblioteki do uwierzytelniania w usłudze Azure SQL Database przy użyciu uwierzytelniania firmy Microsoft Entra. Jeśli musisz użyć uwierzytelniania SQL w aplikacji Liberty, zobacz Połączenia relacyjnej bazy danych z protokołem JDBC.
Kompilowanie projektu
Po zebraniu niezbędnych właściwości skompiluj aplikację. Plik POM dla projektu odczytuje wiele zmiennych ze środowiska. W ramach kompilacji narzędzia Maven te zmienne są używane do wypełniania wartości w plikach YAML znajdujących się w pliku src/main/aks. Jeśli wolisz, możesz zrobić coś podobnego dla aplikacji spoza narzędzia Maven.
cd $BASE_DIR/java-app
# The following variables are used for deployment file generation into the target.
export LOGIN_SERVER=${LOGIN_SERVER}
export SC_SERVICE_ACCOUNT_NAME=${SERVICE_ACCOUNT_NAME}
export SC_SECRET_NAME=${SECRET_NAME}
export INGRESS_TLS_SECRET=${INGRESS_TLS_SECRET}
mvn clean install
mvn dependency:copy-dependencies -f pom-azure-identity.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources
Testowanie projektu lokalnie
Uruchom i przetestuj projekt lokalnie przed wdrożeniem na platformie Azure. Dla wygody w tym artykule jest używany program liberty-maven-plugin
. Aby dowiedzieć się więcej na temat liberty-maven-plugin
programu , zobacz artykuł Open Liberty Building a web application with Maven (Tworzenie aplikacji internetowej za pomocą narzędzia Maven).
Uwaga
Jeśli wybrano wdrożenie bazy danych "bezserwerowe", sprawdź, czy baza danych SQL nie została wprowadzona w trybie wstrzymania. Jednym ze sposobów wykonania tej czynności jest zalogowanie się do edytora zapytań bazy danych zgodnie z opisem w przewodniku Szybki start: używanie edytora zapytań witryny Azure Portal (wersja zapoznawcza) do wykonywania zapytań w usłudze Azure SQL Database.
Uruchom aplikację przy użyciu polecenia
liberty:run
.cd $BASE_DIR/java-app # The value of environment variable AZURE_SQL_CONNECTIONSTRING is read by configuration variable `azure.sql.connectionstring` in server.xml export AZURE_SQL_CONNECTIONSTRING="jdbc:sqlserver://$SQL_SERVER_NAME.database.windows.net:1433;databaseName=$DB_NAME;authentication=ActiveDirectoryDefault" mvn liberty:run
Sprawdź, czy aplikacja działa zgodnie z oczekiwaniami. Powinien zostać wyświetlony komunikat podobny do
[INFO] [AUDIT ] CWWKZ0001I: Application javaee-cafe started in 18.235 seconds.
w danych wyjściowych polecenia. Przejdź dohttp://localhost:9080/
witryny w przeglądarce i sprawdź, czy aplikacja jest dostępna, a wszystkie funkcje działają.Naciśnij Ctrl+C, aby zatrzymać. Naciśnij Y , jeśli zostanie wyświetlony monit o zakończenie zadania wsadowego.
Po zakończeniu usuń regułę zapory, która umożliwia lokalnemu adresowi IP uzyskiwanie dostępu do usługi Azure SQL Database przy użyciu następującego polecenia:
az sql server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP
Kompilowanie obrazu dla wdrożenia usługi AKS
Teraz możesz uruchomić az acr build
polecenie , aby skompilować obraz, jak pokazano w poniższym przykładzie:
cd $BASE_DIR/java-app/target
az acr build \
--registry ${REGISTRY_NAME} \
--image javaee-cafe:v1 \
.
Polecenie az acr build
przekazuje artefakty określone w pliku Dockerfile do wystąpienia usługi Container Registry, kompiluje obraz i przechowuje je w wystąpieniu usługi Container Registry.
Wdrażanie aplikacji w klastrze usługi AKS
Aby wdrożyć aplikację Liberty w klastrze usługi AKS, wykonaj następujące kroki:
Połącz się z klastrem usługi AKS.
Wklej wartość w
cmdToConnectToCluster
powłoce i uruchom polecenie .Zastosuj plik wdrożenia, uruchamiając następujące polecenia:
cd $BASE_DIR/java-app/target # Apply deployment file kubectl apply -f openlibertyapplication-agic-passwordless-db.yaml
Zaczekaj na pomyślne ponowne uruchomienie wszystkich zasobników przy użyciu następującego polecenia:
kubectl get pods --watch
Dane wyjściowe podobne do poniższego przykładu wskazują, że wszystkie zasobniki są uruchomione:
NAME READY STATUS RESTARTS AGE javaee-cafe-cluster-agic-67cdc95bc-2j2gr 1/1 Running 0 29s javaee-cafe-cluster-agic-67cdc95bc-fgtt8 1/1 Running 0 29s javaee-cafe-cluster-agic-67cdc95bc-h47qm 1/1 Running 0 29s
Testowanie aplikacji
Gdy zasobniki są uruchomione, możesz przetestować aplikację przy użyciu publicznego adresu IP wystąpienia usługi Application Gateway.
Uruchom następujące polecenie, aby pobrać i wyświetlić publiczny adres IP wystąpienia usługi Application Gateway uwidoczniony przez zasób ruchu przychodzącego utworzonego przez usługę AGIC:
export APP_URL=https://$(kubectl get ingress | grep javaee-cafe-cluster-agic-ingress | cut -d " " -f14)/
echo $APP_URL
Skopiuj adres URL i otwórz go w przeglądarce, aby wyświetlić stronę główną aplikacji. Jeśli strona internetowa nie jest poprawnie renderowana lub zwraca 502 Bad Gateway
błąd, aplikacja nadal zaczyna się w tle. Poczekaj kilka minut, a następnie spróbuj ponownie.
Czyszczenie zasobów
Aby uniknąć opłat za platformę Azure, należy wyczyścić niepotrzebne zasoby. Jeśli klaster nie jest już potrzebny, użyj az group delete
polecenia , aby usunąć grupę zasobów, usługę kontenera, rejestr kontenerów, bazę danych i wszystkie powiązane zasoby:
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Następne kroki
Aby dowiedzieć się więcej, zapoznaj się z następującymi odwołaniami:
- Azure Kubernetes Service
- Samouczek: łączenie aplikacji AKS z usługą Azure SQL Database (wersja zapoznawcza)
- Integrowanie usługi Azure SQL Database z łącznikiem usługi
- Nawiązywanie połączenia przy użyciu uwierzytelniania entra firmy Microsoft
- Open Liberty
- Open Liberty, operator
- Konfiguracja serwera Open Liberty
- Wtyczka Liberty Maven
- Otwieranie obrazów kontenera Liberty
- Obrazy kontenerów WebSphere Liberty
Aby uzyskać więcej informacji na temat wdrażania rodziny IBM WebSphere na platformie Azure, zobacz Co to są rozwiązania do uruchamiania rodziny produktów WebSphere na platformie Azure?.
Azure Kubernetes Service