다음을 통해 공유


Azure Red Hat OpenShift 클러스터에서 JBoss EAP를 사용하여 Java 애플리케이션 수동 배포

이 문서에서는 Azure Red Hat OpenShift 클러스터에 Red Hat JBoss EAP(엔터프라이즈 애플리케이션 플랫폼) 애플리케이션을 배포하는 방법을 보여 줍니다. 샘플은 SQL 데이터베이스에서 지원되는 Java 애플리케이션입니다. 앱은 JBoss EAP Helm 차트를 사용하여 배포됩니다.

이 가이드에서는 다음 방법을 알아봅니다.

  • OpenShift용 JBoss EAP 애플리케이션을 준비합니다.
  • Azure SQL Database의 단일 데이터베이스 인스턴스를 만듭니다.
  • JBoss Helm 차트 및 OpenShift 웹 콘솔을 사용하여 Azure Red Hat OpenShift 클러스터에 애플리케이션 배포

샘플 애플리케이션은 HTTP 세션에 정보를 저장하는 상태 저장 애플리케이션입니다. JBoss EAP 클러스터링 기능을 활용하고 다음 Jakarta EE 및 MicroProfile 기술을 사용합니다.

  • Jakarta Server Faces
  • Jakarta Enterprise Beans
  • Jakarta 지속성
  • MicroProfile Health

이 문서는 Azure Red Hat OpenShift 클러스터에서 JBoss EAP 앱을 실행하기 위한 단계별 수동 지침입니다. Azure Red Hat OpenShift 클러스터로의 여정을 가속화하는 자동화된 솔루션은 빠른 시작: Azure Portal을 사용하여 Azure Red Hat OpenShift에 JBoss EAP 배포를 참조하세요.

Azure 솔루션에서 JBoss EAP를 개발하는 엔지니어링 팀과 피드백을 제공하거나 마이그레이션 시나리오에서 긴밀하게 작업하려는 경우 JBoss EAP 마이그레이션에 대한 이 짧은 설문 조사를 작성하고 연락처 정보를 포함합니다. 프로그램 관리자, 설계자 및 엔지니어 팀이 즉시 연락을 취하여 긴밀한 협업을 시작합니다.

Important

이 문서에서는 JBoss EAP Helm 차트를 사용하여 애플리케이션을 배포합니다. 작성 당시 기준으로 이 기능은 여전히 기술 미리 보기로 제공됩니다. 프로덕션 환경에서 JBoss EAP Helm 차트를 사용하여 애플리케이션을 배포하기 전에 이 기능이 JBoss EAP/XP 제품 버전에서 지원되는 기능인지 확인합니다.

Important

Azure Red Hat OpenShift는 Red Hat 및 Microsoft가 통합된 지원 환경을 제공하기 위해 공동으로 엔지니어링, 운영 및 지원하지만, 이 문서에 설명된 것을 포함하여 Azure Red Hat OpenShift를 기반으로 실행하는 소프트웨어에는 자체 지원 및 사용 조건이 적용됩니다. Azure Red Hat OpenShift 지원에 대한 자세한 내용은 Azure Red Hat OpenShift 4에 대한 지원 수명 주기를 참조하세요. 이 문서에 설명된 소프트웨어 지원에 대한 자세한 내용은 문서에 나열된 대로 해당 소프트웨어의 기본 페이지를 참조하세요.

필수 조건

참고 항목

