Udostępnij za pomocą


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 ręcznego wdrażania biblioteki 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 Enterprise Edition (EE), Jakarta EE lub MicroProfile w środowisku uruchomieniowym Open Liberty lub WebSphere Liberty.
  • Zbuduj obraz Docker aplikacji z az acr build, używając 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, które przyspiesza podróż do usługi AKS przy użyciu rozwiązania marketplace dostępnego w witrynie Azure Portal, zobacz Wdrażanie aplikacji Java za pomocą rozwiązania 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 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, wykonaj następujące kroki, aby zalogować się do subskrypcji platformy Azure:

  1. Otwórz interfejs wiersza polecenia platformy Azure lub program PowerShell, a następnie zaloguj się przy użyciu polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie do Azure przy użyciu Azure CLI.

    Uwaga

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

  2. Znajdź wersję i biblioteki zależne zainstalowane przy użyciu programu az version.

  3. Przeprowadź uaktualnienie do najnowszej wersji przy użyciu polecenia az upgrade.

Uwaga

Jeśli podczas korzystania z interfejsu wiersza polecenia platformy Azure zostanie wyświetlony monit o zainstalowanie rozszerzenia interfejsu wiersza polecenia platformy Azure, zrób to. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Używanie rozszerzeń i zarządzanie nimi za pomocą interfejsu wiersza polecenia platformy Azure.

Większość poleceń Azure CLI można wykonywać w programie PowerShell w taki sam sposób jak w powłoce Bash. Różnica istnieje tylko w przypadku używania zmiennych. W kolejnych sekcjach różnica jest omówiona na różnych kartach, jeśli zachodzi potrzeba.

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 przy użyciu az group create w eastus2 lokalizacji. Ta grupa zasobów jest później używana do tworzenia wystąpienia Azure Container Registry i klastra AKS.

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

Utwórz wystąpienie rejestru kontenerów

Użyj az acr create, aby utworzyć wystąpienie rejestru kontenerów. Poniższy przykład tworzy wystąpienie rejestru kontenerów o nazwie <your-unique-ACR-name>. Zastąp ten symbol zastępczy wartością unikatową na platformie Azure.

Uwaga

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

export REGISTRY_NAME=<your-unique-ACR-name>
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",

Pobierz nazwę serwera logowania dla wystąpienia rejestru kontenerów. Ta wartość jest potrzebna później podczas wdrażania obrazu aplikacji w klastrze AKS.

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

Tworzenie klastra AKS

Użyj polecenia az aks create, aby utworzyć klaster AKS, jak pokazano w poniższym przykładzie. W tym przykładzie tworzony jest klaster AKS o nazwie myAKSCluster z jednym węzłem, a dołączane jest do niego wystąpienie rejestru kontenerów. Wykonanie polecenia trwa kilka minut.

export CLUSTER_NAME=myAKSCluster
az aks create \
    --resource-group $RESOURCE_GROUP_NAME \
    --name $CLUSTER_NAME \
    --node-count 1 \
    --node-vm-size Standard_DS2_V2 \
    --generate-ssh-keys \
    --enable-managed-identity \
    --attach-acr $REGISTRY_NAME

Po zakończeniu polecenia zwraca on 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",

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

Aby zarządzać klastrem Kubernetes, wykonaj następujące czynności:

  1. Zainstaluj kubectlklienta wiersza polecenia Kubernetes przy użyciu polecenia az aks install-cli, jak pokazano w poniższym przykładzie:

    az aks install-cli
    
  2. Użyj az aks get-credentials do skonfigurowania kubectl do połączenia z klastrem Kubernetes. To polecenie pobiera poświadczenia i konfiguruje interfejs wiersza polecenia platformy Kubernetes do ich użycia, jak pokazano w poniższym przykładzie:

    Uwaga

    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.

    az aks get-credentials \
        --resource-group $RESOURCE_GROUP_NAME \
        --name $CLUSTER_NAME \
        --overwrite-existing \
        --admin
    
  3. Sprawdź połączenie z klastrem przy użyciu polecenia kubectl get , aby zwrócić listę węzłów klastra, jak pokazano w poniższym przykładzie:

    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 Ready:

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

Tworzenie bazy danych SQL platformy Azure

Utwórz pojedynczą bazę danych usługi Azure SQL Database dla aplikacji, wykonując następujące kroki:

  1. Użyj następujących poleceń, aby ustawić 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
    
  2. Użyj następujących poleceń, aby utworzyć pojedynczą bazę danych 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 \
        --resource-group $RESOURCE_GROUP_NAME \
        --name $SQL_SERVER_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 \
        --name $DB_NAME \
        --server $SQL_SERVER_NAME \
        --edition GeneralPurpose \
        --compute-model Serverless \
        --family Gen5 \
        --capacity 2
    

