OpenShift Container Platform에 Quarkus 애플리케이션 배포


Red Hat build of Quarkus 2.2

초록

이 가이드에서는 Red Hat build of Quarkus 애플리케이션을 OpenShift Container Platform에 배포하는 방법을 설명합니다.

1장. OpenShift에 Quarkus 애플리케이션 배포

애플리케이션 개발자는 단일 Maven 명령을 사용하여 Quarkus 애플리케이션을 OpenShift에 배포할 수 있습니다. 이 기능은 Docker 빌드 전략 및 S2I(Source-to-Image) 전략을 비롯한 여러 배포 옵션을 지원하는 quarkus-openshift 확장을 통해 제공됩니다.

Red Hat build of Quarkus 설명서에서는 권장되는 워크플로를 통해 Quarkus 애플리케이션을 프로덕션 환경에 배포할 수 있습니다. 대체 배포에 대한 자세한 내용은 Quarkus 커뮤니티 설명서 를 참조하십시오.

사전 요구 사항

  • OpenJDK(JDK) 11 또는 17이 설치되어 있고 JAVA_HOME 환경 변수가 Java SDK의 위치를 지정하도록 설정되어 있는지 확인합니다.
  • Apache Maven 3.8.1 이상이 설치되어 있어야 합니다.
  • quarkus-openshift 확장을 포함하는 Quarkus Maven 프로젝트를 준비합니다.

  • Red Hat OpenShift Container Platform 클러스터 및 최신 버전의 OpenShift CLI(oc)에 액세스할 수 있습니다.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1.1. OpenShift 빌드 전략 및 Quarkus

Red Hat OpenShift Container Platform은 컨테이너화된 애플리케이션을 개발하고 실행하기 위한 Kubernetes 기반 플랫폼입니다. 보안 및 편의를 위해 OpenShift는 업스트림 Kubernetes 배포에서는 사용할 수 없는 다양한 빌드 전략을 지원합니다.

OpenShift 빌드 전략 개요

Docker 빌드
이 전략은 로컬 또는 CI 환경에서 로컬 또는 CI 환경에서 OpenShift 클러스터 외부의 아티팩트(JAR 파일 또는 네이티브 실행 파일)를 빌드한 다음 Dockerfile과 함께 OpenShift 빌드 시스템에 제공합니다. 컨테이너는 OpenShift 클러스터 내에서 빌드되고 이미지 스트림으로 제공됩니다.
참고

Red Hat build of Quarkus 2.2 이후 OpenShift Docker 빌드 전략은 JVM을 대상으로 하는 Quarkus 애플리케이션과 기본 실행 파일로 컴파일된 Quarkus 애플리케이션을 지원하는 기본 빌드 전략입니다. 그러나 S2I는 이전 버전과의 호환성을 위해 기본 배포 전략으로 유지됩니다. quarkus.openshift.build-strategy 속성을 사용하여 배포 전략을 구성할 수 있습니다.

S2I(Source to Image)
빌드 프로세스는 OpenShift 클러스터 내에서 수행됩니다. S2I를 사용하여 Red Hat build of Quarkus를 JVM 애플리케이션으로 배포하는 것은 완전히 지원됩니다.
바이너리 S2I
이 전략에서는 JAR 파일을 S2I 빌드 프로세스에 대한 입력으로 사용하므로 애플리케이션의 빌드 프로세스 및 배포 속도가 빨라집니다.
Expand
표 1.1. Quarkus 지원 OpenShift 빌드 전략
빌드 전략Quarkus 툴링 지원JVM 지원Native 지원JVM Serverless 지원네이티브 Serverless 지원

Docker 빌드

제공됨

제공됨

제공됨

제공됨

제공됨

S2I Binary

제공됨

제공됨

NO

NO

NO

소스 S2I

NO

제공됨

NO

NO

NO

1.2. Quarkus OpenShift 확장 추가

OpenShift 클러스터 내에서 사용할 애플리케이션을 빌드하고 배포할 수 있도록 quarkus-openshift 확장을 Quarkus 프로젝트에 종속성으로 추가해야 합니다.

OpenShift 확장에서는 이미지 스트림, 빌드 구성, 배포 구성, 서비스 정의 등과 같은 OpenShift 리소스도 생성합니다. Quarkus 애플리케이션에 quarkus-undercloudrye-health 확장이 포함된 경우 OpenShift가 상태 엔드포인트에 액세스하고 애플리케이션의 활성 상태 및 준비 상태를 확인할 수 있습니다.

