검색

9장. 배포

download PDF

9.1. Deployments 작동 방식

9.1.1. 배포란 무엇입니까?

OpenShift Container Platform 배포는 일반적인 사용자 애플리케이션에 대한 세분화된 관리를 제공합니다. 다음 세 가지 API 오브젝트를 사용하여 설명합니다.

  • 애플리케이션의 특정 구성 요소에 대한 원하는 상태를 Pod 템플릿으로 설명하는 배포 구성입니다.
  • 배포 구성 상태에 대한 시점 레코드가 Pod 템플릿으로 포함된 하나 이상의 복제 컨트롤러입니다.
  • 하나 이상의 Pod: 특정 버전의 애플리케이션 인스턴스를 나타냅니다.
중요

사용자는 배포 구성에서 소유한 복제 컨트롤러 또는 Pod를 조작할 필요가 없습니다. 배포 시스템을 통해 배포 구성 변경 사항이 적절하게 전파됩니다. 기존 배포 전략이 사용 사례에 적합하지 않고 배포 라이프사이클 동안 수동 단계를 실행할 필요가 있는 경우 사용자 정의 전략을 생성해야 합니다.

배포 구성을 생성하면 배포 구성의 Pod 템플릿을 나타내는 복제 컨트롤러가 생성됩니다. 배포 구성이 변경되면 최신 Pod 템플릿을 사용하여 새 복제 컨트롤러가 생성되고 배포 프로세스가 실행되어 이전 복제 컨트롤러를 축소하고 새 복제 컨트롤러를 확장합니다.

애플리케이션 인스턴스는 생성 시 서비스 로드 밸런서와 라우터 모두에서 자동으로 추가 및 제거됩니다. 애플리케이션에서 TERM 신호를 수신할 때 정상 종료 를 지원하는 경우 실행 중인 사용자 연결을 정상적으로 완료할 수 있는 기회를 제공할 수 있습니다.

배포 시스템에서 제공하는 기능:

  • 실행 중인 애플리케이션에 대한 템플릿인 배포 구성.
  • 이벤트에 대한 응답으로 자동 배포를 구동하는 트리거
  • 이전 버전에서 새 버전으로 전환하는 사용자 정의 가능 전략. 전략은 일반적으로 배포 프로세스라는 Pod 내에서 실행됩니다.
  • 배포 라이프사이클 중 다른 시점에서 사용자 정의 동작을 실행하기 위한 후크 세트입니다.
  • 배포가 실패하는 경우 롤백 을 수동 또는 자동으로 지원하기 위한 애플리케이션 버전 관리
  • 복제 수동 스케일링자동 스케일링.

9.1.2. 배포 구성 생성

배포 구성은 다른 모든 리소스와 마찬가지로 oc 명령으로 관리할 수 있는 deploymentConfig OpenShift Container Platform API 리소스입니다. 다음은 deploymentConfig 리소스의 예입니다.

kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
  name: "frontend"
spec:
  template: 1
    metadata:
      labels:
        name: "frontend"
    spec:
      containers:
        - name: "helloworld"
          image: "openshift/origin-ruby-sample"
          ports:
            - containerPort: 8080
              protocol: "TCP"
  replicas: 5 2
  triggers:
    - type: "ConfigChange" 3
    - type: "ImageChange" 4
      imageChangeParams:
        automatic: true
        containerNames:
          - "helloworld"
        from:
          kind: "ImageStreamTag"
          name: "origin-ruby-sample:latest"
  strategy: 5
    type: "Rolling"
  paused: false 6
  revisionHistoryLimit: 2 7
  minReadySeconds: 0 8
1
프론트엔드 배포 구성의 포드 템플릿은 간단한 Ruby 애플리케이션을 설명합니다.
2
frontend 에는 5개의 복제본이 있습니다.
3
포드 템플릿이 변경될 때마다 구성 변경 트리거 를 통해 새 복제 컨트롤러가 생성됩니다.
4
origin-ruby-sample:latest 이미지 스트림 태그의 새 버전을 사용할 수 있을 때마다 이미지 변경 트리거 트리거를 통해 새 복제 컨트롤러가 생성됩니다.
5
롤링 전략은 Pod를 배포하는 기본 방법입니다. 생략될 수 있습니다.
6
배포 구성을 일시 중지합니다. 이렇게 하면 모든 트리거의 기능을 비활성화하고 실제로 롤아웃하기 전에 Pod 템플릿에서 여러 변경 사항이 가능합니다.
7
리버전 내역 제한은 롤백을 위해 유지하려는 이전 복제 컨트롤러의 제한입니다. 생략될 수 있습니다. 생략하면 이전 복제 컨트롤러가 정리되지 않습니다.
8
Pod가 사용 가능한 것으로 간주될 때까지 대기하는 최소 시간( readiness 검사 후)입니다. 기본값은 0입니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.