Azure Red Hat OpenShift에는 OpenShift 클러스터를 만들고 실행하는 데 최소 40개의 코어가 필요합니다. 새 Azure 구독에 대한 기본 Azure 리소스 할당량은 이 요구 사항을 충족하지 않습니다. 리소스 제한 증가를 요청하려면 표준 할당량: VM 시리즈별 제한 증가를 참조하세요. 무료 평가판 구독은 할당량 증가에 적합하지 않으므로 할당량 증가를 요청하기 전에 종량제 구독으로 업그레이드하세요.

  1. 설치된 다양한 제품(예: Ubuntu, macOS 또는 Linux용 Windows 하위 시스템)에서 지원하는 Unix와 유사한 운영 체제를 사용하여 로컬 컴퓨터를 준비합니다.

  2. JAVA SE(Standard Edition) 구현을 설치합니다. 이 문서의 로컬 개발 단계는 OpenJDK의 Microsoft 빌드에서 JDK(Java Development Kit) 17로 테스트되었습니다.

  3. Maven 3.8.6 이상을 설치합니다.

  4. Azure CLI 2.40 이상을 설치합니다.

  5. 이 데모 애플리케이션(todo-list)에 대한 코드를 로컬 시스템에 복제합니다. 데모 애플리케이션은 GitHub에 있습니다.

  6. Azure Red Hat OpenShift 4 클러스터 만들기의 지침을 따릅니다.

    "Red Hat 끌어오기 비밀 가져오기" 단계는 선택 사항 으로 레이블이 지정되어 있지만 이 문서에 필요합니다. 끌어오기 비밀을 사용하면 Azure Red Hat OpenShift 클러스터가 JBoss EAP 애플리케이션 이미지를 찾을 수 있습니다.

    클러스터에서 메모리를 많이 사용하는 애플리케이션을 실행하려는 경우 --worker-vm-size 매개 변수를 사용하여 작업자 노드에 대해 적절한 가상 컴퓨터 크기를 지정합니다. 자세한 내용은 다음을 참조하세요.

  7. Azure Red Hat OpenShift 4 클러스터에 연결의 단계에 따라 클러스터에 연결합니다.

    • “OpenShift CLI 설치”의 단계를 따릅니다.
    • OpenShift CLI를 사용하여 사용자 kubeadmin으로 Azure Red Hat OpenShift 클러스터에 연결
  8. 다음 명령을 실행하여 이 데모 애플리케이션에 대한 OpenShift 프로젝트를 만듭니다.

    oc new-project eap-demo
    
  9. 다음 명령을 실행하여 보기 역할을 기본 서비스 계정에 추가합니다. 애플리케이션에서 다른 Pod를 검색하고 클러스터를 설정할 수 있도록 이 역할이 필요합니다.

    oc policy add-role-to-user view system:serviceaccount:$(oc project -q):default -n $(oc project -q)
    

애플리케이션 준비

다음 명령을 사용하여 샘플 애플리케이션을 복제합니다.

git clone https://github.com/Azure-Samples/jboss-on-aro-jakartaee

데모 애플리케이션을 Todo-list 복제했으며 로컬 리포지토리가 분기에 있습니다 main . 데모 애플리케이션은 Azure SQL에서 레코드를 만들고, 읽고, 업데이트하고, 삭제하는 간단한 Java 앱입니다. 로컬 컴퓨터에 설치된 JBoss EAP 서버에 있는 것처럼 이 애플리케이션을 배포할 수 있습니다. 필요한 데이터베이스 드라이버 및 데이터 원본으로 서버를 구성하기만 하면 됩니다. 로컬 환경에서 액세스할 수 있는 데이터베이스 서버도 필요합니다.

그러나 OpenShift를 대상으로 하는 경우 JBoss EAP 서버의 기능을 트리밍할 수 있습니다. 예를 들어 프로비전된 서버의 보안 노출을 줄이고 전체 공간을 줄일 수 있습니다. OpenShift 환경에서 애플리케이션을 실행하는 데 더 적합하도록 일부 MicroProfile 사양을 포함하는 것이 좋을 수도 있습니다. JBoss EAP를 사용하는 경우 이 작업을 수행하는 한 가지 방법은 부팅 가능한 JAR이라고 하는 단일 배포 단위로 애플리케이션과 서버를 패키징하는 것입니다. 데모 애플리케이션에 필요한 변경 내용을 추가하여 이 작업을 수행해 보겠습니다.

데모 애플리케이션 로컬 리포지토리로 이동하고 분기를 bootable-jar로 변경합니다.

## cd jboss-on-aro-jakartaee
git checkout bootable-jar

