2.3.5. 시나리오 및 예
Docker, Kubernetes 및 OpenShift Container Platform 에코시스템에서 도입한 새 애플리케이션 아티팩트 구성 요소를 정의한 이 섹션에서는 OpenShift Container Platform에서 제공하는 메커니즘 및 툴을 사용하여 환경 간에 해당 구성 요소를 승격하는 방법을 설명합니다.
애플리케이션을 구성하는 구성 요소 중 이미지는 노트의 기본 아티팩트입니다. 이러한 온프레미스를 가져와서 애플리케이션 승격으로 확장하면 코어, 기본 애플리케이션 승격 패턴은 이미지 단위인 이미지 승격 패턴입니다. 대다수의 애플리케이션 승격 시나리오에는 승격 파이프라인을 통해 이미지의 관리 및 전파가 포함됩니다.
간단한 시나리오는 파이프라인을 통해 이미지 관리 및 전파만 처리합니다. 승격 시나리오가 범위를 넓기 때문에 다른 애플리케이션 아티팩트, 특히 API 오브젝트는 파이프라인을 통해 관리 및 전파되는 항목의 인벤토리에 포함됩니다.
이 주제에서는 수동 및 자동화된 접근 방식을 사용하여 이미지뿐만 아니라 API 오브젝트를 승격하는 방법에 대한 몇 가지 구체적인 예를 설명합니다. 그러나 먼저 애플리케이션 승격 파이프라인에 대한 환경 설정 시 다음 사항에 유의하십시오.
2.3.5.1. 프로모션 설정
애플리케이션의 초기 버전 개발을 완료한 후 다음 논리적 단계는 애플리케이션 내용을 패키지화하여 승격 파이프라인의 후속 스테이징 환경으로 전송할 수 있도록 하는 것입니다.
먼저 표시되는 모든 API 오브젝트를 전송 가능으로 그룹화하고 공통
레이블
을 적용합니다.labels: promotion-group: <application_name>
앞에서 설명한 것처럼
oc label
명령은 다양한 API 오브젝트를 사용하여 레이블을 쉽게 관리할 수 있습니다.작은 정보OpenShift Container Platform 템플릿에서 API 오브젝트를 처음 정의하는 경우 승격을 준비하기 위해 내보낼 때 쿼리하는 데 사용할 모든 관련 라벨이 공통 레이블이 있는지 쉽게 확인할 수 있습니다.
후속 쿼리에 해당 라벨을 활용할 수 있습니다. 예를 들어 애플리케이션의 API 오브젝트를 전송할 수 있는 다음
oc
명령 호출 세트를 고려하십시오.$ oc login <source_environment> $ oc project <source_project> $ oc get -o yaml --export dc,is,svc,route,secret,sa -l promotion-group=<application_name> > export.yaml $ oc login <target_environment> $ oc new-project <target_project> 1 $ oc create -f export.yaml
- 1
- 또는
oc project <target_project>
가 이미 있는 경우.
참고oc get --export
명령에 이미지 스트림의 유형이 포함되는지 여부는
파이프라인의 다양한 환경에서 이미지, 이미지 스트림 및 레지스트리를 관리하는 방법에 따라 달라집니다. 이에 대한 경고는 아래에서 설명합니다. 이미지 관리 주제도 참조하십시오.또한 승격 파이프라인의 다른 스테이징 환경에서 사용되는 각 레지스트리에 대해 작동하는 데 필요한 토큰을 가져와야 합니다. 각 환경에 대해 다음을 수행합니다.
환경에 로그인합니다.
$ oc login <each_environment_with_a_unique_registry>
다음을 사용하여 액세스 토큰을 가져옵니다.
$ oc whoami -t
- 나중에 사용할 수 있도록 토큰 값을 복사하여 붙여넣습니다.