사전 요구 사항

프로세스

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

  2. 다음 방법 중 하나를 사용하여 quarkus-openshift 확장을 프로젝트에 추가합니다.

    1. pom.xml 파일에 quarkus-openshift 확장자를 추가합니다.

      pom.xml

      <dependency>
          <groupId>io.quarkus</groupId>
          <artifactId>quarkus-openshift</artifactId>
      </dependency>
      Copy to Clipboard Toggle word wrap

    2. 명령줄을 사용하여 quarkus-openshift 확장을 추가합니다.

      ./mvnw com.redhat.quarkus.platform:quarkus-maven-plugin:2.2.3.Final-redhat-00013:add-extension -Dextensions="io.quarkus:quarkus-openshift"
      Copy to Clipboard Toggle word wrap

1.3. 필요한 OpenShift 프로젝트로 전환

Red Hat OpenShift Container Platform CLI(명령줄 인터페이스)를 사용하여 터미널에서 애플리케이션을 생성하고 OpenShift 프로젝트를 관리할 수 있습니다. 제공된 정보를 사용하여 새 OpenShift 프로젝트를 생성하거나 기존 프로젝트로 전환합니다.

사전 요구 사항

  • Red Hat OpenShift Container Platform 클러스터에 액세스
  • 설치된 OpenShift CLI(oc)의 최신 버전

프로세스

  1. OpenShift CLI(oc)에 로그인합니다.

    oc login
    Copy to Clipboard Toggle word wrap
  2. 현재 프로젝트 공간을 표시합니다.

    oc project -q
    Copy to Clipboard Toggle word wrap
  3. 다음 단계 중 하나를 사용하여 필요한 OpenShift 프로젝트로 이동합니다.

    1. 프로젝트가 이미 존재하는 경우 프로젝트로 전환합니다.

      oc  project  <project_name>
      Copy to Clipboard Toggle word wrap
    2. 프로젝트가 없는 경우 새 프로젝트를 생성합니다.

      oc new-project <project_name>
      Copy to Clipboard Toggle word wrap

1.4. Docker의 Java 버전 설정

S2I Docker 빌드 전략 배포 옵션을 사용하여 Red Hat build of Quarkus 애플리케이션을 JVM 모드에서 OpenShift에 배포할 때 Maven 프로젝트의 Docker 빌드 구성 파일이 애플리케이션이 사용 중인 OpenJDK 버전을 가리키는지 확인합니다.

릴리스 2.2.5부터 Red Hat build of Quarkus는 JVM 모드에서 OpenJDK 버전 11 및 17을 지원합니다. 기본적으로 Quarkus의 Docker 빌드 구성에 지정된 OpenJDK 패키지는 버전 11에 대해 구성됩니다.

중요

2.2.5, Java 17은 기본 모드에서 실행 파일을 빌드하는 데 지원되지 않습니다.

애플리케이션이 OpenJDK 17의 JVM 모드에서 실행 중인 경우 다음 절차를 사용하여 올바른 OpenJDK 패키지를 설정합니다. 애플리케이션이 OpenJDK 11에서 실행 중인 경우 이 단계를 건너뛸 수 있습니다.

프로세스

  1. Maven 프로젝트의 src/main/docker 하위 디렉터리로 이동하여 Dockerfile.jvm 을 엽니다.
  2. 다음 구성 추출에 설명된 대로 OpenJDK 17 패키지를 가리키도록 ARG JAVA_PACKAGE 변수를 설정합니다.

    FROM registry.access.redhat.com/ubi8/ubi-minimal:8.5
    
    ARG JAVA_PACKAGE=java-17-openjdk-headless
    ...
    Copy to Clipboard Toggle word wrap

1.5. OpenShift에 Quarkus Java 애플리케이션 배포

Quarkus OpenShift 확장을 사용하면 Docker 빌드 전략을 사용하여 OpenShift에 애플리케이션을 배포할 수 있습니다. 컨테이너는 OpenShift 클러스터 내에서 빌드되고 이미지 스트림으로 제공됩니다.

Quarkus 프로젝트에는 지침이 포함된 사전 생성된 Dockerfile이 포함되어 있습니다. 사용자 지정 Dockerfile을 사용하려면 src/main/docker 디렉터리에 또는 모듈 내의 모든 위치에 파일을 추가해야 합니다. 또한 quarkus.openshift.jvm-dockerfile 속성을 사용하여 Dockerfile의 경로를 설정해야 합니다.