이 분기에서 변경한 내용을 빠르게 검토하겠습니다.

  • 서버와 애플리케이션을 wildfly-jar-maven 단일 실행 JAR 파일로 프로비전하는 플러그 인을 추가했습니다. OpenShift 배포 단위는 애플리케이션이 포함된 서버입니다.
  • Maven 플러그 인에서 Galleon 계층 집합을 지정했습니다. 이 구성을 사용하면 서버 기능을 필요한 기능으로만 트리밍할 수 있습니다. Galleon에 대한 전체 설명서는 WildFly 설명서를 참조하세요.
  • 애플리케이션은 Ajax 요청과 함께 Jakarta Faces를 사용합니다. 즉, HTTP 세션에 저장된 정보가 있습니다. Pod가 제거되더라도 이러한 정보를 잃고 싶지 않으므로 클라이언트에 이 정보를 저장하고 각 요청 시 다시 보낼 수 있습니다. 그러나 특정 정보를 클라이언트에 배포하지 않기로 결정하는 경우도 있습니다. 이 데모에서는 모든 Pod 복제본에서 세션을 복제하도록 선택했습니다. 이렇게 하려면 .에 추가 <distributable /> 했습니다 web.xml. 이렇게 하면 서버 클러스터링 기능과 함께 HTTP 세션을 모든 Pod에 분산할 수 있습니다.
  • 애플리케이션이 라이브 상태이고 요청을 받을 준비가 된 시기를 식별할 수 있는 두 개의 MicroProfile 상태 검사를 추가했습니다.

애플리케이션을 로컬로 실행

OpenShift에서 애플리케이션을 배포하기 전에 로컬로 실행하여 작동 방식을 확인합니다. 다음 단계에서는 Azure SQL을 실행하고 로컬 환경에서 사용할 수 있다고 가정합니다.

데이터베이스를 만들려면 빠른 시작: Azure SQL Database 단일 데이터베이스 만들기의 단계를 수행하지만 다음 대체를 사용합니다.

  • 리소스 그룹의 경우 이전에 만든 리소스 그룹을 사용합니다.
  • 데이터베이스 이름todos_db를 사용합니다.
  • 서버 관리자 로그인azureuser를 사용합니다.
  • 암호Passw0rd!를 사용합니다.
  • 방화벽 규칙 섹션에서 Azure 서비스 및 리소스가 이 서버에 액세스하도록 허용로 전환합니다.

다른 모든 설정은 연결된 문서에서 안전하게 사용할 수 있습니다.

추가 설정 페이지에서 샘플 데이터로 데이터베이스를 미리 채워야 하는 옵션을 선택할 필요는 없지만 그렇게 하는 데는 아무런 해가 없습니다.

데이터베이스를 만든 후 개요 페이지에서 서버 이름 값을 가져옵니다. 마우스로 서버 이름 필드의 값 위로 마우스를 가져가고 값 옆에 표시되는 복사 아이콘을 선택합니다. 나중에 사용할 수 있도록 이 값을 따로 저장합니다(이 값으로 명명된 MSSQLSERVER_HOST 변수를 설정).

참고 항목

비용을 낮게 유지하기 위해 빠른 시작에서는 판독기에서 서버리스 컴퓨팅 계층을 선택하도록 지시합니다. 이 계층은 활동이 없으면 0으로 스케일링합니다. 이 상황이 되면 데이터베이스가 즉시 응답하지 않습니다. 이 문서의 단계를 실행할 때 어느 시점에든지 데이터베이스 문제가 발생한다면 자동 일시 중지를 사용하지 않도록 설정하는 것이 좋습니다. 방법을 알아보려면 Azure SQL 데이터베이스 서버리스에서 자동 일시 중지를 검색합니다. 작성 시 다음 AZ CLI 명령은 이 문서에 구성된 데이터베이스에 대해 자동 일시 중지를 사용하지 않도록 설정합니다. az sql db update --resource-group $RESOURCEGROUP --server <Server name, without the .database.windows.net part> --name todos_db --auto-pause-delay -1

