Udostępnij za pośrednictwem


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

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.

  1. 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.

  2. Wybierz pozycję Utwórz.

  3. W okienku Podstawy :

    1. 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.
    2. W obszarze Region wybierz region, który jest blisko Ciebie. Na przykład wybierz pozycję Wschodnie stany USA 2.
  4. 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.

  5. 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ę.

  6. 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.
  7. 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.

  1. W rogu dowolnej strony portalu wybierz przycisk menu, a następnie wybierz pozycję Grupy zasobów.

  2. 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.

  3. Na liście zasobów w grupie zasobów wybierz zasób z wartością Typ rejestru kontenerów.

  4. W okienku nawigacji w obszarze Ustawienia wybierz pozycję Klucze dostępu.

  5. 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 i username password rejestru kontenerów. Nadal można używać nazwy użytkownika i hasła za pomocą polecenia docker login i docker push. Użycie nazwy użytkownika i hasła jest mniej bezpieczne niż uwierzytelnianie bez hasła.

  6. Wróć do grupy zasobów, w której wdrożono zasoby.

  7. W sekcji Ustawienia wybierz pozycję Wdrożenia.

  8. Wybierz najbardziej najwięcej wdrożeń na liście. Wartość Nazwa wdrożenia jest zgodna z identyfikatorem wydawcy oferty. Zawiera on ciąg ibm.

  9. W okienku nawigacji wybierz pozycję Dane wyjściowe.

  10. 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 lub appDeploymentYaml 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 bok secretName .

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.

  1. Przejdź do witryny Azure Portal i przejdź do utworzonej wcześniej grupy zasobów.
  2. Na liście zasobów w grupie zasobów wybierz zasób z wartością Typ bramy aplikacji.
  3. Wybierz pozycję Kontrola dostępu (IAM). Następnie rozwiń węzeł Dodaj i wybierz pozycję Dodaj przypisanie roli.
  4. Na karcie Rola wybierz pozycję Role administratora uprzywilejowanego. Następnie wybierz pozycję Współautor. Wybierz Dalej.
  5. 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.
  6. 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:

  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. 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_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ść 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-pluginprogramu , 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.

  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. Powinien zostać wyświetlony komunikat podobny do [INFO] [AUDIT ] CWWKZ0001I: Application javaee-cafe started in 18.235 seconds. w danych wyjściowych polecenia. Przejdź do http://localhost:9080/ witryny w przeglądarce i sprawdź, czy aplikacja jest dostępna, a wszystkie funkcje działają.

  3. 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:

  1. Połącz się z klastrem usługi AKS.

    Wklej wartość w cmdToConnectToCluster powłoce i uruchom polecenie .

  2. 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
    
  3. 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.

Zrzut ekranu przedstawiający pomyślnie wdrożona aplikacja Java liberty w usłudze AKS.

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:

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?.