사전 요구 사항

  • quarkus-openshift 확장을 포함하는 Quarkus Maven 프로젝트를 준비합니다.

프로세스

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

  2. application.properties 파일에서 다음 속성을 구성합니다.

    1. Docker 빌드 전략을 설정합니다.

      quarkus.openshift.build-strategy=docker
      Copy to Clipboard Toggle word wrap
    2. (선택 사항) 신뢰할 수 없는 인증서를 사용하는 경우 KubernetesClient 를 구성합니다.

      quarkus.kubernetes-client.trust-certs=true
      Copy to Clipboard Toggle word wrap
    3. (선택 사항) 서비스를 노출하여 OpenShift 경로를 생성합니다.

      quarkus.openshift.route.expose=true
      Copy to Clipboard Toggle word wrap
    4. (선택 사항) 사용자 지정 Dockerfile의 경로를 설정합니다.

      quarkus.openshift.jvm-dockerfile=<path_to_your_dockerfile>
      Copy to Clipboard Toggle word wrap

      다음 예제에서는 Dockerfile.custom-jvm 의 경로를 보여줍니다.

      quarkus.openshift.jvm-dockerfile=src/main/resources/Dockerfile.custom-jvm
      Copy to Clipboard Toggle word wrap
  3. Quarkus 애플리케이션을 패키징하고 현재 OpenShift 프로젝트에 배포합니다.

    ./mvnw clean package -Dquarkus.kubernetes.deploy=true
    Copy to Clipboard Toggle word wrap

검증

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

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

    oc logs -f <pod_name>
    Copy to Clipboard Toggle word wrap

1.6. 기본 실행 파일에 컴파일된 Quarkus 애플리케이션 배포

Docker 빌드 전략을 사용하여 네이티브 Quarkus 애플리케이션을 OpenShift에 배포할 수 있습니다. Linux X86_64 운영 체제를 대상으로 하는 애플리케이션에 대한 기본 실행 파일을 생성해야 합니다. 호스트 운영 체제가 이와 다른 경우 Docker 또는 Podman과 같은 컨테이너 런타임을 사용하여 기본 Linux 실행 파일을 생성해야 합니다.

Quarkus 프로젝트에는 지침이 포함된 사전 생성된 Dockerfile이 포함되어 있습니다. 사용자 지정 Dockerfile을 사용하려면 src/main/docker 디렉터리에 또는 모듈 내의 모든 위치에 파일을 추가해야 합니다. 또한 quarkus.openshift.native-dockerfile 속성을 사용하여 Dockerfile의 경로를 설정해야 합니다.

사전 요구 사항

  • Linux X86_64 운영 체제 또는 Podman 또는 Docker와 같은 OCI(Open Container Initiative) 호환 컨테이너 런타임
  • quarkus-openshift 확장을 포함하는 Quarkus Maven 프로젝트를 준비합니다.

프로세스

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

  2. application.properties 파일에서 다음 속성을 구성합니다.

    1. Docker 빌드 전략을 설정합니다.

      quarkus.openshift.build-strategy=docker
      Copy to Clipboard Toggle word wrap
    2. 컨테이너 런타임을 설정합니다.

      quarkus.native.container-build=true
      Copy to Clipboard Toggle word wrap
    3. (선택 사항) 신뢰할 수 없는 인증서를 사용하는 경우 KubernetesClient 를 구성합니다.

      quarkus.kubernetes-client.trust-certs=true
      Copy to Clipboard Toggle word wrap
    4. (선택 사항) 서비스를 노출하여 OpenShift 경로를 생성합니다.

      quarkus.openshift.route.expose=true
      Copy to Clipboard Toggle word wrap
    5. (선택 사항) 사용자 지정 Dockerfile의 경로를 설정합니다.

      quarkus.openshift.native-dockerfile=<path_to_your_dockerfile>
      Copy to Clipboard Toggle word wrap

      다음 예제에서는 Dockerfile.custom-native 의 경로를 보여줍니다.

      quarkus.openshift.jvm-dockerfile=src/main/docker/Dockerfile.custom-native
      Copy to Clipboard Toggle word wrap
    6. (선택 사항) 컨테이너 엔진을 지정합니다.

      • Podman을 사용하여 기본 실행 파일을 빌드하려면 다음을 수행합니다.

        quarkus.native.container-runtime=podman
        Copy to Clipboard Toggle word wrap
      • Docker를 사용하여 기본 실행 파일을 빌드하려면 다음을 수행합니다.

        quarkus.native.container-runtime=docker
        Copy to Clipboard Toggle word wrap
  3. 네이티브 실행 파일을 빌드하고 OpenShift에 애플리케이션을 배포합니다.

    ./mvnw clean package -Pnative -Dquarkus.kubernetes.deploy=true
    Copy to Clipboard Toggle word wrap