애플리케이션을 빌드하여 로컬에서 실행하려면 아래 단계를 따릅니다.

  1. 부팅 가능한 JAR을 빌드합니다. MS SQL Server 데이터베이스와 함께 사용 eap-datasources-galleon-pack 하므로 이 특정 환경 변수와 함께 사용할 데이터베이스 드라이버 버전을 지정해야 합니다. 및 MS SQL Server에 eap-datasources-galleon-pack 대한 자세한 내용은 Red Hat의 설명서를 참조하세요.

    export MSSQLSERVER_DRIVER_VERSION=7.4.1.jre11
    mvn clean package
    
  2. 다음 명령을 사용하여 부팅 가능한 JAR을 시작합니다.

    Azure SQL 데이터베이스가 이 서버가 실행 중인 호스트의 네트워크 트래픽을 허용하는지 확인해야 합니다. 빠른 시작: Azure SQL 데이터베이스 단일 데이터베이스 만들기의 단계를 수행할 때 현재 클라이언트 IP 주소 추가를 선택했기 때문에 서버가 실행 중인 호스트가 브라우저가 Azure Portal에 연결 중인 호스트와 동일한 경우 네트워크 트래픽이 허용되어야 합니다. 서버가 실행 중인 호스트가 다른 호스트인 경우 Azure Portal을 사용하여 서버 수준 IP 방화벽 규칙을 관리하도록 참조해야 합니다.

    애플리케이션을 시작할 때 데이터 원본을 구성하는 데 필요한 환경 변수를 전달해야 합니다.

    export MSSQLSERVER_USER=azureuser
    export MSSQLSERVER_PASSWORD='Passw0rd!'
    export MSSQLSERVER_JNDI=java:/comp/env/jdbc/mssqlds
    export MSSQLSERVER_DATABASE=todos_db
    export MSSQLSERVER_HOST=<server name saved aside earlier>
    export MSSQLSERVER_PORT=1433
    mvn wildfly-jar:run
    

    이 데모에서 사용하는 기본 런타임에 대해 자세히 알아보려면 데이터 원본 통합을 위한 Galleon 기능 팩 설명서에 사용 가능한 환경 변수의 전체 목록이 있습니다. 기능 팩의 개념에 대한 자세한 내용은 WildFly 설명서를 참조하세요.

    다음 예제와 유사한 텍스트가 포함된 오류가 표시되는 경우:

    Cannot open server '<your prefix>mysqlserver' requested by the login. Client with IP address 'XXX.XXX.XXX.XXX' is not allowed to access the server.
    

    이 메시지는 네트워크 트래픽이 허용되었는지 확인하는 단계가 작동하지 않음을 나타냅니다. 오류 메시지의 IP 주소가 방화벽 규칙에 포함되어 있는지 확인합니다.

    다음 예제와 유사한 텍스트가 포함된 메시지를 받는 경우:

    Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: There is already an object named 'TODOS' in the database.
    

    이 메시지는 샘플 데이터가 데이터베이스에 이미 있음을 나타냅니다. 이 문자열은 무시해도 됩니다.

  3. (선택 사항) 클러스터링 기능을 확인하려는 경우 Bootable JAR에 jboss.node.name 인수를 전달하여 동일한 애플리케이션의 더 많은 인스턴스를 시작하고 포트 번호와의 충돌을 방지하기 위해 jboss.socket.binding.port-offset을 사용하여 포트 번호를 이동할 수도 있습니다. 예를 들어 OpenShift에서 새 Pod를 나타내는 두 번째 인스턴스를 시작하려면 새 터미널 창에서 다음 명령을 실행할 수 있습니다.

    export MSSQLSERVER_USER=azureuser
    export MSSQLSERVER_PASSWORD='Passw0rd!'
    export MSSQLSERVER_JNDI=java:/comp/env/jdbc/mssqlds
    export MSSQLSERVER_DATABASE=todos_db
    export MSSQLSERVER_HOST=<server name saved aside earlier>
    export MSSQLSERVER_PORT=1433
    mvn wildfly-jar:run -Dwildfly.bootable.arguments="-Djboss.node.name=node2 -Djboss.socket.binding.port-offset=1000"
    

    클러스터가 작동하는 경우 서버 콘솔 로그에서 다음과 유사한 추적을 확인할 수 있습니다.

    INFO  [org.infinispan.CLUSTER] (thread-6,ejb,node) ISPN000094: Received new cluster view for channel ejb
    

    참고 항목

    기본적으로 부팅 가능 JAR은 UDP 프로토콜을 사용하도록 JGroups 하위 시스템을 구성하고 메시지를 보내 230.0.0.4 멀티캐스트 주소에 대한 다른 클러스터 멤버를 검색합니다. 로컬 컴퓨터의 클러스터링 기능을 제대로 확인하려면 운영 체제에서 멀티캐스트 데이터그램을 보내고 받을 수 있고, 이더넷 인터페이스를 통해 230.0.0.4 IP로 라우팅할 수 있어야 합니다. 서버 로그에 클러스터와 관련된 경고가 표시되면 네트워크 구성을 확인하고 해당 주소에서 멀티캐스트를 지원하는지 확인합니다.

  4. 브라우저에서 열어 http://localhost:8080/ 애플리케이션 홈페이지를 방문합니다. 인스턴스를 더 만든 경우 포트 번호를 이동하여 액세스할 수 있습니다. 예를 들면 다음과 같습니다 http://localhost:9080/. 애플리케이션은 다음 이미지와 유사해야 합니다.

    ToDo EAP 데모 애플리케이션의 스크린샷.

  5. 애플리케이션의 활동성 및 준비 상태 프로브를 확인합니다. OpenShift는 이러한 엔드포인트를 사용하여 Pod가 라이브 상태이고 사용자 요청을 받을 준비가 되었는지 확인합니다.

    활동성 상태를 확인하려면 다음을 실행합니다.

    curl http://localhost:9990/health/live
    

    다음 출력이 표시됩니다.

    {"status":"UP","checks":[{"name":"SuccessfulCheck","status":"UP"}]}
    

    준비 상태를 확인하려면 다음을 실행합니다.

    curl http://localhost:9990/health/ready
    

    다음 출력이 표시됩니다.

     {"status":"UP","checks":[{"name":"deployments-status","status":"UP","data":{"todo-list.war":"OK"}},{"name":"server-state","status":"UP","data":{"value":"running"}},{"name":"boot-errors","status":"UP"},{"name":"DBConnectionHealthCheck","status":"UP"}]}
    
  6. Ctrl-C를 눌러 애플리케이션을 중지합니다.

