다음을 통해 공유


AKS(Azure Kubernetes Service) 클러스터에서 Open Liberty 또는 WebSphere Liberty를 사용하여 Java 애플리케이션 수동 배포

이 문서에서는 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 구독에 로그인합니다.

  1. Azure CLI 또는 PowerShell을 열고 다음을 사용하여 az login로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI사용하여 Azure에 로그인을 참조하세요.

    참고

    Azure 자격 증명과 연결된 여러 Azure 테넌트가 있는 경우 로그인할 테넌트만 지정해야 합니다. --tenant 옵션을 사용하여 테넌트를 지정할 수 있습니다. 예를 들어, az login --tenant contoso.onmicrosoft.com.

  2. az version을 사용하여 설치된 버전 및 종속 라이브러리를 찾습니다.

  3. 를 사용하여 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 클러스터를 관리합니다.

  1. Kubernetes 명령줄 클라이언트인 kubectl를 설치하려면 az aks install-cli를 사용하세요. 다음 예제를 참조하십시오.

    az aks install-cli
    
  2. az aks get-credentials을(를) 사용하여 kubectl을(를) Kubernetes 클러스터에 연결하도록 구성합니다. 이 명령은 다음 예제와 같이 자격 증명을 다운로드하고 이를 사용하도록 Kubernetes CLI를 구성합니다.

    참고

    이 명령은 ~/.kube/configKubernetes 구성 파일의 기본 위치를 사용합니다. 를 사용하여 --fileKubernetes 구성 파일의 다른 위치를 지정할 수 있습니다.

    az aks get-credentials \
        --resource-group $RESOURCE_GROUP_NAME \
        --name $CLUSTER_NAME \
        --overwrite-existing \
        --admin
    
  3. 다음 예제와 같이 클러스터 노드 목록을 반환하는 데 사용하여 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 단일 데이터베이스를 만듭니다.

  1. 다음 명령을 사용하여 데이터베이스 관련 환경 변수를 설정합니다. Azure SQL Database 서버의 고유한 이름으로 대체 <your-unique-sql-server-name> 합니다.

    export SQL_SERVER_NAME=<your-unique-sql-server-name>
    export DB_NAME=demodb
    
  2. 다음 명령을 사용하여 단일 데이터베이스를 만들고 현재 로그인한 사용자를 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 . 다음 단계를 사용하여 문제를 해결합니다.

    1. 다음 명령을 실행하여 Azure CLI에서 작동하는 Python의 위치를 찾습니다.

      az --version
      

      출력에는 Python ___location가 포함되어야 합니다. 예를 들어, Python ___location '/opt/az/bin/python3'와 같이.

    2. Python ___location 값을 복사합니다.

    3. 다음 명령어를 사용하여 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에 연결합니다.

    1. Linux를 사용하는 경우 Sql Server용 Microsoft ODBC 드라이버 설치(Linux)를 엽니다. MacOS를 사용하는 경우 MacOS(SQL Server용 Microsoft ODBC 드라이버) 설치를 엽니다.

    2. 지침에 따라 SQL Server용 Microsoft ODBC 드라이버(18 또는 17)를 설치합니다.

    3. 다음 예제와 같이 서비스 연결을 만들려면 다시 사용합니다 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를 사용하여 인증하려면 다음 단계를 사용합니다.

  1. 자습서의 컨테이너 업데이트 섹션에 있는 지침에 따라 Service Connector에서 만든 서비스 계정 및 비밀을 가져옵니다. AKS 앱을 Azure SQL Database에 연결합니다. 이 옵션을 사용하여 제공된 YAML 샘플 코드 조각을 사용하여 배포를 직접 만듭니다.

    참고

    Service Connector에서 만든 비밀에는 Azure SQL Database에 대한 암호 없는 연결 문자열인 값이 포함되어 AZURE_SQL_CONNECTIONSTRING 있습니다. 자세한 내용은 Azure SQL Database와 Service Connector 통합하기사용자 할당 관리 ID 섹션의 샘플 값을 참조하세요.

  2. 예제와 같이 샘플 Kubernetes 배포 YAML의 강조 표시된 섹션에서 serviceAccountNamesecretRef.name 값을 복사합니다.

    serviceAccountName: <service-account-name>
    containers:
    - name: raw-linux
       envFrom:
          - secretRef:
             name: <secret-name>
    
  3. 다음 명령을 사용하여 환경 변수를 정의합니다. 이전 단계에서 복사한 값으로 바꿔 <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 애플리케이션을 배포합니다.

  1. 다음 명령을 사용하여 배포 파일을 적용합니다.

    cd $BASE_DIR/java-app/target
    
    # Apply deployment file
    kubectl apply -f openlibertyapplication-passwordless-db.yaml
    
  2. 다음 명령을 사용하여 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
    
  3. 다음 명령을 사용하여 운영자가 만든 배포가 준비되었는지 여부를 확인합니다.

    kubectl get deployment javaee-cafe-cluster --watch
    

    다음과 같은 출력이 일반적입니다.

    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    javaee-cafe-cluster         0/3     3            0           20s
    
  4. 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 이름이 표시됩니다.

Java liberty 애플리케이션 홈페이지의 스크린샷.

참고

현재 애플리케이션은 HTTPS를 사용하지 않습니다. 자체 인증서를 사용하여 TLS(전송 계층 보안)를 사용하도록 설정하는 것이 좋습니다. 자세한 내용은 AKS(Azure Kubernetes Service)에서 수신 컨트롤러와 함께 TLS 사용을 참조하세요.

리소스 정리

Azure 요금을 방지하려면 불필요한 리소스를 정리해야 합니다. 클러스터가 더 이상 필요하지 않은 경우 리소스 그룹, 컨테이너 서비스, 컨테이너 레지스트리, 데이터베이스 및 모든 관련 리소스를 제거하는 데 사용합니다 az group delete .

az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait

다음 단계

이 가이드에 사용된 다음 참조에서 자세히 알아볼 수 있습니다.

Azure Cache for Redis를 Java 앱에 통합하려면 빠른 시작을 참조하세요. Redisson Redis 클라이언트와 함께 Java에서 Azure Cache for Redis 사용

Azure에서 WebSphere 제품을 실행하는 옵션을 살펴보려면 Azure 에서 WebSphere 제품군을 실행하는 솔루션은 무엇인가요?