검증

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

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

    oc logs -f <pod_name>
    Copy to Clipboard Toggle word wrap

1.7. Quarkus 애플리케이션을 OpenShift Serverless 서비스로 배포

Docker 빌드 전략을 사용하여 Quarkus 애플리케이션을 OpenShift Serverless에 배포할 수 있습니다. OpenShift Serverless Knative Serving을 사용하면 로드 크기에 따라 서비스를 확장 및 축소할 수 있습니다. 현재 요청되지 않은 서비스를 축소하면 메모리 기능이 향상됩니다.

Quarkus 프로젝트에는 지침이 포함된 사전 생성된 Dockerfile이 포함되어 있습니다. 사용자 지정 Dockerfile을 사용하려면 src/main/docker 디렉터리에 또는 모듈 내의 모든 위치에 파일을 추가해야 합니다. 또한 JVM 모드의 quarkus.openshift.jvm-dockerfile 속성과 네이티브 모드에 대해 quarkus.openshift.native-dockerfile 속성을 사용하여 Dockerfile의 경로를 설정해야 합니다.

다음 절차에서는 Quarkus OpenShift 확장을 사용하여 기본 실행 파일로 컴파일된 Serverless Quarkus Java 애플리케이션 또는 Serverless 애플리케이션을 배포하는 방법을 보여줍니다.

사전 요구 사항

  • quarkus-openshift 확장을 포함하는 Quarkus Maven 프로젝트를 준비합니다.
  • OpenShift Serverless Operator가 설치되어 있습니다.
  • OpenShift Knative Serving이 설치 및 검증되었습니다. Knative Serving 설치를 참조하십시오.
  • 네이티브 컴파일의 경우 Podman 또는 Docker와 같은 Linux X86_64 운영 체제 또는 OCI(Open Container Initiative) 호환 컨테이너 런타임이 필요합니다.

프로세스

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

  2. application.properties 파일에서 다음 속성을 구성합니다.

    1. Knative를 배포 대상으로 설정합니다.

      quarkus.kubernetes.deployment-target=knative
      Copy to Clipboard Toggle word wrap
    2. Docker 빌드 전략을 설정합니다.

      quarkus.openshift.build-strategy=docker
      Copy to Clipboard Toggle word wrap
    3. OpenShift Serverless에 OpenShift 내부 레지스트리에서 컨테이너 이미지를 가져오도록 직접 수행합니다.

      quarkus.container-image.registry=image-registry.openshift-image-registry.svc:5000
      Copy to Clipboard Toggle word wrap
      참고

      OpenShift & lt;project_name >이 호스트 시스템의 사용자 이름과 다른 경우 Quarkus에서 이미지 레지스트리에서 이미지를 가져올 수 없습니다.

      quarkus.container-image.group=<project_name>
      Copy to Clipboard Toggle word wrap
    4. (선택 사항) 신뢰할 수 없는 인증서를 사용하는 경우 KubernetesClient 를 구성합니다.

      quarkus.kubernetes-client.trust-certs=true
      Copy to Clipboard Toggle word wrap
    5. (선택 사항) 서비스를 노출하여 OpenShift 경로를 생성합니다.

      quarkus.openshift.route.expose=true
      Copy to Clipboard Toggle word wrap
    6. (선택 사항) 사용자 지정 Dockerfile의 경로를 설정합니다.

      quarkus.openshift.jvm-dockerfile=<path_to_your_dockerfile>
      Copy to Clipboard Toggle word wrap

      다음 예제에서는 Dockerfile.custom-jvm 의 경로를 보여줍니다.

      quarkus.openshift.jvm-dockerfile=src/main/resources/Dockerfile.custom-jvm
      Copy to Clipboard Toggle word wrap
  3. (선택 사항) 네이티브 실행 파일로 컴파일된 Serverless 애플리케이션을 배포하려면 다음 속성을 구성해야 합니다.

    1. 컨테이너 런타임을 설정합니다.

      quarkus.native.container-build=true
      Copy to Clipboard Toggle word wrap
    2. 컨테이너 엔진을 지정합니다.

      • Podman을 사용하여 기본 실행 파일을 빌드하려면 다음을 수행합니다.

        quarkus.native.container-runtime=podman
        Copy to Clipboard Toggle word wrap
      • Docker를 사용하여 기본 실행 파일을 빌드하려면 다음을 수행합니다.

        quarkus.native.container-runtime=docker
        Copy to Clipboard Toggle word wrap
    3. (선택 사항) 사용자 지정 Dockerfile의 경로를 설정합니다.

      quarkus.openshift.native-dockerfile=<path_to_your_dockerfile>
      Copy to Clipboard Toggle word wrap
  4. 다음 옵션 중 하나를 사용하여 Serverless 애플리케이션을 OpenShift에 패키징하고 배포합니다.

    1. Quarkus Java 애플리케이션을 배포합니다.

      ./mvnw clean package -Dquarkus.kubernetes.deploy=true
      Copy to Clipboard Toggle word wrap
    2. Quarkus 네이티브 애플리케이션을 배포합니다.

      ./mvnw clean package -Pnative -Dquarkus.kubernetes.deploy=true
      Copy to Clipboard Toggle word wrap

