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
- Subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Przygotuj maszynę lokalną z zainstalowanym systemem Windows, macOS lub Linux.
- Zainstaluj interfejs wiersza polecenia platformy Azure w wersji 2.61.0 lub nowszej, aby uruchomić polecenia interfejsu wiersza polecenia platformy Azure.
- Zaloguj się przy użyciu interfejsu wiersza polecenia platformy Azure przy użyciu polecenia az login . Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Zobacz Logowanie się do platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure, aby uzyskać inne opcje logowania.
- 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źć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
- Zainstaluj implementację języka Java Standard Edition (SE) w wersji 17 (na przykład Eclipse Open J9).
- Zainstaluj program Maven w wersji 3.5.0 lub nowszej.
- Upewnij się, że usługa Git jest zainstalowana.
- Upewnij się, że masz przypisaną
Owner
rolę lubContributor
role iUser Access Administrator
w subskrypcji. Przypisanie można sprawdzić, wykonując kroki opisane w temacie Wyświetlanie listy przypisań ról platformy Azure przy użyciu witryny Azure Portal.
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:
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>
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_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ść 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.
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. 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ź dohttp://localhost:9080/
witryny w przeglądarce, aby sprawdzić, czy aplikacja jest dostępna, a wszystkie funkcje działają.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:
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
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
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
Poczekaj, aż zobaczysz
3/3
pod kolumnąREADY
i3
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.
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:
- 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 Server
- Wtyczka Liberty Maven
- Otwieranie obrazów kontenera Liberty
- Obrazy kontenerów WebSphere Liberty
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?