Red Hat JBoss Web Server for OpenShift
OpenShift용 Red Hat JBoss Web Server 설치 및 사용
초록
Red Hat JBoss Web Server 설명서에 대한 피드백 제공 링크 복사링크가 클립보드에 복사되었습니다!
오류를 보고하거나 문서를 개선하기 위해 Red Hat Jira 계정에 로그인하여 문제를 제출하십시오. Red Hat Jira 계정이 없는 경우 계정을 생성하라는 메시지가 표시됩니다.
절차
- 티켓을 생성하려면 다음 링크를 클릭하십시오.
- 요약 에 문제에 대한 간략한 설명을 입력합니다.
- 설명에서 문제 또는 개선 사항에 대한 자세한 설명을 제공합니다. 문서에서 문제가 발생한 위치에 URL을 포함합니다.
- Submit 을 클릭하고 문제를 적절한 문서 팀으로 라우팅합니다.
보다 포괄적 수용을 위한 오픈 소스 용어 교체 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
1장. Red Hat JBoss Web Server for OpenShift 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat JBoss Web Server (JWS) 5.7의 Apache Tomcat 9 구성 요소는 Red Hat OpenShift용으로 설계된 컨테이너화된 이미지로 사용할 수 있습니다. 이 이미지를 사용하여 하이브리드 클라우드 환경에 배포할 Java 웹 애플리케이션을 빌드, 확장 및 테스트할 수 있습니다.
1.1. OpenShift용 Red Hat JBoss Web Server와 JWS 간의 차이점 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift용 JWS 이미지는 Red Hat JBoss Web Server의 일반 릴리스와 다릅니다.
OpenShift 이미지용 JWS와 표준 JBoss Web Server 배포의 다음 차이점을 고려하십시오.
-
OpenShift 이미지용 JWS에서
/opt/jws-5.7/디렉터리는JWS_HOME의 위치입니다. -
OpenShift 배포용 JWS에서 모든 로드 밸런싱은 JBoss Core Services
mod_cluster커넥터 또는mod_jk커넥터가 아닌 OpenShift 라우터에서 처리됩니다.
1.2. OpenShift 이미지 버전 호환성 및 지원 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift 이미지는 Red Hat OpenShift Container Platform 고객이 사용하는 가장 일반적인 기술의 조합을 나타내는 다양한 운영 체제 버전, 구성 및 인터페이스 포인트에서 테스트됩니다.
새 애플리케이션을 배포하려면 OpenShift 이미지 및 애플리케이션 템플릿에 대해 5.7 버전의 JWS를 사용해야 합니다.
OpenShift 이미지 및 애플리케이션 템플릿용 JWS 5.6 버전은 더 이상 사용되지 않으며 더 이상 업데이트를 받지 않습니다.
1.3. JBoss Web Server에서 지원되는 아키텍처 링크 복사링크가 클립보드에 복사되었습니다!
JBoss Web Server는 다음과 같은 아키텍처를 지원합니다.
- x86_64 (AMD64)
- OpenShift 환경의 IBM Z(s390x)
- OpenShift 환경의 IBM Power(ppc64le)
지원되는 모든 아키텍처와 함께 OpenJDK 11용 JBoss Web Server 이미지를 사용할 수 있습니다. 이미지에 대한 자세한 내용은 Red Hat Container Catalog 를 참조하십시오.
1.4. Red Hat 컨테이너 이미지의 상태 점검 링크 복사링크가 클립보드에 복사되었습니다!
모든 OpenShift Container Platform 이미지에는 상태 등급이 연결되어 있습니다. 인증된 컨테이너 이미지 페이지로 이동한 다음 JBoss Web Server를 검색하고 5.7 버전을 선택하여 Red Hat JBoss Web Server 의 상태 등급을 확인할 수 있습니다.
OpenShift 컨테이너에서 상태 점검을 수행하여 컨테이너의 라이브 및 준비 상태를 테스트할 수도 있습니다.
2장. OpenShift용 Red Hat JBoss Web Server 시작하기 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat 컨테이너 레지스트리에서 최신 Red Hat JBoss Web Server for OpenShift 이미지 스트림 및 템플릿을 가져올 수 있습니다. 이어서 기존 maven 바이너리 또는 소스 코드에서 OpenShift S2I(Source-to-Image) 프로세스를 사용하여 OpenShift 애플리케이션용 JBoss Web Server를 생성할 수 있습니다.
이 문서의 지침을 따르기 전에 OpenShift 클러스터가 이미 설치되어 사전 요구 사항으로 구성되어 있는지 확인해야 합니다. OpenShift 클러스터 설치 및 구성에 대한 자세한 내용은 OpenShift Container Platform 설치 가이드를 참조하십시오.
OpenShift 애플리케이션 템플릿용 JWS는 Tomcat 9용으로 배포됩니다.
2.1. Red Hat Container Registry의 인증 토큰 구성 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat JBoss Web Server for OpenShift 이미지를 가져오고 사용하려면 먼저 Red Hat Container Registry에 액세스할 수 있도록 인증 토큰을 구성했는지 확인해야 합니다.
레지스트리 서비스 계정을 사용하여 인증 토큰을 생성할 수 있습니다. 즉, OpenShift 구성에서 Red Hat 계정 사용자 이름과 암호를 사용하거나 저장할 필요가 없습니다.
절차
- Red Hat 고객 포털의 지침에 따라 레지스트리 서비스 계정을 사용하여 인증 토큰을 생성합니다.
- 토큰의 토큰 정보 페이지에서 OpenShift Secret 탭을 클릭하고 토큰에 대한 OpenShift 시크릿이 포함된 YAML 파일을 다운로드합니다.
다운로드한 YAML 파일을 사용하여 OpenShift 프로젝트에 대한 인증 토큰 시크릿을 생성합니다.
예를 들면 다음과 같습니다.
oc create -f 1234567_myserviceaccount-secret.yaml
oc create -f 1234567_myserviceaccount-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift 프로젝트의 시크릿을 구성하려면 다음 명령을 입력합니다.
oc secrets link default 1234567-myserviceaccount-pull-secret --for=pull oc secrets link builder 1234567-myserviceaccount-pull-secret --for=pull
oc secrets link default 1234567-myserviceaccount-pull-secret --for=pull oc secrets link builder 1234567-myserviceaccount-pull-secret --for=pullCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이전 예에서
1234567-myserviceaccount를 이전 단계에서 생성한 시크릿 이름으로 바꿉니다.
2.2. JBoss Web Server 이미지 스트림 및 템플릿 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Container Registry에서 OpenShift 이미지 스트림 및 템플릿에 Red Hat JBoss Web Server를 가져올 수 있습니다. 최신 JBoss Web Server 이미지 스트림 및 JDK용 템플릿을 OpenShift 프로젝트의 네임스페이스로 가져와야 합니다.
절차
- 고객 포털 인증 정보를 사용하여 Red Hat Container Registry에 로그인합니다. 자세한 내용은 Red Hat Container Registry Authentication 을 참조하십시오.
사용 중인 JDK 버전에 따라 다음 단계 중 하나를 수행합니다.
OpenJDK 8을 사용하는 경우 다음 명령을 입력합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 명령은 UBI8 JDK 8 이미지 스트림,
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8및 명령에 지정된 모든 템플릿을 가져옵니다.OpenJDK 11을 사용하는 경우 다음 명령을 입력합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 명령은 UBI8 JDK 11 이미지 스트림,
jboss-webserver57-openjdk11-tomcat9-openshift-ubi8및 명령에 지정된 모든 템플릿을 가져옵니다.
2.3. OpenShift 이미지용 최신 JWS 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
import-image 명령을 사용하여 OpenShift 이미지에 사용 가능한 최신 JWS를 가져올 수 있습니다. Red Hat은 OpenJDK 8 및 OpenJDK 11용 별도의 OpenShift 이미지용 JWS를 제공합니다.
사전 요구 사항
절차
사용 중인 JDK 버전에 따라 다음 단계 중 하나를 수행합니다.
OpenJDK 8 OpenShift 이미지를 사용하여 코어 JBoss Web Server 5.7 tomcat 9를 업데이트하려면 다음 명령을 입력합니다.
oc -n openshift import-image \ jboss-webserver57-openjdk8-tomcat9-openshift-ubi8:5.7.0
$ oc -n openshift import-image \ jboss-webserver57-openjdk8-tomcat9-openshift-ubi8:5.7.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenJDK 11 OpenShift 이미지를 사용하여 코어 JBoss Web Server 5.7 tomcat 9를 업데이트하려면 다음 명령을 입력합니다.
oc -n openshift import-image \ jboss-webserver57-openjdk11-tomcat9-openshift-ubi8:5.7.0
$ oc -n openshift import-image \ jboss-webserver57-openjdk11-tomcat9-openshift-ubi8:5.7.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
가져온 각 이미지의 끝에 있는 5.7.0 태그는 이미지 스트림에 설정된 스트림 버전을 나타냅니다.
2.4. OpenShift S2I 프로세스용 JWS 링크 복사링크가 클립보드에 복사되었습니다!
애플리케이션 템플릿 매개변수 및 환경 변수와 함께 OpenShift S2I(Source-to-Image) 프로세스를 사용하여 OpenShift 이미지에 대한 JWS를 실행하고 구성할 수 있습니다.
OpenShift 이미지의 JWS 프로세스는 다음과 같이 작동합니다.
-
구성소스 디렉터리에 Mavensettings.xml파일이 포함된 경우settings.xml파일은 새 이미지의$HOME/.m2/디렉터리로 이동합니다. 소스 리포지토리에
pom.xml파일이 포함된 경우$MAVEN_ARGS환경 변수의 콘텐츠를 사용하여 Maven 빌드가 트리거됩니다.기본적으로
패키지목표는 테스트를 건너뛰는-DskipTests인수와 Red Hat GA 리포지토리를 활성화하는-Dcom.redhat.xpaas.repo.redhatga인수가 포함된openshift프로필과 함께 사용됩니다.Maven 빌드에 성공한 결과는
/opt/jws-5.7/tomcat/webapps디렉터리에 복사됩니다. 여기에는$ARTIFACT_DIR환경 변수로 지정된 소스 디렉터리의 모든 WAR 파일이 포함됩니다.$ARTIFACT_DIR의 기본값은target/디렉토리입니다.$MAVEN_ARGS_APPEND환경 변수를 사용하여 Maven 인수를 수정할 수 있습니다.-
배포소스 디렉터리의 모든 WAR 파일이/opt/jws-5.7/tomcat/webapps디렉터리에 복사됩니다. -
구성소스 디렉터리의 모든 파일은 Maven settings.xml 파일을 제외하고/opt/jws-5.7/tomcat/conf/디렉터리에 복사됩니다. lib소스 디렉터리의 모든 파일이/opt/jws-5.7/tomcat/lib/디렉터리에 복사됩니다.참고사용자 지정 Tomcat 구성 파일을 사용하려면
context.xml및server.xml과 같은 일반적인 Tomcat 설치에 사용되는 것과 동일한 파일 이름을 사용합니다.
사용자 지정 Maven 아티팩트 저장소 미러를 사용하도록 S2I 프로세스를 구성하는 방법에 대한 자세한 내용은 Maven artifact repository mirrors 및 OpenShift용 JWS 를 참조하십시오.
2.5. 기존 Maven 바이너리를 사용하여 OpenShift 애플리케이션용 JWS 생성 링크 복사링크가 클립보드에 복사되었습니다!
기존 Maven 바이너리를 사용하여 OpenShift 애플리케이션용 JWS를 생성할 수 있습니다. oc start-build 명령을 사용하여 OpenShift에 기존 애플리케이션을 배포할 수 있습니다.
다음 절차에서는 tomcat-websocket-chat 빠른 시작 예제를 기반으로 하는 예제 애플리케이션을 생성하는 방법을 설명합니다.
사전 요구 사항
OpenShift용 JWS에 배포하거나 로컬에 애플리케이션을 빌드한 애플리케이션에 대한 기존
.war,.ear,.jar파일이 있습니다.예를 들어
tomcat-websocket-chat애플리케이션을 로컬로 빌드하려면 다음 단계를 수행합니다.소스 코드를 복제하려면 다음 명령을 입력합니다.
git clone https://github.com/jboss-openshift/openshift-quickstarts.git
$ git clone https://github.com/jboss-openshift/openshift-quickstarts.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat JBoss Middleware Maven 리포지토리 구성에 설명된 대로 Red Hat JBoss Middleware Maven 리포지토리를 구성합니다.
Maven 리포지토리에 대한 자세한 내용은 Red Hat JBoss Enerprise Maven Repository 웹 페이지를 참조하십시오.
애플리케이션을 빌드하려면 다음 명령을 입력합니다.
cd openshift-quickstarts/tomcat-websocket-chat/ mvn clean package
$ cd openshift-quickstarts/tomcat-websocket-chat/ $ mvn clean packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 출력을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
절차
로컬 파일 시스템에서 바이너리 빌드 및
배포하위 디렉터리를 위한 소스 디렉터리를 생성합니다.예를 들어
tomcat-websocket-chat애플리케이션의/ocp소스 디렉터리 및/deployments하위 디렉터리를 생성하려면 다음 명령을 입력합니다.cd openshift-quickstarts/tomcat-websocket-chat/ mkdir -p ocp/deployments
$ cd openshift-quickstarts/tomcat-websocket-chat/ $ mkdir -p ocp/deploymentsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고소스 디렉터리에 Maven 바이너리에 포함되지 않은 애플리케이션에 필요한 모든 콘텐츠가 포함될 수 있습니다. 자세한 내용은 OpenShift S2I 프로세스용 JWS 에서 참조하십시오.
.war,.ear,.jar바이너리 파일을deployments하위 디렉터리에 복사합니다.예를 들어 tomcat-websocket-chat 애플리케이션의
.war파일을 복사하려면 다음 명령을 입력합니다.cp target/websocket-chat.war ocp/deployments/
$ cp target/websocket-chat.war ocp/deployments/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이전 예에서
target/websocket-chat.war는 복사하려는 바이너리 파일의 경로입니다.소스 디렉터리의
배포하위 디렉터리에 있는 애플리케이션 아카이브는 OpenShift를 기반으로 빌드된 이미지의$JWS_HOME/tomcat/webapps/디렉터리에 복사됩니다. 애플리케이션을 성공적으로 배포할 수 있도록 하려면 웹 애플리케이션 데이터가 포함된 디렉터리 계층이 올바르게 구성되어 있는지 확인해야 합니다. 자세한 내용은 OpenShift S2I 프로세스용 JWS 에서 참조하십시오.OpenShift 인스턴스에 로그인합니다.
oc login <url>
$ oc login <url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 새 프로젝트를 생성합니다.
예를 들면 다음과 같습니다.
oc new-project jws-bin-demo
$ oc new-project jws-bin-demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서
jws-bin-demo는 생성할 프로젝트의 이름입니다.애플리케이션에 사용할 OpenShift 이미지 스트림의 JWS를 확인합니다.
oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
$ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' 'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 유형의 출력을 생성합니다.
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고n openshift옵션은 사용할 프로젝트를 지정합니다.oc get is -n openshift명령은openshift프로젝트에서 이미지 스트림 리소스를 가져옵니다.새 빌드 구성을 생성하고 이미지 스트림 및 애플리케이션 이름을 지정해야 합니다.
예를 들어, tomcat-websocket-chat 애플리케이션에 대한 새 빌드 구성을 생성하려면 다음을 수행합니다.
oc new-build --binary=true \ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8:latest\*
$ oc new-build --binary=true \ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8:latest\* --name=jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서
jws-wsch-app은 OpenShift 애플리케이션용 JWS의 이름입니다.위 명령은 다음 유형의 출력을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 바이너리 빌드를 시작합니다.
예를 들면 다음과 같습니다.
oc start-build jws-wsch-app --from-dir=./ocp --follow
$ oc start-build jws-wsch-app --from-dir=./ocp --followCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서
jws-wsch-app은 OpenShift 애플리케이션용 JWS의 이름이며ocp는 소스 디렉터리의 이름입니다.이전 명령은 OpenShift 이미지 빌드의 바이너리 입력을 위해 생성한 소스 디렉터리를 사용하도록 OpenShift에 지시합니다.
위 명령은 다음 유형의 출력을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지를 기반으로 새 OpenShift 애플리케이션을 생성합니다.
예를 들면 다음과 같습니다.
oc new-app jws-wsch-app
$ oc new-app jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서
jws-wsch-app은 OpenShift 애플리케이션용 JWS의 이름입니다.위 명령은 다음 유형의 출력을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 사용자가 애플리케이션에 액세스할 수 있도록 서비스를 노출합니다.
예를 들어
jws-wsch-app애플리케이션 예제를 액세스하려면 다음 단계를 수행합니다.노출할 서비스 이름을 확인합니다.
oc get svc -o name
$ oc get svc -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 유형의 출력을 생성합니다.
service/jws-wsch-app
service/jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스를 노출합니다.
oc expose svc/jws-wsch-app
$ oc expose svc/jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 유형의 출력을 생성합니다.
route "jws-wsch-app" exposed
route "jws-wsch-app" exposedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
노출된 경로의 주소를 검색합니다.
oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-app
oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 웹 브라우저를 열고 URL을 입력하여 애플리케이션에 액세스합니다.
예를 들어 예제
jws-wsch-app애플리케이션에 액세스하려면 다음 URL을 입력합니다.\http://<address_of_exposed_route>/websocket-chat참고이전 예에서 <
address_of_exposed_route>를 배포에 적합한 값으로 바꿉니다.
2.6. 소스 코드에서 OpenShift 애플리케이션용 JWS 생성 링크 복사링크가 클립보드에 복사되었습니다!
소스 코드에서 OpenShift 애플리케이션용 JWS를 생성할 수 있습니다.
소스 코드에서 새 OpenShift 애플리케이션을 생성하는 방법에 대한 자세한 내용은 OpenShift.com - 소스 코드에서 애플리케이션 생성을 참조하십시오.
사전 요구 사항
- 애플리케이션 데이터가 올바르게 구조화되어 있습니다. 자세한 내용은 OpenShift S2I 프로세스용 JWS 에서 참조하십시오.
절차
OpenShift 인스턴스에 로그인합니다.
oc login <url>
$ oc login <url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 필요한 경우 새 프로젝트를 생성합니다.
oc new-project <project-name>
$ oc new-project <project-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이전 예에서 <
project-name>을 생성할 프로젝트의 이름으로 바꿉니다.애플리케이션에 사용할 OpenShift 이미지 스트림의 JWS를 확인합니다.
oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
$ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' 'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 유형의 출력을 생성합니다.
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고n openshift옵션은 사용할 프로젝트를 지정합니다.oc get is -n openshift명령은openshift프로젝트에서 이미지 스트림 리소스를 가져옵니다.Red Hat JBoss Web Server for OpenShift 이미지를 사용하여 소스 코드에서 새 OpenShift 애플리케이션을 생성합니다.
oc new-app \ <source_code_location>\ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8\ --name=<openshift_application_name>
$ oc new-app \ <source_code_location>\ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8\ --name=<openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 예를 들면 다음과 같습니다.
oc new-app \ \https://github.com/jboss-openshift/openshift-quickstarts.git#main \ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8\ --context-dir='tomcat-websocket-chat' \ --name=jws-wsch-app
$ oc new-app \ \https://github.com/jboss-openshift/openshift-quickstarts.git#main \ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8\ --context-dir='tomcat-websocket-chat' \ --name=jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위의 명령은 이미지에 소스 코드를 추가하고 소스 코드를 컴파일합니다. 위 명령은 빌드 구성 및 서비스도 생성합니다.
애플리케이션을 공개하려면 다음 단계를 수행합니다.
노출할 서비스 이름을 확인하려면 다음을 수행합니다.
oc get svc -o name
$ oc get svc -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 유형의 출력을 생성합니다.
service/<openshift_application_name>
service/<openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스를 노출하려면 다음을 수행하십시오.
oc expose svc/<openshift_application_name>
$ oc expose svc/<openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 유형의 출력을 생성합니다.
route "<openshift_application_name>" exposed
route "<openshift_application_name>" exposedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
노출된 경로의 주소를 검색하려면 다음을 수행합니다.
oc get routes --no-headers -o custom-columns='host:spec.host' <openshift_application_name>
oc get routes --no-headers -o custom-columns='host:spec.host' <openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 웹 브라우저를 열고 다음 URL을 입력하여 애플리케이션에 액세스합니다.
\http://<address_of_exposed_route>/<java_application_name>참고이전 예에서 <
address_of_exposed_route> 및 <java_application_name>을 배포의 적절한 값으로 바꿉니다.
2.7. tomcat/lib 디렉토리에 추가 JAR 파일 추가 링크 복사링크가 클립보드에 복사되었습니다!
Docker를 사용하여 tomcat/lib 디렉터리에 JAR(Java Archive) 파일을 추가할 수 있습니다.
절차
Docker에서 이미지를 시작합니다.
docker run --network host -i -t -p 8080:8080 ImageURL
docker run --network host -i -t -p 8080:8080 ImageURLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 고객
ID찾기 :docker ps | grep <ImageName>
docker ps | grep <ImageName>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 라이브러리를
tomcat/lib/디렉터리에 복사합니다.docker cp <yourLibrary> <CONTAINER ID>:/opt/jws-5.7/tomcat/lib/
docker cp <yourLibrary> <CONTAINER ID>:/opt/jws-5.7/tomcat/lib/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 이미지에 변경 사항을 커밋합니다.
docker commit <CONTAINER ID> <NEW IMAGE NAME>
docker commit <CONTAINER ID> <NEW IMAGE NAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새 이미지 태그를 생성합니다.
docker tag <NEW IMAGE NAME>:latest <NEW IMAGE REGISTRY URL>:<TAG>
docker tag <NEW IMAGE NAME>:latest <NEW IMAGE REGISTRY URL>:<TAG>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이미지를 레지스트리로 푸시합니다.
docker push <NEW IMAGE REGISTRY URL>
docker push <NEW IMAGE REGISTRY URL>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3장. Red Hat OpenShift용 Red Hat JBoss Web Server 미터링 라벨 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat JBoss Web Server Pod에 미터링 라벨을 추가하고 OpenShift Metering Operator를 사용하여 Red Hat 서브스크립션 세부 정보를 확인할 수 있습니다.
- Operator 또는 템플릿이 배포 및 관리하는 Pod에는 미터링 라벨을 추가하지 마십시오.
- OpenShift Container Platform 버전 4.8 및 이전 버전에서 Metering Operator를 사용하여 Pod에 라벨을 적용할 수 있습니다. 버전 4.9부터는 직접 교체하지 않고 Metering Operator를 더 이상 사용할 수 없습니다.
Red Hat JBoss Web Server는 다음과 같은 미터링 레이블을 사용할 수 있습니다.
-
com.company: Red_Hat -
rht.prod_name: Red_Hat_Runtimes -
rht.prod_ver: 2022-Q4 -
rht.comp: JBoss_Web_Server -
rht.comp_ver: 5.7.0 -
rht.subcomp: Tomcat 9 -
rht.subcomp_t: application
부록 A. S2I 스크립트 및 Maven 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift용 Red Hat JBoss Web Server 이미지에는 S2I 스크립트 및 Maven이 포함되어 있습니다.
A.1. Maven 아티팩트 저장소 미러 및 OpenShift용 JWS 링크 복사링크가 클립보드에 복사되었습니다!
Maven 리포지토리에는 프로젝트 Java 아카이브(JAR) 파일, 라이브러리 JAR 파일, 플러그인 또는 기타 프로젝트별 아티팩트와 같은 빌드 아티팩트 및 종속성이 있습니다. Maven 리포지토리는 S2I(Source-to-Image) 빌드를 수행하는 동안 아티팩트를 다운로드할 수 있는 위치도 정의합니다. Maven Central Repository 를 사용하는 것 외에도 일부 조직에서는 로컬 사용자 지정 리포지토리(미러)도 배포합니다.
로컬 미러는 다음과 같은 이점을 제공합니다.
- 지리적으로 더 빠르고 더 빠른 동기화 미러의 가용성
- 리포지토리 콘텐츠 제어 강화
- 공용 서버 및 리포지토리에 의존하지 않고도 다양한 팀(개발자 및 연속 통합(CI))에서 아티팩트를 공유할 수 있습니다.
- 빌드 시간 개선
Maven 리포지토리 관리자는 미러에 대한 로컬 캐시 역할을 할 수 있습니다. 리포지토리 관리자가 이미 배포되어 있으며 지정된 URL 위치에 외부로 연결할 수 있는 경우 S2I 빌드에서 이 리포지토리를 사용할 수 있습니다. 애플리케이션의 빌드 구성에 MAVEN_MIRROR_URL 환경 변수를 추가하여 내부 Maven 리포지토리를 사용할 수 있습니다.
A.1.1. 새 빌드 구성에 내부 Maven 리포지토리 사용 링크 복사링크가 클립보드에 복사되었습니다!
oc new-app 명령 또는 oc new-build 명령으로 --build-env 옵션을 지정하여 애플리케이션의 새 빌드 구성에 MAVEN_MIRROR_URL 환경 변수를 추가할 수 있습니다.
절차
다음 명령을 실행합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고앞의 명령은 리포지토리 관리자가 이미 배포되어 있다고 가정하고
http://10.0.0.1:8080/repository/internal/에서 연결할 수 있습니다.
A.1.2. 기존 빌드 구성에 내부 Maven 리포지토리 사용 링크 복사링크가 클립보드에 복사되었습니다!
oc env 명령으로 빌드 구성 이름을 지정하여 MAVEN_MIRROR_URL 환경 변수를 애플리케이션의 기존 빌드 구성에 추가할 수 있습니다.
절차
MAVEN_MIRROR_URL변수가 필요한 빌드 구성을 확인합니다.oc get bc -o name
$ oc get bc -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 위 명령은 다음 유형의 출력을 생성합니다.
buildconfig/jws
buildconfig/jwsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위 예제에서 jws는 빌드 구성의 이름입니다.
MAVEN_MIRROR_URL환경 변수를buildconfig/jws에 추가합니다.oc env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/"
$ oc env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/" buildconfig "jws" updatedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 빌드 구성이 업데이트되었는지 확인합니다.
oc env bc/jws --list buildconfigs jws
$ oc env bc/jws --list # buildconfigs jws MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
oc start-build를 사용하여 애플리케이션의 새 빌드 예약
애플리케이션 빌드 프로세스 중에 Maven 종속성은 기본 공용 리포지토리가 아닌 리포지토리 관리자에서 다운로드됩니다. 빌드 프로세스가 완료되면 미러에는 빌드 프로세스 중에 검색 및 사용되는 모든 종속 항목이 포함됩니다.
A.2. OpenShift 이미지용 Red Hat JBoss Web Server에 포함된 스크립트 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift용 Red Hat JBoss Web Server 이미지에는 Catalina를 실행하고 Maven을 사용하여 .war 패키지를 생성하고 배포하는 스크립트가 포함되어 있습니다.
run- runs catalina (Tomcat)
assemble-
Maven을 사용하여 웹 애플리케이션 소스를 빌드하고
.war파일을 생성하고.war파일을$JWS_HOME/tomcat/webapps디렉터리로 이동합니다.
A.3. OpenShift 데이터 소스용 JWS 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift용 JWS는 세 가지 유형의 데이터 소스를 제공합니다.
- 기본 내부 데이터 소스
-
PostgreSQL, MySQL 및 MongoDB 데이터 소스는 기본적으로 Red Hat Registry를 통해 OpenShift에서 사용할 수 있습니다. 이러한 데이터 소스에는 이미지 스트림에 맞게 추가 환경 파일을 구성할 필요가 없습니다. 데이터베이스를 검색하고 데이터 소스로 사용하려면
DB_SERVICE_PREFIX_MAPPING환경 변수를 OpenShift 서비스 이름으로 설정할 수 있습니다. - 기타 내부 데이터 소스
- 이러한 데이터 소스는 OpenShift에서 실행되지만 기본적으로 Red Hat Registry를 통해 사용할 수 없습니다. OpenShift Secrets에 추가된 환경 파일은 다른 내부 데이터 소스의 구성을 제공합니다.
- 외부 데이터 소스
- 이러한 데이터 소스는 OpenShift에서 실행되지 않습니다. OpenShift Secrets에 추가된 환경 파일은 외부 데이터 소스의 구성을 제공합니다.
ENV_FILES 속성
데이터 소스의 환경 변수를 프로젝트의 OpenShift Secret에 추가할 수 있습니다. ENV_FILES 속성을 사용하여 템플릿 내에서 이러한 환경 파일을 호출할 수 있습니다.
DB_SERVICE_PREFIX_MAPPING 환경 변수
데이터 소스는 특정 환경 변수의 값을 기반으로 자동으로 생성됩니다. DB_SERVICE_PREFIX_MAPPING 환경 변수는 데이터 소스에 대한 JNDI 매핑을 정의합니다.
DB_SERVICE_PREFIX_MAPPING 변수에 허용되는 값은 POOLNAME-DATABASETYPE=PREFIX 트래블릿의 쉼표로 구분된 목록입니다. 각 확장은 다음 값으로 구성됩니다.
-
POOLNAME은 데이터 소스에서pool-name으로 사용됩니다. -
10.0.0.1TYPE는 사용할 데이터베이스 드라이버입니다. -
KubeEFIX는 데이터 소스를 구성하는 데 사용되는 환경 변수 이름의 접두사입니다.
DB_SERVICE_PREFIX_MAPPING 환경 변수에 정의된 각 POOLNAME-DATABASETYPE=PREFIX 에 대해 이미지를 실행할 때 실행되는 별도의 데이터 소스를 생성합니다.
A.4. OpenShift 호환 환경 변수용 JWS 링크 복사링크가 클립보드에 복사되었습니다!
S2I(Source-to-Image) 빌드 명령을 사용하여 환경 변수를 포함하여 빌드 구성을 수정할 수 있습니다. 자세한 내용은 Maven 아티팩트 저장소 미러 및 OpenShift용 JWS를 참조하십시오.
다음 표에는 OpenShift 이미지용 Red Hat JBoss Web Server에 유효한 환경 변수가 나열되어 있습니다.
| 변수 이름 | 표시 이름 | 설명 | 값 예 |
|---|---|---|---|
| ARTIFACT_DIR | 해당 없음 |
| 대상 |
| APPLICATION_NAME | 애플리케이션 이름 | 애플리케이션 이름입니다. | jws-app |
| CONTEXT_DIR | 컨텍스트 디렉터리 | 빌드할 Git 프로젝트 내 경로; 루트 프로젝트 디렉터리용 비어 있음 | tomcat-websocket-chat |
| GITHUB_WEBHOOK_SECRET | GitHub Webhook 보안 | GitHub 트리거 보안 | [a-zA-Z0-9]{8}에서 표현식 |
| GENERIC_WEBHOOK_SECRET | 일반 Webhook 보안 | 일반 빌드 트리거 보안 | [a-zA-Z0-9]{8}에서 표현식 |
| HOSTNAME_HTTP | 사용자 정의 HTTP 경로 호스트 이름 | http 서비스 경로에 대한 사용자 정의 호스트 이름입니다. 기본 호스트 이름의 경우 비워 둡니다. | <application-name>-<project>.<default-domain-suffix> |
| HOSTNAME_HTTPS | 사용자 정의 HTTPS 경로 호스트 이름 | https 서비스 경로에 대한 사용자 정의 호스트 이름입니다. 기본 호스트 이름의 경우 비워 둡니다. | <application-name>-<project>.<default-domain-suffix> |
| IMAGE_STREAM_NAMESPACE | 이미지 스트림 네임스페이스 | Red Hat Middleware 이미지의 ImageStream이 설치된 네임스페이스 | openshift |
| JWS_HTTPS_SECRET | 보안 이름 | 인증서 파일이 포함된 보안의 이름 | jws-app-secret |
| JWS_HTTPS_CERTIFICATE | 인증서 이름 | 보안 내의 인증서 파일의 이름 | server.crt |
| JWS_HTTPS_CERTIFICATE_KEY | 인증서 키 이름 | 보안 내의 인증서 키 파일의 이름 | server.key |
| JWS_HTTPS_CERTIFICATE_PASSWORD | 인증서 암호 | 인증서 암호 | P5ssw0rd |
| SOURCE_REPOSITORY_URL | Git 리포지토리 URL | 애플리케이션의 Git 소스 URI | https://github.com/jboss-openshift/openshift-quickstarts.git |
| SOURCE_REPOSITORY_REFERENCE | Git 참조 | Git 분기/tag 참조 | 1.2 |
| IMAGE_STREAM_NAMESPACE | 이미지 스트림 네임스페이스 | Red Hat Middleware 이미지의 ImageStream이 설치된 네임스페이스 | openshift |
| MAVEN_MIRROR_URL | Maven 미러 URL | 구성할 Maven 미러/repository 관리자의 URL입니다. | http://10.0.0.1:8080/repository/internal/ |
부록 B. OpenShift용 JWS의 축소 링크 복사링크가 클립보드에 복사되었습니다!
다음 환경 변수를 정의할 수 있습니다. 이 구성 요소를 관련 catalina 컨테이너의 요청 처리 파이프라인에 삽입할 수 있습니다.
| 변수 이름 | 설명 | 값 예 | 기본값 |
|---|---|---|---|
| ENABLE_ACCESS_LOG | Access Log Valve를 사용하여 표준 출력 채널에 액세스 메시지를 기록할 수 있습니다. | true | false |
부록 C. OpenShift 로그 확인 링크 복사링크가 클립보드에 복사되었습니다!
oc logs 명령을 사용하여 실행 중인 컨테이너에 대해 OpenShift 로그 또는 콘솔에서 제공하는 로그를 볼 수 있습니다.
절차
다음 명령을 실행합니다.
oc logs -f <pod_name> <container_name>
$ oc logs -f <pod_name> <container_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고이전 명령에서 <
pod_name> 및 <container_name>을 배포에 적합한 값으로 바꿉니다.액세스 로그는
/opt/jws-5.7/tomcat/logs/디렉터리에 저장됩니다.