OpenShift에 배포

애플리케이션을 배포하기 위해 Azure Red Hat OpenShift에서 이미 사용할 수 있는 JBoss EAP Helm 차트를 사용합니다. 또한 데이터베이스 사용자, 데이터베이스 암호, 사용하려는 드라이버 버전 및 데이터 원본에서 사용하는 연결 정보와 같은 원하는 구성을 제공해야 합니다. 다음 단계에서는 OpenShift 클러스터에서 Azure SQL을 실행하고 액세스할 수 있으며 데이터베이스 사용자 이름, 암호, 호스트 이름, 포트 및 데이터베이스 이름을 OpenShift OpenShift Secret 개체mssqlserver-secret에 저장한 것으로 가정합니다.

데모 애플리케이션 로컬 리포지토리로 이동하고 현재 분기를 bootable-jar-openshift로 변경합니다.

git checkout bootable-jar-openshift

이 분기에서 변경된 내용에 대해 빠르게 검토해 보겠습니다.

  • 클라우드에서 서버를 실행하기 위한 특정 구성으로 부팅 가능한 JAR을 준비하는 새 bootable-jar-openshift Maven 프로필을 추가했습니다. 예를 들어 JGroups 하위 시스템은 네트워크 요청을 사용하여 KUBE_PING 프로토콜을 사용하여 다른 Pod를 검색할 수 있습니다.
  • jboss-on-aro-jakartaee/deployment 디렉터리에 구성 파일 집합을 추가했습니다. 이 디렉터리에서 애플리케이션을 배포할 구성 파일을 찾을 수 있습니다.

OpenShift에 애플리케이션 배포

