1.8. S2I를 사용하여 Quarkus 애플리케이션을 OpenShift에 배포


S2I(Source-to-Image) 방법을 사용하여 Quarkus 애플리케이션을 OpenShift에 배포할 수 있습니다. S2I를 사용하면 Git 리포지토리를 통해 또는 빌드 시 소스를 업로드하여 빌드 컨테이너에 소스 코드를 제공해야 합니다.

중요

네이티브 배포에는 S2I가 지원되지 않습니다. 기본 실행 파일에 컴파일된 Quarkus 애플리케이션을 배포하려면 Docker 빌드 전략을 사용합니다.

S2I를 사용하여 Quarkus 애플리케이션을 OpenShift에 배포하는 절차는 사용 중인 Java 버전에 따라 다릅니다.

1.8.1. S2I를 사용하여 Quarkus 애플리케이션을 OpenShift에 배포(Java 11)

다음 섹션에서는 S2I(Source-to-Image) 방법을 사용하여 Java 11에서 실행되는 Quarkus 애플리케이션을 OpenShift에 배포하는 데 도움이 됩니다. 프로세서 아키텍처에 관계없이 Quarkus는 배포에 ubi8/openjdk-11 이미지를 사용할 것을 권장합니다.

사전 요구 사항

프로세스

  1. oc 를 사용하여 OpenShift에 로그인한 다음 Quarkus Maven 프로젝트가 포함된 디렉터리로 변경합니다.

  2. Java 11 애플리케이션을 패키징합니다.

    ./mvnw clean package
  3. pom.xml 파일과 동일한 수준에서 .s2i 라는 숨겨진 디렉토리를 만듭니다.
  4. .s2i 디렉터리에 environment 라는 파일을 생성하고 다음 콘텐츠를 추가합니다.

    MAVEN_S2I_ARTIFACT_DIRS=target/quarkus-app
    S2I_SOURCE_DEPLOYMENTS_FILTER=app lib quarkus quarkus-run.jar
    JAVA_OPTIONS=-Dquarkus.http.host=0.0.0.0
    AB_JOLOKIA_OFF=true
    JAVA_APP_JAR=/deployments/quarkus-run.jar
  5. 변경 사항을 커밋하고 원격 Git 리포지토리로 내보냅니다.
  6. 지원되는 OpenShift 이미지를 가져옵니다.

    oc import-image --confirm ubi8/openjdk-11 --from=ubi8/openjdk-11
  7. 프로젝트를 빌드하려면 애플리케이션을 생성하고 OpenShift 서비스를 배포합니다.

    oc new-app ubi8/openjdk-11 <git_path> --name=<project_name>
  8. 업데이트된 버전의 프로젝트를 배포하려면 업데이트를 Git 리포지토리로 푸시하고 다음 명령을 입력합니다.

    oc start-build <project_name>

검증

  1. 현재 OpenShift 프로젝트와 연결된 Pod 목록을 보려면 다음을 수행합니다.

    oc get pods
  2. 애플리케이션 Pod의 로그 출력을 검색하려면 다음 명령을 입력합니다. 여기서 < pod_name >은 애플리케이션 이름이 접두사가 지정된 최신 Pod의 이름입니다.

    oc logs -f <pod_name>

1.8.2. S2I를 사용하여 Quarkus 애플리케이션을 OpenShift에 배포(Java 17)

S2I(Source-to-Image) 방법을 사용하여 Java 17에서 OpenShift에 실행되는 Quarkus 애플리케이션을 배포하는 데 도움이 되는 정보가 제공됩니다.

사전 요구 사항

프로세스

  1. pom.xml 파일을 열고 다음과 같이 Java 구성을 버전 17으로 변경합니다.

    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
  2. oc 를 사용하여 OpenShift에 로그인한 다음 Quarkus Maven 프로젝트가 포함된 디렉터리로 변경합니다.

  3. Java 17 애플리케이션을 패키징합니다.

    ./mvnw clean package
  4. pom.xml 파일과 동일한 수준에서 .s2i 라는 숨겨진 디렉토리를 만듭니다.
  5. .s2i 디렉터리에 environment 라는 파일을 생성하고 다음 콘텐츠를 추가합니다.

    MAVEN_S2I_ARTIFACT_DIRS=target/quarkus-app
    S2I_SOURCE_DEPLOYMENTS_FILTER=app lib quarkus quarkus-run.jar
    JAVA_OPTIONS=-Dquarkus.http.host=0.0.0.0
    AB_JOLOKIA_OFF=true
    JAVA_APP_JAR=/deployments/quarkus-run.jar
  6. 변경 사항을 커밋하고 원격 Git 리포지토리로 내보냅니다.
  7. 지원되는 OpenShift 이미지를 가져오려면 다음 명령 중 하나를 입력합니다.

    oc import-image --confirm ubi8/openjdk-17 --from=registry.access.redhat.com/ubi8/openjdk-17
  8. OpenShift에서 프로젝트를 빌드하려면 다음 명령을 입력합니다.

    oc new-app ubi8/openjdk-17 <git_path> --name=<project_name>

    여기서: * {t> 는 Quarkus 프로젝트를 호스팅하는 Git 리포지토리의 경로입니다 * <project_name>은 사용자가 생성한 OpenShift 프로젝트입니다.

  9. OpenShift에 배포를 시작하려면 다음 명령을 입력합니다.

    oc start-build <project_name>

검증

  1. 현재 OpenShift 프로젝트와 연결된 Pod 목록을 보려면 다음을 수행합니다.

    oc get pods
  2. 애플리케이션 Pod의 로그 출력을 검색하려면 다음 명령을 입력합니다. 여기서 < pod_name >은 애플리케이션 이름이 접두사가 지정된 최신 Pod의 이름입니다.

    oc logs -f <pod_name>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.