Udostępnij za pośrednictwem


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ł zawiera szczegółowe wskazówki dotyczące uruchamiania oprogramowania Open/WebSphere Liberty na platformie Azure.

W szczególności w tym artykule wyjaśniono, jak wykonać następujące zadania:

  • Uruchom aplikację Java, Java EE, Jakarta EE lub MicroProfile w środowisku uruchomieniowym Open Liberty lub WebSphere Liberty.
  • Skompiluj obraz az acr build platformy Docker aplikacji przy użyciu obrazów kontenera Liberty.
  • Wdróż konteneryzowaną aplikację w klastrze usługi Azure Kubernetes Service (AKS) przy użyciu operatora Liberty.

Operator Liberty 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.

Aby uzyskać bardziej zautomatyzowane rozwiązanie przyspieszające podróż do usługi AKS, zobacz Deploy a Java application with Open Liberty/WebSphere Liberty on an Azure Kubernetes Service (AKS) cluster (Wdrażanie aplikacji Java przy użyciu biblioteki Open Liberty/WebSphere Liberty w klastrze usługi Azure Kubernetes Service (AKS).

Aby uzyskać więcej informacji na temat open liberty, zobacz stronę projektu Open Liberty. Aby uzyskać więcej informacji na temat ibm WebSphere Liberty, zobacz stronę produktu WebSphere Liberty.

Ten artykuł ma pomóc w szybkim rozpoczęciu wdrażania. Przed przejściem do środowiska produkcyjnego należy zapoznać się z tematem Tuning 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

Logowanie się do platformy Azure

Jeśli jeszcze tego nie zrobiono, zaloguj się do subskrypcji platformy Azure przy użyciu polecenia az login i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.

az login

Uwaga

Większość poleceń interfejsu wiersza polecenia platformy Azure można uruchamiać w programie PowerShell tak samo jak w powłoce Bash. Różnica istnieje tylko w przypadku używania zmiennych. W poniższych sekcjach różnica jest rozwiązywana na różnych kartach w razie potrzeby.

Jeśli masz wiele dzierżaw platformy Azure skojarzonych z poświadczeniami platformy Azure, musisz określić dzierżawę, do której chcesz się zalogować. Możesz to zrobić za --tenant pomocą opcji . Na przykład az login --tenant contoso.onmicrosoft.com.

Tworzenie grupy zasobów

Grupa zasobów platformy Azure to logiczna grupa przeznaczona do wdrażania zasobów platformy Azure i zarządzania nimi.

Utwórz grupę zasobów o nazwie java-liberty-project za pomocą polecenia az group create w eastus2 lokalizacji. Ta grupa zasobów jest później używana do tworzenia wystąpienia usługi Azure Container Registry i klastra usługi AKS.

export RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --location eastus2

Tworzenie wystąpienia usługi Container Registry

Użyj polecenia az acr create, aby utworzyć wystąpienie usługi Container Registry. Poniższy przykład tworzy wystąpienie usługi Container Registry o nazwie youruniqueacrname. Upewnij się, że youruniqueacrname jest unikatowa na platformie Azure.

Uwaga

W tym artykule użyto zalecanego mechanizmu uwierzytelniania bez hasła dla usługi Container Registry. Nadal można użyć nazwy użytkownika i hasła docker login po użyciu polecenia az acr credential show w celu uzyskania nazwy użytkownika i hasła. Użycie nazwy użytkownika i hasła jest mniej bezpieczne niż uwierzytelnianie bez hasła.

export REGISTRY_NAME=youruniqueacrname
az acr create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $REGISTRY_NAME \
    --sku Basic

Po krótkim czasie powinny zostać wyświetlone dane wyjściowe JSON zawierające następujące wiersze:

  "provisioningState": "Succeeded",
  "publicNetworkAccess": "Enabled",
  "resourceGroup": "java-liberty-project",

Następnie pobierz serwer logowania dla wystąpienia usługi Container Registry. Ta wartość jest potrzebna podczas wdrażania obrazu aplikacji w klastrze usługi AKS później.

export LOGIN_SERVER=$(az acr show \
    --name $REGISTRY_NAME \
    --query 'loginServer' \
    --output tsv)

Tworzenie klastra AKS

Utwórz klaster AKS za pomocą polecenia az aks create. Poniższy przykład tworzy klaster o nazwie myAKSCluster z jednym węzłem. Wykonanie tego polecenia trwa kilka minut.

export CLUSTER_NAME=myAKSCluster
az aks create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --node-count 1 \
    --generate-ssh-keys \
    --enable-managed-identity

Po kilku minutach polecenie zostanie zakończone i zwróci informacje w formacie JSON dotyczące klastra, w tym następujące dane wyjściowe:

  "nodeResourceGroup": "MC_java-liberty-project_myAKSCluster_eastus2",
  "privateFqdn": null,
  "provisioningState": "Succeeded",
  "resourceGroup": "java-liberty-project",

Dołączanie wystąpienia usługi Container Registry do klastra usługi AKS

Uruchom polecenie az aks update, aby dołączyć wystąpienie usługi Container Registry do klastra usługi AKS, aby klaster usługi AKS był uwierzytelniany w celu ściągania obrazów z wystąpienia usługi Container Registry, jak pokazano w poniższym przykładzie:

az aks update \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --attach-acr $REGISTRY_NAME

Nawiązywanie połączenia z klastrem usługi AKS

Aby zarządzać klastrem Kubernetes, należy użyć klienta wiersza polecenia usługi Kubernetes — narzędzia kubectl. Aby zainstalować kubectl lokalnie, użyj polecenia az aks install-cli , jak pokazano w poniższym przykładzie:

az aks install-cli

Aby skonfigurować narzędzie kubectl w celu nawiązania połączenia z klastrem Kubernetes, użyj polecenia az aks get-credentials. To polecenie powoduje pobranie poświadczeń i zastosowanie ich w konfiguracji interfejsu wiersza polecenia Kubernetes.

az aks get-credentials \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --overwrite-existing \
    --admin

Uwaga

Powyższe polecenie używa domyślnej lokalizacji pliku konfiguracji kubernetes, czyli ~/.kube/config. Możesz określić inną lokalizację pliku konfiguracji platformy Kubernetes przy użyciu polecenia --file.

Aby sprawdzić połączenie z klastrem, użyj polecenia kubectl get, aby powrócić do listy węzłów klastra.

kubectl get nodes

Poniższe przykładowe dane wyjściowe zawierają jeden węzeł utworzony w poprzednich krokach. Upewnij się, że stan węzła to Gotowy:

NAME                                STATUS   ROLES   AGE     VERSION
aks-nodepool1-xxxxxxxx-yyyyyyyyyy   Ready    <none>  76s     v1.29.9

Tworzenie bazy danych SQL platformy Azure

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 ad signed-in-user show --query userPrincipalName --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

W przypadku zagadnień dotyczących zabezpieczeń należy utworzyć serwer Azure SQL z wyłączonym uwierzytelnianiem SQL. Tylko identyfikator Entra firmy Microsoft jest używany do uwierzytelniania na serwerze. Jeśli musisz włączyć uwierzytelnianie SQL, zobacz az sql server create , aby uzyskać więcej informacji.

Tworzenie połączenia usługi w usłudze AKS za pomocą łącznika usługi

Uruchom następujące polecenia, aby utworzyć połączenie między klastrem 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

Zaleca się używanie Tożsamość obciążeń Microsoft Entra do bezpiecznego dostępu do usługi Azure SQL Database bez korzystania z uwierzytelniania SQL. Jeśli musisz użyć uwierzytelniania SQL, zignoruj powyższe kroki w tej sekcji i użyj nazwy użytkownika i hasła, aby nawiązać połączenie z usługą Azure SQL Database.

Uzyskiwanie konta usługi servcie 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 sekcją Aktualizowanie kontenera. Wykonaj opcję Bezpośrednio utwórz wdrożenie przy użyciu udostępnionego przykładowego fragmentu kodu YAML i wykonaj następujące kroki:

  1. Z wyróżnionych sekcji w przykładowym wdrożeniu kubernetes YAML skopiuj serviceAccountName wartości i secretRef.name , jak pokazano w poniższym przykładzie:

    serviceAccountName: <service-account-name>
    containers:
    - name: raw-linux
       envFrom:
          - secretRef:
             name: <secret-name>
    
  2. Zastąp <service-account-name> wartości i <secret-name> wartościami skopiowanymi w poprzednim kroku, aby zdefiniować następujące zmienne środowiskowe:

    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_CONNECTIONSTRINGwartość , 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ść z uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika.

Instalowanie operatora Open Liberty

W tej sekcji zainstalujesz operator Open Liberty w klastrze AKS, aby hostować aplikację Liberty.

Zainstaluj operator Open Liberty, uruchamiając następujące polecenia:

# Install cert-manager Operator
CERT_MANAGER_VERSION=v1.11.2
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.yaml

# Install Open Liberty Operator
export OPERATOR_VERSION=1.4.0
mkdir -p overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/olo-all-namespaces.yaml -q -P ./overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/cluster-roles.yaml -q -P ./overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/kustomization.yaml -q -P ./overlays/watch-all-namespaces
mkdir base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/kustomization.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-crd.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-operator.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-roles.yaml -q -P ./base
kubectl create namespace open-liberty
kubectl apply --server-side -k overlays/watch-all-namespaces

Konfigurowanie i kompilowanie obrazu aplikacji

Aby wdrożyć i uruchomić aplikację Liberty w klastrze usługi AKS, konteneryzuj aplikację jako obraz platformy Docker przy użyciu obrazów kontenerów Open Liberty lub obrazów kontenerów WebSphere Liberty.

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 przewodnika. Przykład znajduje się w witrynie GitHub. W repozytorium znajduje się kilka przykładów. W tym artykule użyto przykładu java-app . Obok zostaną wyświetlone ważne pliki.

git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20241029

Jeśli zostanie wyświetlony komunikat o stanie "odłączony HEAD", ten komunikat jest bezpieczny do zignorowania. Oznacza to po prostu wyewidencjonowanie tagu.

java-app
├─ src/main/
│  ├─ aks/
│  │  ├─ openlibertyapplication-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-passwordless-db.yaml służy do wdrażania obrazu aplikacji. W katalogu platformy Docker istnieją dwa pliki do utworzenia obrazu aplikacji za pomocą polecenia Open Liberty lub WebSphere Liberty.

W katalogu liberty/config 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 azure-identity zależność, która jest używana 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 w usłudze Microsoft Entra authencitation, co jest zalecane w przypadku zagadnień dotyczących zabezpieczeń. Jeśli musisz użyć uwierzytelniania SQL w aplikacji Liberty, zobacz Relacyjne połączenia bazy danych z protokołem JDBC , aby uzyskać więcej informacji.

Kompilowanie projektu

Po zebraniu niezbędnych właściwości możesz skompilować 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 target/
export LOGIN_SERVER=${LOGIN_SERVER}
export SC_SERVICE_ACCOUNT_NAME=${SERVICE_ACCOUNT_NAME}
export SC_SECRET_NAME=${SECRET_NAME}

mvn clean install
mvn dependency:copy-dependencies -f pom-azure-identity.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources

Testowanie projektu lokalnie

Teraz możesz uruchomić i przetestować projekt lokalnie przed wdrożeniem na platformie Azure. Dla wygody użyj .liberty-maven-plugin Aby dowiedzieć się więcej na temat programu liberty-maven-plugin, zobacz Tworzenie aplikacji internetowej za pomocą narzędzia Maven. W przypadku aplikacji możesz zrobić coś podobnego przy użyciu dowolnego innego mechanizmu, takiego jak lokalne środowisko IDE. Możesz również rozważyć użycie opcji przeznaczonej liberty:devc do programowania z kontenerami. Więcej liberty:devc informacji można przeczytać w dokumentacji Liberty.

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.

  1. 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
    
  2. Sprawdź, czy aplikacja działa zgodnie z oczekiwaniami. W przypadku powodzenia powinien zostać wyświetlony komunikat podobny do [INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds. w danych wyjściowych polecenia. Przejdź do http://localhost:9080/ witryny w przeglądarce, aby sprawdzić, czy aplikacja jest dostępna, a wszystkie funkcje działają.

  3. Naciśnij Ctrl+C, aby zatrzymać. Wybierz Y , czy zadanie wsadowe zostało zakończone.

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ć polecenie az acr build , 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:

  1. Zastosuj plik wdrożenia, uruchamiając następujące polecenia:

    cd $BASE_DIR/java-app/target
    
    # Apply deployment file
    kubectl apply -f openlibertyapplication-passwordless-db.yaml
    
  2. Ustal, czy OpenLibertyApplication wystąpienie zostało utworzone, uruchamiając następujące polecenie:

    kubectl get openlibertyapplication javaee-cafe-cluster
    

    Powinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:

    NAME                  IMAGE                                        EXPOSED   RECONCILED   RESOURCESREADY   READY   WARNING   AGE
    javaee-cafe-cluster   jiangma102924acr.azurecr.io/javaee-cafe:v1             True         True             True              57s
    
  3. Ustal, czy wdrożenie utworzone przez operatora jest gotowe, uruchamiając następujące polecenie:

    kubectl get deployment javaee-cafe-cluster --watch
    

    Powinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:

    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    javaee-cafe-cluster         0/3     3            0           20s
    
  4. Poczekaj, aż zobaczysz 3/3 pod kolumną READY i 3 pod kolumnąAVAILABLE, a następnie naciśnij Ctrl+C, aby zatrzymać proces zegarka.kubectl

Testowanie aplikacji

Po uruchomieniu aplikacji usługa modułu równoważenia obciążenia Kubernetes uwidacznia fronton aplikacji w Internecie. Ukończenie tego procesu może zająć trochę czasu.

Aby monitorować postęp, użyj polecenia kubectl get service z argumentem --watch , jak pokazano w poniższym przykładzie:

kubectl get service javaee-cafe-cluster --watch

Powinny zostać wyświetlone dane wyjściowe podobne do następującego przykładu:

NAME                        TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)          AGE
javaee-cafe-cluster         LoadBalancer   10.0.251.169   52.152.189.57   80:31732/TCP     68s

Gdy adres EXTERNAL-IP zmieni się z oczekujące na rzeczywisty publiczny adres IP, naciśnij Ctrl+C, aby zatrzymać kubectl proces oglądania.

Jeśli upłynął jakiś czas między wykonaniem kroków w tej sekcji a poprzednim, upewnij się, że baza danych jest aktywna, jeśli jest to konieczne. Zobacz poprzednią notatkę dotyczącą wstrzymania bazy danych.

Otwórz przeglądarkę internetową na zewnętrzny adres IP usługi (52.152.189.57 w powyższym przykładzie), aby wyświetlić stronę główną aplikacji. Jeśli strona nie jest poprawnie załadowana, oznacza to, że aplikacja jest uruchamiana. Możesz poczekać chwilę i odświeżyć stronę później. Powinna zostać wyświetlona nazwa zasobnika replik aplikacji w lewym górnym rogu strony. Poczekaj kilka minut i odśwież stronę, aby wyświetlić inną nazwę zasobnika z powodu równoważenia obciążenia dostarczonego przez klaster usługi AKS.

Pomyślnie wdrożono aplikację Java liberty w usłudze AKS.

Uwaga

Obecnie aplikacja nie używa protokołu HTTPS. Zalecamy włączenie protokołu TLS przy użyciu własnych certyfikatów. Aby uzyskać więcej informacji, zobacz Używanie protokołu TLS z kontrolerem ruchu przychodzącego w usłudze Azure Kubernetes Service (AKS).

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 , 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

Więcej informacji można dowiedzieć się z odwołań używanych w tym przewodniku:

Aby włączyć usługę Azure Cache for Redis do aplikacji Java, zobacz Używanie usługi Azure Cache for Redis w języku Java z klientem Redis Redisson.

Aby zapoznać się z opcjami uruchamiania produktów WebSphere na platformie Azure, zobacz Co to są rozwiązania do uruchamiania rodziny produktów WebSphere na platformie Azure?