다음 단계에서는 OpenShift 웹 콘솔을 사용하여 Helm 차트로 애플리케이션을 배포하는 방법을 설명합니다. '비밀'이라는 기능을 사용하여 중요한 값을 Helm 차트에 하드 코딩하지 마세요. 비밀은 단순히 이름=값 쌍의 컬렉션입니다. 여기서 값은 필요하기 전에 알려진 위치에 지정됩니다. 여기서는 Helm 차트가 각각 다음 name=value 쌍과 함께 두 개의 비밀을 사용합니다.

  • mssqlserver-secret

    • db-hostMSSQLSERVER_HOST의 값을 전달합니다.
    • db-nameMSSQLSERVER_DATABASE의 값을 전달합니다.
    • db-passwordMSSQLSERVER_PASSWORD의 값을 전달합니다.
    • db-portMSSQLSERVER_PORT의 값을 전달합니다.
    • db-userMSSQLSERVER_USER의 값을 전달합니다.
  • todo-list-secret

    • app-cluster-password는 클러스터 노드가 보다 안전하게 형성될 수 있도록 임의의 사용자 지정 암호를 전달합니다.
    • app-driver-versionMSSQLSERVER_DRIVER_VERSION의 값을 전달합니다.
    • app-ds-jndiMSSQLSERVER_JNDI의 값을 전달합니다.
  1. mssqlserver-secret를 만듭니다.

    oc create secret generic mssqlserver-secret \
        --from-literal db-host=${MSSQLSERVER_HOST} \
        --from-literal db-name=${MSSQLSERVER_DATABASE} \
        --from-literal db-password=${MSSQLSERVER_PASSWORD} \
        --from-literal db-port=${MSSQLSERVER_PORT} \
        --from-literal db-user=${MSSQLSERVER_USER}
    
  2. todo-list-secret를 만듭니다.

    export MSSQLSERVER_DRIVER_VERSION=7.4.1.jre11
    oc create secret generic todo-list-secret \
        --from-literal app-cluster-password=mut2UTG6gDwNDcVW \
        --from-literal app-driver-version=${MSSQLSERVER_DRIVER_VERSION} \
        --from-literal app-ds-jndi=${MSSQLSERVER_JNDI}
    
  3. OpenShift 콘솔을 열고 개발자 보기로 이동합니다. 이 명령을 실행하여 OpenShift 클러스터의 콘솔 URL을 검색할 수 있습니다. kubeadmin 이전 단계에서 얻은 사용자 ID 및 암호를 사용하여 로그인합니다.

    az aro show \
        --name $CLUSTER \
        --resource-group $RESOURCEGROUP \
        --query "consoleProfile.url" \
        --output tsv
    

    탐색 창 위쪽의 <드롭다운 메뉴에서 /> Developer 큐브 뷰를 선택합니다.

    OpenShift 콘솔 개발자 보기의 스크린샷.

  4. /개발자 관점에서 프로젝트 드롭다운 메뉴에서 eap-demo 프로젝트를 선택합니다.> <

    OpenShift 콘솔 프로젝트 콤보 상자의 스크린샷.

  5. +추가를 선택합니다. 개발자 카탈로그 섹션에서 Helm 차트를 선택합니다. Azure Red Hat OpenShift 클러스터에서 사용할 수 있는 Helm 차트 카탈로그에 도착합니다. 키워드로 필터링 상자에 eap을 입력합니다. 다음과 같은 몇 가지 옵션이 표시됩니다.

    OpenShift 콘솔 EAP Helm 차트의 스크린샷.

    애플리케이션은 MicroProfile 기능을 사용하므로 EAP Xp용 Helm 차트를 선택합니다. Xp는 확장 팩을 의미합니다. JBoss Enterprise Application Platform 확장 팩을 사용하면 개발자는 Eclipse MicroProfile API(애플리케이션 프로그래밍 인터페이스)를 사용하여 마이크로 서비스 기반 애플리케이션을 빌드하고 배포할 수 있습니다.

  6. JBoss EAP XP 4 Helm 차트를 선택한 다음 Helm 차트 설치를 선택합니다.