Uwaga

Należy utworzyć serwer Azure SQL z wyłączonym uwierzytelnianiem SQL ze względów bezpieczeństwa. Tylko identyfikator Entra firmy Microsoft jest używany do uwierzytelniania na serwerze. Aby uzyskać więcej informacji na temat włączania uwierzytelniania SQL, zobacz az sql server create.

Tworzenie połączenia usługi w AKS za pomocą Service Connector

Użyj następujących poleceń, aby utworzyć połączenie między klastrem AKS a bazą danych SQL, używając identyfikatora obciążenia Microsoft Entra za pomocą Service Connector. Aby uzyskać więcej informacji, zobacz Create a service connection in AKS with Service Connector (Tworzenie połączenia usługi w usłudze AKS za pomocą łącznika usługi).

# 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

Rozwiązywanie problemów z komunikatami o błędach

az aks connection create sql Jeśli polecenie generuje komunikat o błędzie, znajdź komunikat o błędzie na poniższej liście, a następnie skorzystaj z instrukcji, aby rozwiązać problem:

  • Dependency pyodbc can't be installed, please install it manually

    Ten komunikat o błędzie wskazuje, że pyodbc nie można zainstalować pakietu, najprawdopodobniej z powodu problemów z uprawnieniami. Rozwiąż problem, wykonując następujące czynności:

    1. Znajdź lokalizację języka Python, która współpracuje z interfejsem wiersza polecenia platformy Azure, uruchamiając następujące polecenie:

      az --version
      

      Dane wyjściowe powinny zawierać Python location na przykład Python location '/opt/az/bin/python3'.

    2. Skopiuj wartość Python location.

    3. Użyj następującego polecenia, aby zainstalować pakiet pyodbc w trybie sudo. Zastąp element <python-location> lokalizacją języka Python skopiowaną w poprzednim kroku.

      sudo <python-location> -m pip install pyodbc
      
  • libodbc.so: nie można otworzyć pliku obiektu udostępnionego: nie ma takiego pliku lub katalogu

  • Ręcznie zainstaluj program odbc 17/18 dla programu SQL Server

    Te błędy wskazują, że odbc sterownik nie jest zainstalowany. Rozwiąż problem, wykonując następujące czynności:

    Uwaga

    Należy użyć identyfikatora obciążenia Entra firmy Microsoft do bezpiecznego dostępu do usługi Azure SQL Database bez korzystania z uwierzytelniania SQL. Jeśli musisz użyć uwierzytelniania SQL, zignoruj kroki opisane w tej sekcji i użyj nazwy użytkownika i hasła, aby nawiązać połączenie z usługą Azure SQL Database.

    1. Jeśli używasz systemu Linux, otwórz pozycję Zainstaluj sterownik Microsoft ODBC dla programu SQL Server (Linux). Jeśli używasz systemu MacOS, otwórz pozycję Zainstaluj sterownik Microsoft ODBC dla programu SQL Server (macOS).

    2. Postępuj zgodnie z instrukcjami, aby zainstalować sterownik Microsoft ODBC (18 lub 17) dla programu SQL Server.

    3. Ponownie użyj az aks connection create sql polecenia , aby utworzyć połączenie z usługą, jak pokazano w poniższym przykładzie:

      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
      

Pobierz konto usługi i sekret utworzony przez łącznik usługi

Aby przeprowadzić uwierzytelnianie w usłudze Azure SQL Database, wykonaj następujące czynności:

  1. Pobierz konto usługi i tajny klucz utworzony przez łącznik usługi, postępując zgodnie z instrukcjami w sekcji Zaktualizuj swój kontener w temacie Samouczek: łączenie aplikacji AKS z usługą Azure SQL Database. Użyj opcji , aby bezpośrednio utworzyć wdrożenie przy użyciu udostępnionego przykładowego fragmentu kodu YAML.

    Uwaga

    Tajemnica utworzona przez łącznik usługi zawiera wartość AZURE_SQL_CONNECTIONSTRING, która jest łańcuchem połączenia bez hasła do bazy danych Azure SQL Database. Aby uzyskać więcej informacji, zobacz przykładową wartość z sekcji Tożsamość zarządzana przypisana przez użytkownika w Integracja bazy danych Azure SQL z łącznikiem usługi.

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

    serviceAccountName: <service-account-name>
    containers:
    - name: raw-linux
       envFrom:
          - secretRef:
             name: <secret-name>
    
  3. Zdefiniuj zmienne środowiskowe przy użyciu następujących poleceń. Pamiętaj, aby zastąpić <service-account-name> oraz <secret-name> wartościami, które skopiowałeś 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.

