This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.9장. 배포
9.1. 배포 방법
9.1.1. 배포란 무엇인가?
OpenShift Container Platform 배포는 일반 사용자 애플리케이션에 대한 세분화된 관리를 제공합니다. 이러한 리소스는 다음 세 가지 API 오브젝트를 사용하여 설명합니다.
- 애플리케이션 특정 구성 요소의 원하는 상태를 포드 템플릿으로 설명하는 배포 구성입니다.
- 배포 구성 상태의 지정 시간 레코드가 Pod 템플릿으로 포함되는 복제 컨트롤러가 하나 이상 있습니다.
- 하나 이상의 Pod: 특정 버전의 애플리케이션 인스턴스를 나타냅니다.
사용자는 배포 구성에서 소유한 복제 컨트롤러 또는 Pod를 조작할 필요가 없습니다. 배포 시스템을 사용하면 배포 구성 변경 사항이 적절하게 전파됩니다. 기존 배포 전략이 사용 사례에 적합하지 않고 배포 라이프사이클 중에 수동 단계를 실행해야 하는 경우 사용자 지정 전략을 생성해야 합니다.
배포 구성을 생성하면 배포 구성의 Pod 템플릿을 나타내는 복제 컨트롤러가 생성됩니다. 배포 구성이 변경되면 최신 Pod 템플릿을 사용하여 새 복제 컨트롤러가 생성되고 배포 프로세스가 실행되어 이전 복제 컨트롤러를 축소하고 새 복제 컨트롤러를 확장합니다.
애플리케이션 인스턴스는 생성 시 서비스 로드 밸런서와 라우터 모두에서 자동으로 추가 및 제거됩니다. 애플리케이션에서 TERM 신호를 수신할 때 정상 종료 를 지원하는 경우 실행 중인 사용자 연결을 정상적으로 완료할 수 있는 기회를 제공할 수 있습니다.
배포 시스템에서 제공하는 기능:
9.1.2. 배포 구성 생성
배포 구성은 다른 리소스와 마찬가지로 oc
명령으로 관리할 수 있는 deploymentConfig
OpenShift Container Platform API 리소스입니다. 다음은 deploymentConfig
리소스의 예입니다.
kind: "DeploymentConfig" apiVersion: "v1" metadata: name: "frontend" spec: template: metadata: labels: name: "frontend" spec: containers: - name: "helloworld" image: "openshift/origin-ruby-sample" ports: - containerPort: 8080 protocol: "TCP" replicas: 5 triggers: - type: "ConfigChange" - type: "ImageChange" imageChangeParams: automatic: true containerNames: - "helloworld" from: kind: "ImageStreamTag" name: "origin-ruby-sample:latest" strategy: type: "Rolling" paused: false revisionHistoryLimit: 2 minReadySeconds: 0
kind: "DeploymentConfig"
apiVersion: "v1"
metadata:
name: "frontend"
spec:
template:
metadata:
labels:
name: "frontend"
spec:
containers:
- name: "helloworld"
image: "openshift/origin-ruby-sample"
ports:
- containerPort: 8080
protocol: "TCP"
replicas: 5
triggers:
- type: "ConfigChange"
- type: "ImageChange"
imageChangeParams:
automatic: true
containerNames:
- "helloworld"
from:
kind: "ImageStreamTag"
name: "origin-ruby-sample:latest"
strategy:
type: "Rolling"
paused: false
revisionHistoryLimit: 2
minReadySeconds: 0
- 1
- 프런트
엔드
배포 구성의 포드 템플릿은 간단한 Ruby 애플리케이션을 설명합니다. - 2
- 프런트
엔드의 복제본 5개가 있습니다
. - 3
- 구성 변경 트리거를 사용하면 Pod 템플릿이 변경될 때마다 새 복제 컨트롤러가 생성됩니다.
- 4
origin-ruby-sample:latest
이미지 스트림 태그의 새 버전을 사용할 수 있을 때마다 이미지 변경 트리거 트리거를 통해 새 복제 컨트롤러가 생성됩니다.- 5
- 롤링 전략은 Pod를 배포하는 기본 방법입니다. 생략될 수 있습니다.
- 6
- 배포 구성을 일시 중지합니다. 이는 모든 트리거의 기능을 비활성화하고 실제로 롤아웃하기 전에 pod 템플릿에서 여러 변경 사항을 허용합니다.
- 7
- 버전 기록 제한은 롤백을 위해 계속 사용하려는 이전 복제 컨트롤러의 제한입니다. 생략될 수 있습니다. 생략하면 이전 복제 컨트롤러가 정리되지 않습니다.
- 8
- Pod를 사용할 수 있도록 대기하는 최소 시간(준비 검사 성공 후)입니다. 기본값은 0입니다.