이 문서에서는 Azure에서 Open/WebSphere Liberty를 수동으로 배포하기 위한 단계별 지침을 제공합니다.
특히 이 문서에서는 다음 작업을 수행하는 방법을 설명합니다.
- Open Liberty 또는 WebSphere Liberty 런타임에서 Java, EE(Java Enterprise Edition), Jakarta EE 또는 MicroProfile 애플리케이션을 실행합니다.
- Liberty 컨테이너 이미지를 사용하여
az acr build
애플리케이션 Docker 이미지를 빌드합니다. - Liberty Operator를 사용하여 AKS(Azure Kubernetes Service) 클러스터에 컨테이너화된 애플리케이션을 배포합니다.
Liberty 운영자는 Kubernetes 클러스터에서 실행되는 애플리케이션의 배포 및 관리를 간소화합니다. Open Liberty Operator 또는 WebSphere Liberty Operator를 사용하여 추적 및 덤프 수집과 같은 고급 작업을 수행할 수도 있습니다.
Azure Portal에서 사용할 수 있는 Marketplace 솔루션을 사용하여 AKS로의 여정을 가속화하는 자동화된 솔루션은 AKS(Azure Kubernetes Service) 클러스터에서 Open Liberty/WebSphere Liberty를 사용하여 Java 애플리케이션 배포를 참조하세요.
Open Liberty에 대한 자세한 내용은 Open Liberty 프로젝트 페이지를 참조하세요. IBM WebSphere Liberty에 대한 자세한 내용은 WebSphere Liberty 제품 페이지를 참조하세요.
이 문서는 빠르게 배포할 수 있도록 지원하기 위한 것입니다. 프로덕션으로 이동하기 전에 Liberty의 튜닝을 탐색해야 합니다.
피드백을 제공하거나 Azure 솔루션에서 WebSphere를 개발하는 엔지니어링 팀과 함께 마이그레이션 시나리오를 긴밀히 작업하려는 경우 WebSphere 마이그레이션 대한 이 간단한 설문 조사를 작성하고 연락처 정보를 포함합니다. 긴밀한 공동 작업을 시작할 수 있도록 프로그램 관리자, 설계자 및 엔지니어 팀이 즉시 연락드립니다.
필수 구성 요소
- Azure 구독 Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
- Azure CLI 버전 2.71.0 이상
- JAVA SE(Standard Edition), 버전 17 - 예: Eclipse Open J9.
- Maven 버전 3.5.0 이상
- Git
- Azure 구독의
Owner
역할 또는Contributor
및User Access Administrator
역할. Azure Portal을 사용하여 Azure 역할 할당 나열의 단계에 따라 할당을 확인할 수 있습니다.
Azure에 로그인
아직 로그인하지 않은 경우 다음 단계를 사용하여 Azure 구독에 로그인합니다.
Azure CLI 또는 PowerShell을 열고 다음을 사용하여
az login
로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI사용하여 Azure에 로그인을 참조하세요.참고
Azure 자격 증명과 연결된 여러 Azure 테넌트가 있는 경우 로그인할 테넌트만 지정해야 합니다.
--tenant
옵션을 사용하여 테넌트를 지정할 수 있습니다. 예를 들어,az login --tenant contoso.onmicrosoft.com
.az version
을 사용하여 설치된 버전 및 종속 라이브러리를 찾습니다.를 사용하여
az upgrade
최신 버전으로 업그레이드합니다.
참고
Azure CLI를 사용하는 경우 Azure CLI 확장을 설치하라는 메시지가 표시되면 그렇게 합니다. 확장에 대한 자세한 내용은 Azure CLI로 확장 사용 및 관리를 참조하세요.
Bash와 동일한 방식으로 PowerShell에서 대부분의 Azure CLI 명령을 실행할 수 있습니다. 차이점은 변수를 사용하는 경우에만 존재합니다. 다음 섹션에서는 필요할 때 다른 탭에서 차이점을 해결합니다.
리소스 그룹 만들기
Azure 리소스 그룹은 Azure 리소스가 배포되고 관리되는 논리 그룹입니다.
java-liberty-project
위치에 az group create
을(를) 사용하여 eastus2
라는 리소스 그룹을 만듭니다. 이 리소스 그룹은 나중에 Azure Container Registry 인스턴스 및 AKS 클러스터를 만드는 데 사용됩니다.
export RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --___location eastus2
컨테이너 레지스트리 인스턴스 만들기
컨테이너 레지스트리 인스턴스를 만드는 데 사용합니다 az acr create
. 다음 예제에서는 라는 <your-unique-ACR-name>
컨테이너 레지스트리 인스턴스를 만듭니다. 이 자리 표시자를 Azure에서 고유한 값으로 대체하십시오.
참고
이 문서에서는 Azure Container Registry에 권장되는 암호 없는 인증 메커니즘을 사용합니다.
docker login
을 사용하여 사용자 이름과 암호를 얻은 후에도 az acr credential show
을 사용하여 사용자 이름과 암호를 사용할 수 있습니다. 그러나 사용자 이름과 암호를 사용하는 것은 암호 없는 인증보다 안전하지 않습니다.
export REGISTRY_NAME=<your-unique-ACR-name>
az acr create \
--resource-group $RESOURCE_GROUP_NAME \
--name $REGISTRY_NAME \
--sku Basic
잠시 후 다음 줄을 포함하는 JSON 출력이 표시됩니다.
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "java-liberty-project",
컨테이너 레지스트리 인스턴스의 로그인 서버 이름을 검색합니다. 나중에 AKS 클러스터에 애플리케이션 이미지를 배포할 때 이 값이 필요합니다.
export LOGIN_SERVER=$(az acr show \
--name $REGISTRY_NAME \
--query 'loginServer' \
--output tsv)
AKS 클러스터 만들기
다음 예제와 같이 AKS 클러스터를 만드는 데 사용합니다 az aks create
. 이 예제에서는 하나의 노드로 명명된 myAKSCluster
AKS 클러스터를 만들고 컨테이너 레지스트리 인스턴스를 연결합니다. 명령을 완료하는 데 몇 분 정도 걸립니다.
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
명령이 완료되면 다음 출력을 포함하여 클러스터에 대한 JSON 형식 정보를 반환합니다.
"nodeResourceGroup": "MC_java-liberty-project_myAKSCluster_eastus2",
"privateFqdn": null,
"provisioningState": "Succeeded",
"resourceGroup": "java-liberty-project",
AKS 클러스터에 연결
다음 단계를 사용하여 Kubernetes 클러스터를 관리합니다.
Kubernetes 명령줄 클라이언트인
kubectl
를 설치하려면az aks install-cli
를 사용하세요. 다음 예제를 참조하십시오.az aks install-cli
az aks get-credentials
을(를) 사용하여kubectl
을(를) Kubernetes 클러스터에 연결하도록 구성합니다. 이 명령은 다음 예제와 같이 자격 증명을 다운로드하고 이를 사용하도록 Kubernetes CLI를 구성합니다.참고
이 명령은 ~/.kube/config인 Kubernetes 구성 파일의 기본 위치를 사용합니다. 를 사용하여
--file
Kubernetes 구성 파일의 다른 위치를 지정할 수 있습니다.az aks get-credentials \ --resource-group $RESOURCE_GROUP_NAME \ --name $CLUSTER_NAME \ --overwrite-existing \ --admin
다음 예제와 같이 클러스터 노드 목록을 반환하는 데 사용하여
kubectl get
클러스터에 대한 연결을 확인합니다.kubectl get nodes
다음 예제 출력은 이전 단계에서 만든 단일 노드를 보여줍니다. 노드의 상태가 다음과 같은지 확인합니다
Ready
.NAME STATUS ROLES AGE VERSION aks-nodepool1-xxxxxxxx-yyyyyyyyyy Ready <none> 76s v1.29.9
Azure SQL Database 만들기
다음 단계를 사용하여 앱에 대한 Azure SQL Database 단일 데이터베이스를 만듭니다.
다음 명령을 사용하여 데이터베이스 관련 환경 변수를 설정합니다. Azure SQL Database 서버의 고유한 이름으로 대체
<your-unique-sql-server-name>
합니다.export SQL_SERVER_NAME=<your-unique-sql-server-name> export DB_NAME=demodb
다음 명령을 사용하여 단일 데이터베이스를 만들고 현재 로그인한 사용자를 Microsoft Entra 관리자로 설정합니다. 자세한 내용은 빠른 시작: 단일 데이터베이스 만들기 - 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
참고
보안 고려 사항에 대해 SQL 인증을 사용하지 않도록 설정된 Azure SQL 서버를 만듭니다. Microsoft Entra ID만 서버에 인증하는 데 사용됩니다. SQL 인증을 사용하도록 설정하는 방법에 대한 자세한 내용은 다음을 참조하세요 az sql server create
.
서비스 커넥터를 사용하여 AKS에서 서비스 연결 만들기
다음 명령을 사용하여 서비스 커넥터에서 Microsoft Entra 워크로드 ID를 사용하여 AKS 클러스터와 SQL 데이터베이스 간에 연결을 만듭니다. 자세한 내용은 서비스 커넥터를 사용하여 AKS에서 서비스 연결 만들기를 참조하세요.
# 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
오류 메시지 문제 해결
명령에서 az aks connection create sql
오류 메시지를 생성하는 경우 다음 목록에서 오류 메시지를 찾은 다음 지침을 사용하여 문제를 해결합니다.
Dependency pyodbc can't be installed, please install it manually
이 오류 메시지는 사용 권한 문제로 인해 패키지를 설치할 수 없음을 나타냅니다
pyodbc
. 다음 단계를 사용하여 문제를 해결합니다.다음 명령을 실행하여 Azure CLI에서 작동하는 Python의 위치를 찾습니다.
az --version
출력에는
Python ___location
가 포함되어야 합니다. 예를 들어,Python ___location '/opt/az/bin/python3'
와 같이.Python ___location
값을 복사합니다.다음 명령어를 사용하여
pyodbc
패키지를sudo
모드로 설치합니다. 복사한 Python 위치로<python-___location>
을 이전 단계에서 바꿉니다.sudo <python-___location> -m pip install pyodbc
libodbc.so: 공유 개체 파일을 열 수 없습니다. 이러한 파일 또는 디렉터리가 없습니다.
SQL Server용 odbc 17/18을 수동으로 설치하세요.
이러한 오류는 드라이버가
odbc
설치되지 않았음을 나타냅니다. 다음 단계를 사용하여 문제를 해결합니다.참고
SQL 인증을 사용하지 않고 Azure SQL Database에 안전하게 액세스하려면 Microsoft Entra 워크로드 ID를 사용해야 합니다. SQL 인증을 사용해야 하는 경우 이 섹션의 단계를 무시하고 사용자 이름과 암호를 사용하여 Azure SQL Database에 연결합니다.
Linux를 사용하는 경우 Sql Server용 Microsoft ODBC 드라이버 설치(Linux)를 엽니다. MacOS를 사용하는 경우 MacOS(SQL Server용 Microsoft ODBC 드라이버) 설치를 엽니다.
지침에 따라 SQL Server용 Microsoft ODBC 드라이버(18 또는 17)를 설치합니다.
다음 예제와 같이 서비스 연결을 만들려면 다시 사용합니다
az aks connection create sql
.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
서비스 커넥터에서 만든 서비스 계정 및 비밀 가져오기
Azure SQL Database를 사용하여 인증하려면 다음 단계를 사용합니다.
자습서의 컨테이너 업데이트 섹션에 있는 지침에 따라 Service Connector에서 만든 서비스 계정 및 비밀을 가져옵니다. AKS 앱을 Azure SQL Database에 연결합니다. 이 옵션을 사용하여 제공된 YAML 샘플 코드 조각을 사용하여 배포를 직접 만듭니다.
참고
Service Connector에서 만든 비밀에는 Azure SQL Database에 대한 암호 없는 연결 문자열인 값이 포함되어
AZURE_SQL_CONNECTIONSTRING
있습니다. 자세한 내용은 Azure SQL Database와 Service Connector 통합하기의 사용자 할당 관리 ID 섹션의 샘플 값을 참조하세요.예제와 같이 샘플 Kubernetes 배포 YAML의 강조 표시된 섹션에서
serviceAccountName
및secretRef.name
값을 복사합니다.serviceAccountName: <service-account-name> containers: - name: raw-linux envFrom: - secretRef: name: <secret-name>
다음 명령을 사용하여 환경 변수를 정의합니다. 이전 단계에서 복사한 값으로 바꿔
<service-account-name>
<secret-name>
야 합니다.export SERVICE_ACCOUNT_NAME=<service-account-name> export SECRET_NAME=<secret-name>
이러한 값은 다음 섹션에서 Liberty 애플리케이션을 AKS 클러스터에 배포하는 데 사용됩니다.
Open Liberty 연산자 설치
이 섹션에서는 AKS 클러스터에 Open Liberty Operator를 설치하여 Liberty 애플리케이션을 호스트합니다.
다음 명령을 사용하여 Open Liberty 연산 자를 설치합니다.
참고
이 가이드에서는 Open Liberty 운영자를 설치하도록 지시합니다. WebSphere Liberty 연산자를 사용하려면 Kubernetes CLI를 사용하여 WebSphere Liberty 연산자 설치를 참조하세요.
# 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
애플리케이션 이미지 구성 및 빌드
AKS 클러스터에서 Liberty 애플리케이션을 배포하고 실행하려면 Open Liberty Images 또는 WebSphere Liberty 컨테이너 이미지를 사용하여 애플리케이션을 Docker 이미지로 컨테이너화합니다.
이 섹션의 단계에 따라 Liberty 런타임에 샘플 애플리케이션을 배치합니다. 이러한 단계에서는 Maven을 사용합니다.
애플리케이션을 확인하세요
다음 명령을 사용하여 이 가이드의 샘플 코드를 복제합니다. 샘플은 몇 가지 샘플이 포함된 Azure Kubernetes Service 샘플 GitHub 리포지토리의 Open Liberty/WebSphere Liberty에 있습니다. 이 문서에서는 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
detached HEAD
상태에 있는 것에 대한 메시지가 표시되면 이 메시지는 무시해도 안전합니다. 그냥 태그를 확인했음을 의미합니다. 리포지토리를 복제하면 다음 파일 구조가 만들어집니다.
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
Java, 리소스 및 웹앱 디렉터리에는 응용 프로그램 예제의 소스 코드가 포함됩니다. 이 코드는 jdbc/JavaEECafeDB
(이)라는 데이터 원본을 선언하고 사용합니다.
aks 디렉터리에서 openlibertyapplication-passwordless-db.yaml 파일은 애플리케이션 이미지를 배포하는 데 사용됩니다. docker 디렉터리에는 Open Liberty 또는 WebSphere Liberty를 사용하여 애플리케이션 이미지를 만들기 위한 두 개의 파일이 있습니다.
liberty/config 디렉터리에서 server.xml 파일을 사용하여 Open Liberty 및 WebSphere Liberty 클러스터에 대한 데이터베이스 연결을 구성합니다. Azure SQL Database에 azure.sql.connectionstring
연결하는 데 사용되는 변수를 정의합니다.
pom.xml 파일은 프로젝트에 대한 구성 정보를 포함하는 Maven POM(프로젝트 개체 모델) 파일입니다.
pom-azure-identity.xml 파일은 Microsoft Entra ID를 사용하여 Azure 서비스에 인증하는 데 사용되는 azure-identity
종속성을 선언합니다.
참고
이 샘플에서는 azure-identity
라이브러리를 사용하여 보안 고려 사항에 권장되는 Microsoft Entra 인증을 사용하여 Azure SQL Database에 인증합니다. Liberty 애플리케이션에서 SQL 인증을 사용하는 방법에 대한 자세한 내용은 JDBC(Java Database Connectivity)를 사용한 관계형 데이터베이스 연결을 참조하세요.
프로젝트 빌드
이제 필요한 속성을 수집했으므로 다음 명령을 사용하여 애플리케이션을 빌드합니다. 프로젝트의 POM 파일은 환경에서 많은 변수를 읽습니다. Maven 빌드의 일부로 이러한 변수는 src/main/aks에 있는 YAML 파일의 값을 채우는 데 사용됩니다. 원하는 경우 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
AKS 배포를 위한 이미지 빌드
다음 예제와 같이 이미지를 빌드하는 데 사용합니다 az acr build
.
cd $BASE_DIR/java-app/target
az acr build \
--registry ${REGISTRY_NAME} \
--image javaee-cafe:v1 \
.
이 az acr build
명령은 Dockerfile 에 지정된 아티팩트들을 컨테이너 레지스트리 인스턴스에 업로드하고, 이미지를 빌드하고, 컨테이너 레지스트리 인스턴스에 저장합니다.
AKS 클러스터에 애플리케이션 배포
다음 단계를 사용하여 AKS 클러스터에 Liberty 애플리케이션을 배포합니다.
다음 명령을 사용하여 배포 파일을 적용합니다.
cd $BASE_DIR/java-app/target # Apply deployment file kubectl apply -f openlibertyapplication-passwordless-db.yaml
다음 명령을 사용하여
OpenLibertyApplication
인스턴스가 생성되었는지 여부를 확인합니다.kubectl get openlibertyapplication javaee-cafe-cluster --watch
다음 출력은 일반적입니다. Ctrl+C를 사용하여 종료합니다.
NAME IMAGE EXPOSED RECONCILED RESOURCESREADY READY WARNING AGE javaee-cafe-cluster <registry-name>.azurecr.io/javaee-cafe:v1 True True True 57s
다음 명령을 사용하여 운영자가 만든 배포가 준비되었는지 여부를 확인합니다.
kubectl get deployment javaee-cafe-cluster --watch
다음과 같은 출력이 일반적입니다.
NAME READY UP-TO-DATE AVAILABLE AGE javaee-cafe-cluster 0/3 3 0 20s
3/3
열 아래에READY
가 표시되고,3
열 아래에AVAILABLE
가 표시될 때까지 기다렸다가, Ctrl+C 키를 사용하여kubectl
감시 프로세스를 중지하십시오.
애플리케이션 테스트
애플리케이션이 실행되면 Kubernetes 부하 분산 장치 서비스가 애플리케이션 프런트 엔드를 인터넷에 공개합니다. 이 프로세스를 완료하는 데 다소 시간이 걸릴 수 있습니다.
다음 예제와 같이 사용 가능한 경우 서비스의 외부 IP 주소를 가져오는 데 사용합니다 kubectl get service
.
export APP_URL=http://$(kubectl get service javaee-cafe-cluster -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo $APP_URL
참고
출력에서 유효한 URL이 표시되지 않으면 잠시 기다렸다가 명령을 다시 실행합니다.
웹 브라우저에서 URL을 열고 애플리케이션 홈페이지를 확인합니다. 페이지가 제대로 로드되지 않으면 앱이 시작된 후 나중에 페이지를 새로 고칩니다. 페이지 왼쪽 위에 애플리케이션 복제본의 pod 이름이 표시되어야 합니다. 몇 분 기다렸다가 페이지를 새로 고치면 AKS 클러스터의 부하 분산으로 인해 다른 Pod 이름이 표시됩니다.
참고
현재 애플리케이션은 HTTPS를 사용하지 않습니다. 자체 인증서를 사용하여 TLS(전송 계층 보안)를 사용하도록 설정하는 것이 좋습니다. 자세한 내용은 AKS(Azure Kubernetes Service)에서 수신 컨트롤러와 함께 TLS 사용을 참조하세요.
리소스 정리
Azure 요금을 방지하려면 불필요한 리소스를 정리해야 합니다. 클러스터가 더 이상 필요하지 않은 경우 리소스 그룹, 컨테이너 서비스, 컨테이너 레지스트리, 데이터베이스 및 모든 관련 리소스를 제거하는 데 사용합니다 az group delete
.
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
다음 단계
이 가이드에 사용된 다음 참조에서 자세히 알아볼 수 있습니다.
- AKS(Azure Kubernetes Service)란?
- 자습서: AKS 앱을 Azure SQL Database에 연결
- 서비스 커넥터와 Azure SQL Database 통합
- Microsoft Entra 인증을 사용하여 연결
- 오픈 리버티
- Open Liberty 운영자
- Open Liberty Server 구성 개요
- Liberty Maven 플러그 인
- 자유 이미지 열기
- WebSphere Liberty 컨테이너 이미지
Azure Cache for Redis를 Java 앱에 통합하려면 빠른 시작을 참조하세요. Redisson Redis 클라이언트와 함께 Java에서 Azure Cache for Redis 사용
Azure에서 WebSphere 제품을 실행하는 옵션을 살펴보려면 Azure 에서 WebSphere 제품군을 실행하는 솔루션은 무엇인가요?