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 이미지를 사용할 것을 권장합니다.
사전 요구 사항
- Quarkus 애플리케이션이 Java 11로 빌드되도록 합니다. Java 17 애플리케이션의 경우 S2I를 사용하여 Quarkus 애플리케이션을 OpenShift(Java 17)에 배포할 수 있습니다.
-
quarkus-openshift
확장을 포함하는 Quarkus Maven 프로젝트를 준비합니다. - Git 리포지토리에 Quarkus Maven 프로젝트를 호스팅합니다.
프로세스
oc
를 사용하여 OpenShift에 로그인한 다음 Quarkus Maven 프로젝트가 포함된 디렉터리로 변경합니다.- 올바른 OpenShift 프로젝트 네임스페이스에서 작업 중인지 확인하려면 필요한 OpenShift 프로젝트로 전환을 참조하십시오.
Java 11 애플리케이션을 패키징합니다.
./mvnw clean package
-
pom.xml
파일과 동일한 수준에서.s2i
라는 숨겨진 디렉토리를 만듭니다. .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
- 변경 사항을 커밋하고 원격 Git 리포지토리로 내보냅니다.
지원되는 OpenShift 이미지를 가져옵니다.
oc import-image --confirm ubi8/openjdk-11 --from=ubi8/openjdk-11
프로젝트를 빌드하려면 애플리케이션을 생성하고 OpenShift 서비스를 배포합니다.
oc new-app ubi8/openjdk-11 <git_path> --name=<project_name>
업데이트된 버전의 프로젝트를 배포하려면 업데이트를 Git 리포지토리로 푸시하고 다음 명령을 입력합니다.
oc start-build <project_name>
검증
현재 OpenShift 프로젝트와 연결된 Pod 목록을 보려면 다음을 수행합니다.
oc get pods
애플리케이션 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 애플리케이션을 배포하는 데 도움이 되는 정보가 제공됩니다.
사전 요구 사항
- Java 17로 빌드된 Quarkus 애플리케이션을 준비합니다. Java 11 애플리케이션의 경우 S2I를 사용하여 Quarkus 애플리케이션을 OpenShift(Java 11)에 배포를 참조하십시오.
-
quarkus-openshift
확장을 포함하는 Quarkus Maven 프로젝트를 준비합니다. - Git 리포지토리에 Quarkus Maven 프로젝트를 호스팅합니다.
프로세스
pom.xml
파일을 열고 다음과 같이 Java 구성을 버전 17으로 변경합니다.<maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target>
oc
를 사용하여 OpenShift에 로그인한 다음 Quarkus Maven 프로젝트가 포함된 디렉터리로 변경합니다.- 올바른 OpenShift 프로젝트 네임스페이스에서 작업 중인지 확인하려면 필요한 OpenShift 프로젝트로 전환을 참조하십시오.
Java 17 애플리케이션을 패키징합니다.
./mvnw clean package
-
pom.xml
파일과 동일한 수준에서.s2i
라는 숨겨진 디렉토리를 만듭니다. .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
- 변경 사항을 커밋하고 원격 Git 리포지토리로 내보냅니다.
지원되는 OpenShift 이미지를 가져오려면 다음 명령 중 하나를 입력합니다.
oc import-image --confirm ubi8/openjdk-17 --from=registry.access.redhat.com/ubi8/openjdk-17
OpenShift에서 프로젝트를 빌드하려면 다음 명령을 입력합니다.
oc new-app ubi8/openjdk-17 <git_path> --name=<project_name>
여기서: * {t> 는 Quarkus 프로젝트를 호스팅하는 Git 리포지토리의 경로입니다 * <project_name>은 사용자가 생성한 OpenShift 프로젝트입니다.
OpenShift에 배포를 시작하려면 다음 명령을 입력합니다.
oc start-build <project_name>
검증
현재 OpenShift 프로젝트와 연결된 Pod 목록을 보려면 다음을 수행합니다.
oc get pods
애플리케이션 Pod의 로그 출력을 검색하려면 다음 명령을 입력합니다. 여기서 <
pod_name
>은 애플리케이션 이름이 접두사가 지정된 최신 Pod의 이름입니다.oc logs -f <pod_name>
추가 리소스