Instalowanie operatora Open Liberty

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

Zainstaluj operator Open Liberty za pomocą następujących poleceń:

Uwaga

Ten przewodnik kieruje Cię do zainstalowania operatora Open Liberty. Aby użyć operatora WebSphere Liberty, zobacz Instalowanie operatora WebSphere Liberty za pomocą interfejsu wiersza polecenia platformy Kubernetes.

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

# Install the Open Liberty Operator
export OPERATOR_VERSION=1.4.2
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

# Remove the downloaded files
rm -rf overlays base

Konfigurowanie i kompilowanie obrazu aplikacji

Aby wdrożyć i uruchomić aplikację Liberty w klastrze AKS, konteneryzuj aplikację jako obraz Docker, używając Open Liberty Images lub WebSphere Liberty container images.

Wykonaj kroki opisane w tej sekcji, aby wdrożyć przykładową aplikację w środowisku uruchomieniowym Liberty. W tych krokach użyto narzędzia Maven.

Sprawdź aplikację

Sklonuj przykładowy kod dla tego przewodnika, używając następujących poleceń. Przykład znajduje się w repozytorium GitHub Open Liberty/WebSphere Liberty w usłudze Azure Kubernetes Service Samples , który zawiera kilka przykładów. W tym artykule użyto przykładu java-app .

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

Jeśli zostanie wyświetlony komunikat o stanie detached HEAD, ten komunikat jest bezpieczny do zignorowania. Oznacza to po prostu, że sprawdziłeś tag. Sklonowanie repozytorium tworzy następującą strukturę plików:

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 docker znajdują się dwa pliki do utworzenia obrazu aplikacji z użyciem 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ą używaną azure.sql.connectionstring 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ść azure-identity, 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 biblioteki azure-identity do uwierzytelniania w usłudze Azure SQL Database przy użyciu uwierzytelniania firmy Microsoft Entra, co jest zalecane w przypadku zagadnień dotyczących zabezpieczeń. Aby uzyskać więcej informacji na temat korzystania z uwierzytelniania SQL w aplikacji Liberty, zobacz Połączenia relacyjnej bazy danych z łącznością bazy danych Java (JDBC).

Kompilowanie projektu

Po zebraniu niezbędnych właściwości skompiluj aplikację przy użyciu następujących poleceń. 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

Kompilowanie obrazu dla wdrożenia usługi AKS

Użyj az acr build do zbudowania obrazu, 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 przesyła artefakty wskazane w pliku Dockerfile do instancji rejestru kontenerów, buduje obraz i przechowuje go w instancji rejestru kontenerów.

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 przy użyciu następujących poleceń:

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

    kubectl get openlibertyapplication javaee-cafe-cluster --watch
    

    Następujące dane wyjściowe są typowe. Użyj Ctrl+C , aby zakończyć pracę.

    NAME                  IMAGE                                        EXPOSED   RECONCILED   RESOURCESREADY   READY   WARNING   AGE
    javaee-cafe-cluster   <registry-name>.azurecr.io/javaee-cafe:v1              True         True             True              57s
    
  3. Ustal, czy wdrożenie utworzone przez operator jest gotowe przy użyciu następującego polecenia:

    kubectl get deployment javaee-cafe-cluster --watch
    

    Następujące dane wyjściowe są typowe:

    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.

Użyj kubectl get service polecenia, aby uzyskać zewnętrzny adres IP usługi, kiedy jest dostępny, jak pokazano w poniższym przykładzie:

export APP_URL=http://$(kubectl get service javaee-cafe-cluster -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo $APP_URL

Uwaga

Jeśli nie widzisz prawidłowego adresu URL z danych wyjściowych, zaczekaj chwilę i ponownie uruchom polecenie.

Otwórz adres URL w przeglądarce internetowej i sprawdź stronę główną aplikacji. Jeśli strona nie zostanie załadowana poprawnie, odśwież stronę później po uruchomieniu aplikacji. Powinieneś widzieć nazwę zasobnika replik aplikacji w lewym górnym rogu strony. Poczekaj kilka minut i odśwież stronę, aby wyświetlić inną nazwę podu z powodu równoważenia obciążenia zapewnianego przez klaster AKS.

Zrzut ekranu przedstawiający stronę główną aplikacji Wolności w języku Java.

Uwaga

Obecnie aplikacja nie używa protokołu HTTPS. Zalecamy włączenie protokołu Transport Layer Security (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

Aby dowiedzieć się więcej, zapoznaj się z następującymi odwołaniami używanymi w tym przewodniku:

Aby dołączyć usługę Azure Cache for Redis do aplikacji Java, zobacz Szybki start: 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?