이 시점에서 애플리케이션을 빌드하고 배포하도록 차트를 구성해야 합니다.

  1. 릴리스 이름을 eap-todo-list-demo로 변경합니다.

  2. 양식 보기 또는 YAML 보기를 사용하여 Helm 차트를 구성할 수 있습니다. 다음을 통해 구성이라는 레이블이 지정된 섹션에서 YAML 보기를 선택합니다.

  3. YAML 콘텐츠를 변경하여 기존 콘텐츠 대신 deployment/application/todo-list-helm-chart.yaml에서 사용할 수 있는 Helm 차트 파일의 콘텐츠를 복사하여 붙여넣어 Helm 차트를 구성합니다.

    OpenShift 콘솔 EAP Helm 차트 YAML 콘텐츠

    이 콘텐츠는 이전에 설정한 비밀을 참조합니다.

  4. 마지막으로 설치를 선택하여 애플리케이션 배포를 시작합니다. 이 작업은 Helm 릴리스(eap-todo-list-demo)와 관련 리소스를 그래픽으로 표현하여 토폴로지 보기를 엽니다.

    OpenShift 콘솔 토폴로지의 스크린샷.

    Helm 릴리스(약칭: HR)의 이름은 eap-todo-list-demo입니다. 여기에는 eap-todo-list-demo라는 배포 리소스(약칭: D)도 포함됩니다.

    D 상자의 왼쪽 아래에 있는 원에 두 개의 화살표가 있는 아이콘을 선택하면 로그 창으로 이동됩니다. 여기에서 빌드의 진행률을 관찰할 수 있습니다. 토폴로지 보기로 돌아가려면 왼쪽 탐색 창에서 토폴로지를 선택합니다.

  5. 빌드가 완료되면 왼쪽 아래 아이콘에 녹색 확인 표시

  6. 배포가 완료되면 원 윤곽선이 진한 파란색입니다. 마우스를 진한 파란색 위로 마우스로 가리키면 다음과 비슷한 3 Running내용의 메시지가 표시됩니다. 해당 메시지가 표시되면 배포와 연결된 경로에서 URL(오른쪽 위 아이콘 사용)으로 이동하면 됩니다.

    OpenShift 콘솔 열기 애플리케이션의 스크린샷.

  7. 애플리케이션은 사용할 준비가 된 다음 이미지와 유사하게 브라우저에서 열립니다.

    실행 중인 OpenShift 애플리케이션의 스크린샷.

  8. 애플리케이션은 정보를 제공하는 Pod의 이름을 표시합니다. 클러스터링 기능을 확인하려면 일부 Todo를 추가할 수 있습니다. 그런 다음 을 사용하여 oc delete pod <pod-name>애플리케이션에 표시되는 서버 호스트 이름 필드에 표시된 이름을 가진 Pod를 삭제합니다. Pod를 삭제한 후 동일한 애플리케이션 창에 새 Todo를 만듭니다. 새 Todo가 Ajax 요청을 통해 추가되고 서버 호스트 이름 필드에 다른 이름이 표시되는 것을 볼 수 있습니다. 백그라운드에서 OpenShift 부하 분산 장치는 새 요청을 디스패치하고 사용 가능한 Pod에 전달했습니다. Jakarta Faces 보기는 요청을 처리하는 Pod에 저장된 HTTP 세션 복사본에서 복원됩니다. 실제로 세션 ID 필드가 변경되지 않았음을 알 수 있습니다. 세션이 Pod 간에 복제되지 않으면 Jakarta Faces ViewExpiredException가 표시되고 애플리케이션이 예상대로 작동하지 않습니다.

리소스 정리

애플리케이션 삭제

애플리케이션만 삭제하려면 OpenShift 콘솔을 열고 개발자 보기에서 Helm 메뉴 옵션으로 이동합니다. 이 메뉴에서 클러스터에 설치된 모든 Helm 차트 릴리스를 볼 수 있습니다.

OpenShift 제거 애플리케이션

eap-todo-list-demo Helm 차트를 찾고 행의 끝에서 세 개의 세로 점을 선택하여 작업 바로 가기 메뉴 항목을 엽니다.

Helm 릴리스 제거를 선택하여 애플리케이션을 제거합니다. 애플리케이션 구성을 제공하는 데 사용되는 비밀 개체는 차트의 일부가 아닙니다. 더 이상 필요하지 않은 경우 별도로 제거해야 합니다.

애플리케이션 구성을 포함하는 비밀을 삭제하려면 다음 명령을 실행합니다.

$ oc delete secrets/todo-list-secret
# secret "todo-list-secret" deleted

OpenShift 프로젝트 삭제

eap-demo 프로젝트를 삭제하여 이 데모에 대해 만든 모든 구성을 삭제할 수도 있습니다. 이렇게 하려면 다음 명령을 실행합니다.

$ oc delete project eap-demo
# project.project.openshift.io "eap-demo" deleted

Azure Red Hat OpenShift 클러스터 삭제

자습서: Azure Red Hat OpenShift 4 클러스터 삭제의 단계에 따라 Azure Red Hat OpenShift 클러스터를 삭제합니다.

리소스 그룹 삭제

이전 단계에서 만든 모든 리소스를 삭제하려면 Azure Red Hat OpenShift 클러스터에 대해 만든 리소스 그룹을 삭제합니다.

다음 단계

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

Azure에서 JBoss EAP를 실행하는 옵션을 계속 탐색합니다.