검증

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

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

    oc logs -f <pod_name>
    Copy to Clipboard Toggle word wrap

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
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
  5. 변경 사항을 커밋하고 원격 Git 리포지토리로 내보냅니다.
  6. 지원되는 OpenShift 이미지를 가져옵니다.

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

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

    oc start-build <project_name>
    Copy to Clipboard Toggle word wrap

검증

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

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

    oc logs -f <pod_name>
    Copy to Clipboard Toggle word wrap

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>
    Copy to Clipboard Toggle word wrap
  2. oc 를 사용하여 OpenShift에 로그인한 다음 Quarkus Maven 프로젝트가 포함된 디렉터리로 변경합니다.

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

    ./mvnw clean package
    Copy to Clipboard Toggle word wrap
  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
    Copy to Clipboard Toggle word wrap
  6. 변경 사항을 커밋하고 원격 Git 리포지토리로 내보냅니다.
  7. 지원되는 OpenShift 이미지를 가져오려면 다음 명령 중 하나를 입력합니다.

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

    oc new-app ubi8/openjdk-17 <git_path> --name=<project_name>
    Copy to Clipboard Toggle word wrap

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

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

    oc start-build <project_name>
    Copy to Clipboard Toggle word wrap

검증

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

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

    oc logs -f <pod_name>
    Copy to Clipboard Toggle word wrap

1.9. OpenShift에서 배포를 사용자 정의하는 Quarkus 구성 속성

선택적 구성 속성을 정의하여 OpenShift에서 배포를 사용자 지정할 수 있습니다. applications.properties 파일에서 또는 명령줄을 통해 Quarkus 프로젝트를 구성할 수 있습니다.

Expand
표 1.2. Quarkus 구성 속성 및 기본값:
속성설명기본

quarkus.container-image.group

컨테이너 이미지 그룹입니다. OpenShift < project_name>이 호스트 시스템의 사용자 이름과 다른 경우 설정해야 합니다.

${user.name}

quarkus.container-image.registry

사용할 컨테이너 레지스트리

 

quarkus.kubernetes-client.trust-certs

Kubernetes 클라이언트 인증서 인증

 

quarkus.kubernetes.deployment-target

배포 대상 플랫폼. 예: openshift 또는 knative

 

quarkus.native.container-build

컨테이너 런타임을 사용하여 기본 Linux 실행 파일을 빌드합니다. Docker는 기본적으로 사용

false

quarkus.native.container-runtime

이미지를 빌드하는 데 사용되는 컨테이너 런타임(예: Docker)

 

quarkus.openshift.build-strategy

배포 전략

s2i

quarkus.openshift.route.expose

Quarkus 애플리케이션의 경로 노출

false

quarkus.native.debug.enabled

디버그를 활성화하고 별도의 .debug 파일에서 디버그 기호를 생성합니다. quarkus.native.container-build=true 와 함께 사용하는 경우 Red Hat build of Quarkus는 기본 이미지에서 디버그 정보를 분할하기 위해 objcopy 유틸리티를 설치하는 binutils 패키지가 포함되어 있으므로 Red Hat Enterprise Linux 또는 기타 Linux 배포만 지원합니다.

false

법적 공지

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat