2.8. S2I 배포


통합된 S2I(Source-to-Image) 빌더는 OpenShift에 애플리케이션을 배포하는 방법 중 하나입니다. S2I는 재현 가능한 Docker 형식의 컨테이너 이미지를 빌드하는 툴입니다. 자세한 내용은 OpenShift 개념을 참조하십시오.

사전 요구 사항

  • ROSA 클러스터

2.8.1. 로그인 명령 검색

프로세스

  1. 다음 명령을 실행하여 CLI(명령줄 인터페이스)에 로그인했는지 확인합니다.

    rosa whoami
    Copy to Clipboard Toggle word wrap

    명령줄 인터페이스에 로그인한 경우 "새 프로젝트 생성"으로 건너뜁니다. 명령줄 인터페이스에 로그인하지 않은 경우 이 절차를 계속합니다.

  2. OpenShift Cluster Manager 에서 CLI(명령줄 인터페이스)에 로그인하지 않은 경우 오른쪽 상단에 있는 이름 옆에 있는 드롭다운 화살표를 클릭하고 로그인 명령 복사를 선택합니다.

  3. 새 탭이 열립니다. 사용자 이름과 암호를 입력하고 인증 방법을 선택합니다.
  4. 토큰 표시를클릭합니다.
  5. "이 토큰을 사용하여 로그인"에서 명령을 복사합니다.
  6. 터미널에서 복사한 명령을 실행하여 CLI에 로그인합니다.

    입력 예

    $ oc login --token=RYhFlXXXXXXXXXXXX --server=https://api.osd4-demo.abc1.p1.openshiftapps.com:6443
    Copy to Clipboard Toggle word wrap

    출력 예

    Logged into "https://api.myrosacluster.abcd.p1.openshiftapps.com:6443" as "rosa-user" using the token provided.
    
    You don't have any projects. You can try to create a new project, by running
    
    oc new-project <project name>
    Copy to Clipboard Toggle word wrap

2.8.2. 새 프로젝트 생성

  • 다음 명령을 실행하여 CLI에서 새 프로젝트를 생성합니다.

    $ oc new-project ostoy-s2i
    Copy to Clipboard Toggle word wrap

2.8.3. OSToy 리포지토리 분기

소스 코드 변경에 따라 자동화된 빌드를 트리거하려면 GitHub Webhook를 설정해야 합니다. GitHub 리포지토리로 코드를 내보낼 때 Webhook에서 S2I 빌드를 트리거합니다. Webhook를 설정하려면 먼저 리포지토리를 분기해야 합니다.

중요

이 가이드에서 < UserName >을 다음 URL의 고유한 GitHub 사용자 이름으로 바꿉니다.

2.8.4. S2i를 사용하여 클러스터에 OSToy 배포

프로세스

  1. OpenShift에 시크릿을 추가합니다.

    이 예제에서는 .env 파일을 에뮬레이션합니다. 파일은 OpenShift 환경으로 직접 이동할 수 있으며 시크릿에서 이름을 변경할 수도 있습니다.

    • 다음 명령을 실행하여 < UserName>을 GitHub 사용자 이름으로 교체합니다.

      $ oc create -f https://raw.githubusercontent.com/<UserName>/ostoy/master/deployment/yaml/secret.yaml
      Copy to Clipboard Toggle word wrap
  2. OpenShift에 ConfigMap을 추가합니다.

    이 예제에서는 일반적으로 OpenShift 애플리케이션에서 기본 구성을 재정의하는 데 사용되는 HAProxy 구성 파일을 에뮬레이션합니다. ConfigMap에서 파일의 이름을 변경할 수 있습니다.

    • 다음 명령을 실행하여 < UserName>을 GitHub 사용자 이름으로 교체합니다.

      $ oc create -f https://raw.githubusercontent.com/<UserName>/ostoy/master/deployment/yaml/configmap.yaml
      Copy to Clipboard Toggle word wrap
  3. 마이크로 서비스를 배포합니다.

    UI 애플리케이션에서 서비스 환경 변수를 사용할 수 있도록 마이크로 서비스를 배포해야 합니다.

    --context-dir 은 Git 리포지토리의 마이크로 서비스 디렉터리에 정의된 애플리케이션을 빌드합니다. app 레이블을 사용하면 UI(사용자 인터페이스) 애플리케이션 및 마이크로 서비스가 모두 OpenShift UI로 그룹화됩니다.

    • 다음 명령을 실행하여 마이크로 서비스를 생성하고 < UserName& gt;을 GitHub 사용자 이름으로 교체합니다.

      $ oc new-app https://github.com/<UserName>/ostoy \
          --context-dir=microservice \
          --name=ostoy-microservice \
          --labels=app=ostoy
      Copy to Clipboard Toggle word wrap

      출력 예

      --> Creating resources with label app=ostoy ...
          imagestream.image.openshift.io "ostoy-microservice" created
          buildconfig.build.openshift.io "ostoy-microservice" created
          deployment.apps "ostoy-microservice" created
          service "ostoy-microservice" created
      --> Success
          Build scheduled, use 'oc logs -f buildconfig/ostoy-microservice' to track its progress.
          Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
           'oc expose service/ostoy-microservice'
          Run 'oc status' to view your app.
      Copy to Clipboard Toggle word wrap

  4. 마이크로 서비스의 상태를 확인합니다.

    • 다음 명령을 실행하여 마이크로 서비스가 생성되었고 올바르게 실행되고 있는지 확인합니다.

      $ oc status
      Copy to Clipboard Toggle word wrap

      출력 예

      In project ostoy-s2i on server https://api.myrosacluster.g14t.p1.openshiftapps.com:6443
      
      svc/ostoy-microservice - 172.30.47.74:8080
        dc/ostoy-microservice deploys istag/ostoy-microservice:latest <-
          bc/ostoy-microservice source builds https://github.com/UserName/ostoy on openshift/nodejs:14-ubi8
          deployment #1 deployed 34 seconds ago - 1 pod
      Copy to Clipboard Toggle word wrap

      마이크로 서비스가 성공적으로 배포될 때까지 기다립니다. 웹 UI를 통해 이를 확인할 수도 있습니다.

  5. 프런트 엔드 UI를 배포합니다.

    애플리케이션은 여러 환경 변수를 사용하여 외부 설정을 정의합니다.

    • 보안 및 ConfigMap을 연결하고 다음 명령을 실행하여 PersistentVolume을 생성합니다.

      $ oc new-app https://github.com/<UserName>/ostoy \
          --env=MICROSERVICE_NAME=OSTOY_MICROSERVICE
      Copy to Clipboard Toggle word wrap

      출력 예

      --> Creating resources ...
          imagestream.image.openshift.io "ostoy" created
          buildconfig.build.openshift.io "ostoy" created
          deployment.apps "ostoy" created
          service "ostoy" created
      --> Success
          Build scheduled, use 'oc logs -f buildconfig/ostoy' to track its progress.
          Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
           'oc expose service/ostoy'
          Run 'oc status' to view your app.
      Copy to Clipboard Toggle word wrap

  6. 다음 명령을 실행하여 배포를 업데이트합니다.

    $ oc patch deployment ostoy --type=json -p \
        '[{"op": "replace", "path": "/spec/strategy/type", "value": "Recreate"}, {"op": "remove", "path": "/spec/strategy/rollingUpdate"}]'
    Copy to Clipboard Toggle word wrap
  7. 활성 프로브를 설정합니다.

    활성 프로브를 생성하여 애플리케이션에서 문제가 발생하면 포드가 다시 시작되는지 확인합니다.

    • 다음 명령을 실행합니다.

      $ oc set probe deployment ostoy --liveness --get-url=http://:8080/health
      Copy to Clipboard Toggle word wrap
  8. 시크릿, ConfigMap 및 영구 볼륨을 배포에 연결합니다.

    1. 다음 명령을 실행하여 보안을 연결합니다.

      $ oc set volume deployment ostoy --add \
          --secret-name=ostoy-secret \
          --mount-path=/var/secret
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 ConfigMap을 연결합니다.

      $ oc set volume deployment ostoy --add \
          --configmap-name=ostoy-config \
          -m /var/config
      Copy to Clipboard Toggle word wrap
    3. 다음 명령을 실행하여 영구 볼륨을 생성하고 연결합니다.

      $ oc set volume deployment ostoy --add \
          --type=pvc \
          --claim-size=1G \
          -m /var/demo_files
      Copy to Clipboard Toggle word wrap
  9. UI 애플리케이션을 OpenShift 경로로 노출합니다.

    • 다음 명령을 실행하여 포함된 TLS 와일드카드 인증서를 사용하는 HTTPS 애플리케이션으로 애플리케이션을 배포합니다.

      $ oc create route edge --service=ostoy --insecure-policy=Redirect
      Copy to Clipboard Toggle word wrap
  10. 다음 방법을 사용하여 애플리케이션을 찾습니다.

    • 다음 명령을 실행하여 OSToy 애플리케이션으로 웹 브라우저를 엽니다.

      $ python -m webbrowser "$(oc get route ostoy -o template --template='https://{{.spec.host}}')"
      Copy to Clipboard Toggle word wrap
    • 다음 명령을 실행하여 애플리케이션의 경로를 가져오고 브라우저에 경로를 복사하여 붙여넣습니다.

      $ oc get route
      Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat