애플리케이션 생성 및 관리
애플리케이션은 배포에 필요한 모든 설정과 이력을 관리하는 기본 단위입니다. 애플리케이션 메뉴에서 애플리케이션을 생성 및 수정, 삭제할 수 있습니다.
애플리케이션 생성
배포 대상 클러스터와 소스 정보를 설정하여 새 애플리케이션을 생성합니다.
- 카카오클라우드 콘솔 > Developer Tools > Deployflow 메뉴로 이동합니다.
- 애플리케이션 메뉴의 우측 상단에 [애플리케이션 생성] 버튼을 클릭합니다.
- 필요한 정보를 입력 후 모든 설정이 완료되면, [생성] 버튼을 클릭합니다.
| 설정 | 항목 | 설명 |
|---|---|---|
| 기본 정보 | 애플리케이션 이름 | 애플리케이션 이름을 입력합니다. 영문 소문자로 시작, 영문, 숫자, 하이픈(-)만 입력 가능합니다. 마지막 글자는 영문 소문자 또는 숫자여야 합니다. (1-53자) 동일 프로젝트 내에서 중복될 수 없습니다. |
| 애플리케이션 설명 | 애플리케이션에 대한 설명 (100자 이내로 입력, 이모지·줄바꿈 미허용) | |
| 클러스터 정보 | 배포 클러스터 선택 | 애플리케이션이 배포될 타겟 클러스터를 선택합니다. - 퍼블릭 엔드포인트가 할당되고 'Provisioned' 상태인 클러스터만 배포 대상으로 선택할 수 있습니다. - 클러스터에 노드풀 또는 노드가 없어도 애플리케이션 생성에는 제약이 없습니다. |
| 네임스페이스 이름 | 리소스가 생성될 네임스페이스 이름을 입력하여 지정합니다. - 쿠버네티스 네임스페이스는 RFC 1123 규칙을 따르며, 영문 소문자로 시작, 영문, 숫자, 하이픈(-)만 입력 가능합니다. (1-63자) | |
| 소스 정보 | 소스 리포지토리 | 배포 소스가 위치한 리포지토리를 선택합니다. |
| 소스 브랜치 | 배포 소스가 위치한 브랜치(리비전)를 선택합니다. | |
| 배포 방식 | Raw Manifest, Kustomize, Helm 중 배포 방식을 선택하고 해당 파일이 위치한 경로를 입력합니다. | |
| 승인 설정 | 승인 설정 옵션 | 배포 실행 전 승인 단계를 거칠지 여부를 선택합니다. - 사용 시 모든 승인이 완료된 이후 동기화 또는 롤백 작업을 수행할 수 있습니다. - 진행 중인 승인 요청이 있는 경우 비활성화(미사용)로 변경할 수 없습니다. |
| 리뷰어 | 승인 옵션 선택 시 배포를 승인할 리뷰어를 지정합니다. 최소 1명에서 최대 5명까지 설정 가능합니다. | |
| 고급 설정 | 리소스 삭제 옵션 | 동기화 또는 삭제 시 하위 리소스에 대한 옵션을 선택할 수 있습니다. 총 3가지 옵션이 제공됩니다. · Foreground(기본값): 연관된 리소스를 모두 삭제한 후 애플리케이션을 삭제합니다. · Background: 애플리케이션을 삭제한 후 하위 리소스를 순차적으로 삭제합니다. · Non-cascading: 하위 리소스는 유지하고 애플리케이션만 삭제합니다. |
| ServerSideApply 옵션 사용 유무 | 쿠버네티스 리소스를 적용할 때 ServerSideApply를 활성화하는 기능입니다. 대규모 매니페스트 관리를 최적화합니다. - 이 옵션을 사용 중인 애플리케이션은 강제 동기화(Force Sync)를 수행할 수 없습니다. |
클러스터와 리포지토리 삭제 후 동일 이름의 클러스터와 리포지토리를 재생성할 경우 기존 애플리케이션에 에러가 발생하거나 새롭게 생성된 리포지토리에 연결될 수 있으니 주의하시기 바랍니다.
Codeflow 리포지토리의 매니페스트 경로를 Raw Manifest 방식으로 Deployflow 애플리케이션에 연결하고 동기화하는 구성 예제는 Codeflow와 Deployflow로 CI/CD 파이프라인 구축 튜토리얼에서 확인할 수 있습니다.
애플리케이션 목록 조회
생성된 애플리케이션의 상태, 동기화 상태, 배포 전략 상태, 소스 정보를 목록에서 확인합니다. 목록에서는 배포 클러스터와 소스 리포지토리 등 연관 리소스의 관리 화면으로 이동할 수 있는 바로가기를 제공합니다.
- 카카오클라우드 콘솔 > Developer Tools > Deployflow 메뉴로 이동합니다.
- 애플리케이션 메뉴를 선택하여 목록을 조회합니다. 목록에서는 애플리케이션 동기화 상태와 배포 상태, 배포 전략 상태 등을 확인하실 수 있습니다.
| 항목 | 설명 |
|---|---|
| 이름 | 애플리케이션을 식별하기 위한 이름 |
| 설명 | 애플리케이션의 용도나 특징 등 사용자가 자유롭게 입력할 수 있는 부가적인 설명으로 100자 이내로 작성합니다. |
| 동기화 상태 | 저장소의 설정과 클러스터 실 리소스의 일치 여부를 표시합니다. |
| 배포 상태 | 쿠버네티스 리소스의 현재 헬스(Health) 상태를 표시합니다. |
| 배포 전략 상태 | 블루/그린, 카나리 등 현재 진행 중인 배포 프로세스의 단계를 표시합니다. |
| 클러스터 | 배포 대상 클러스터 정보와 바로가기 링크를 제공합니다. |
| 소스 | Codeflow 리포지토리 정보와 바로가기 링크를 제공합니다. |
| 생성자 | 애플리케이션을 만든 사용자 정보가 표시됩니다. |
| 마지막 동기화 일시 | 가장 최근에 동기화 또는 롤백이 성공적으로 완료된 시점입니다. |
| 생성 일시 | 애플리케이션이 처음 생성된 시점입니다. |
애플리케이션 상세 조회
- 카카오클라우드 콘솔 > Developer Tools > Deployflow 메뉴로 이동합니다.
- 애플리케이션 메뉴에서 상세 정보를 확인할 애플리케이션을 선택합니다.
애플리케이션 상세에서는 세부 구성, 승인 정보, 배포 전략, 리소스 상태 및 히스토리 내역을 확인할 수 있습니다. 특히 상단 액션 영역은 단계별 가변 버튼 방식을 채택하여 사용자의 오조작을 방지하고 작업 흐름을 명확히 제시합니다.
배포 액션
배포 액션은 현재 배포 단계에 따라 필요한 핵심 버튼만 제공됩니다. 기본 흐름은 동기화 → 승격 → 배포 완료 순으로 진행되며, 승격 단계는 블루/그린 또는 카나리 배포 전략이 적용된 경우에만 제공됩니다.
| 액션 | 제공 조건 | 설명 |
|---|---|---|
| 동기화 승인 요청 | '승인 후 배포' 옵션이 활성화된 경우 | 리뷰어에게 동기화 승인을 요청합니다. - 리뷰어 승인이 최종 완료되면 [동기화] 버튼으로 전환됩니다. |
| 동기화 | 리소스 업데이트가 감지된 경우 | 타겟 환경과 소스 코드 간의 차이를 분석하여 클러스터 상태를 소스와 일치시킵니다. |
| 승격 | 블루/그린 또는 카나리 배포 전략에서 동기화가 완료된 경우 | 동기화가 완료된 신규 버전을 실제 운영 환경에 반영합니다. - 승격 완료 후에는 신규 업데이트 발생 시 다시 동기화 단계로 전환됩니다. |
애플리케이션 설정을 관리하는 [승인 설정], [수정], [삭제] 버튼은 배포 단계와 관계없이 제공됩니다.
세부 정보
해당 애플리케이션의 기본 설정과 현재 배포 환경 정보를 확인합니다.
| 항목 | 설명 |
|---|---|
| 이름 | 애플리케이션을 식별하기 위한 이름 |
| ID | 애플리케이션 고유 식별자 |
| 설명 | 애플리케이션의 용도나 특징 등 사용자가 자유롭게 입력할 수 있는 부가적인 설명 |
| 생성자 | 애플리케이션을 생성한 사용자 정보 표시 |
| 배포 클러스터 | 쿠버네티스의 클러스터 정보가 표시 |
| 네임스페이스 이름 | 네임스페이스 이름 표시 |
| 배포 상태(Health) | 리소스의 헬스 상태 값 확인, 총 6개 상태값 제공 (Healthy / Progressing / Suspended / Missing / Degraded / Unknown) |
| 동기화 상태 | Git 저장소와 클러스터 배포 상태의 일치 여부 확인, 총 3개 상태값 제공 (Unknown / Out of Sync / Synced) |
| 소스 리포지토리 / 소스 브랜치 | Codeflow의 리포지토리 정보가 표시, 소스 타입은 3가지 제공(Raw Manifest/Kustomize/Helm) - Helm 사용 시 git에 저장된 Chart.yaml 또는 Chart가 포함된 경로를 지정하면 helm template을 불러오며, Values 설정은 git 연동 없이 직접 입력할 수도 있습니다. |
| 배포 방식 | 선택된 배포 구성 방식 표시 (Raw Manifest / Kustomize / Helm) |
| 경로 | 매니페스트 파일이 위치한 저장소 내 경로 표시 |
| 리소스 삭제 옵션 | 리소스 삭제 정책 설정값 표시 (Foreground / Background / Non-cascading 중 선택) |
| ServerSideApply | ServerSideApply 옵션 사용 유무 값 표시 |
| 마지막 동기화 일시 | 가장 최근에 동기화 또는 롤백이 성공적으로 완료된 시점 표시 |
| 생성 일시 | 애플리케이션이 처음 생성된 시점 표시 |
| 이미지 | 이미지 경로 표시 |
승인 정보
'승인 후 배포' 옵션 사용 시, 승인 ID, 요청자, 상태(READY 등)가 표시되며 상태에 따라 [동기화] 또는 [롤백] 버튼이 활성화됩니다.
| 항목 | 설명 |
|---|---|
| 승인 ID | 승인에 대한 ID 값 |
| 승인 요청자 | 승인을 요청한 사용자 정보 |
| 작업 유형 | 동기화 또는 롤백 등 요청된 작업 유형 |
| 승인 상태 | 승인 상태가 READY 값일 때 [동기화] 또는 [롤백] 버튼이 활성화됩니다. |
배포 전략
고급 배포 전략(자동 동기화, 블루/그린, 카나리) 설정 시 활성화되며, 현재 배포 진행 상황을 제어합니다. 애플리케이션 상세 화면의 [배포 전략 설정] 버튼을 클릭하면 팝업창에서 배포 유형을 자동 동기화, 블루/그린, 카나리 중 하나로 선택해 설정할 수 있습니다.
자동 동기화
자동 동기화(Auto)는 소스 저장소의 변경 사항이 감지되면 별도의 동기화 액션 없이 자동으로 클러스터에 반영하는 배포 유형입니다.
[배포 전략 설정] 팝업창에서 자동 동기화를 선택하면 별도 세부 항목 없이 저장 즉시 활성화됩니다.
자동 동기화가 설정된 상태에서는 별도의 동기화 액션 없이 변경 사항이 클러스터에 반영됩니다. 롤백 제약은 히스토리를 참고하세요.
블루/그린
블루/그린은 현재 운영 중인 버전(블루 버전)과 새로운 버전(그린 버전)의 디플로이먼트를 구성한 후 트래픽을 한 순간에 구버전에서 신버전으로 변경할 수 있는 배포 정책입니다.
[배포 전략 설정] 팝업창에서 블루/그린을 선택하면 다음 항목을 설정합니다.
| 설정 항목 | 설명 |
|---|---|
| 디플로이먼트명 | 블루/그린 배포를 적용할 디플로이먼트를 선택합니다. |
| 서비스명 | 트래픽 전환에 사용할 서비스를 선택합니다. |
- 트래픽 전환: [배포 전략 설정] 팝업창에서 실제 서비스 트래픽을 전달할 환경(블루 또는 그린)을 선택하고 [저장]을 클릭하면 해당 환경으로 트래픽이 즉시 전환됩니다. 그린 선택 시 새 버전으로 트래픽이 즉시 전환되므로 운영 환경에 반영 전 신중히 선택해 주세요.
- 승격 및 승격 취소: 블루는 현재 운영 중인 기존 버전, 그린은 새로 배포된 신규 버전을 의미합니다. [승격] 시 블루 또는 그린 중 반영할 환경을 선택합니다. 그린을 선택해 승격하면 신규 버전(그린)이 확정되고 기존 버전(블루)의 리소스는 제거됩니다. 반대로 블루를 선택하면 승격이 취소되어 신규 버전(그린)의 리소스가 제거되고 기존 버전(블루)이 유지됩니다.
Deployflow의 블루/그린 배포 전략을 적용하고 트래픽을 전환하는 구성 예제는 Deployflow로 Blue/Green 배포 전략 구현 튜토리얼에서 확인할 수 있습니다.
카나리
카나리는 새로 배포하는 버전의 디플로이먼트에 실제 트래픽의 일부를 라우팅해서 새로운 버전이 정상 동작하는지 테스트할 수 있는 배포 정책입니다. 문제가 있는 경우 빠르게 대처할 수 있으며, 동시에 두 가지 버전이 공존하기 때문에 A/B 테스팅에도 사용할 수 있습니다.
[배포 전략 설정] 팝업창에서 카나리를 선택하면 다음 항목을 설정합니다.
| 설정 항목 | 설명 |
|---|---|
| 디플로이먼트명 | 카나리 배포를 적용할 디플로이먼트를 선택합니다. |
| 서비스명 | 카나리 배포 대상 디플로이먼트와 연결된 서비스를 선택합니다. |
| 인그레스명 | 카나리 트래픽 라우팅에 사용할 인그레스를 선택합니다. |
| 카나리 파드 수 | 카나리 버전으로 실행할 파드 수를 입력합니다. 최소 1부터 최대 99까지 설정할 수 있으며, 쿠버네티스 리소스 상태에 따라 최대 파드 수는 달라질 수 있습니다. |
| 트래픽 비율 | 카나리 버전으로 전달할 트래픽 비율을 입력합니다. 0에서 100 사이의 퍼센티지 단위로 설정할 수 있습니다. |
- 트래픽 비율 조정: 상세 화면에 있는 [비율 조정] 버튼을 클릭하여 트래픽 비율 값을 변경하면 카나리 트래픽 비율을 실시간으로 조정할 수 있습니다.
- 승격 및 승격 취소: 오리진은 현재 운영 중인 기존 버전, 카나리는 새로 배포된 신규 버전을 의미합니다. [승격] 시 오리진 또는 카나리 중 반영할 버전을 선택합니다. 카나리를 선택해 승격하면 신규 버전(카나리)이 확정되고 기존 버전(오리진)의 리소스는 제거됩니다. 반대로 오리진을 선택하면 승격이 취소되어 신규 버전(카나리)의 리소스가 제거되고 기존 버전(오리진)이 유지됩니다.
배포 전략 상태
| 상태값 | 정의 |
|---|---|
| None | 고급 배포 비활성화, 일반 배포 가능 |
| Auto | 자동 동기화 상태 |
| Stable | 배포 전략이 동작하고 있지 않은 안정적인 상태 |
| Blue Active | 블루 활성화, 블루/그린 동작이 진행 중이고 블루로 트래픽 인입 중인 상태 |
| Green Active | 그린 활성화, 블루/그린 동작이 진행 중이고 그린으로 트래픽 인입 중인 상태 |
| Canary Rollout | 카나리 진행, 설정된 비율에 따라 구/신규 버전 간 트래픽이 분산 인입 중인 상태 |
| Promoted | 승격 완료, 배포를 확정하고 기존 배포를 제거 |
| Cancelled Promotion | 승격 취소, 배포를 취소하고 신규 배포를 제거 |
리소스
배포된 리소스의 상관관계를 토폴로지 그래프로 제공하며, 리소스 간의 연결 관계를 시각적으로 확인할 수 있습니다. 각 리소스 카드에는 헬스 상태, 동기화 상태(애플리케이션·배포 전략 리소스에 한함), 리소스 이름, 최종 업데이트 시점, 배포 버전이 표시됩니다.
개별 리소스 카드 클릭 시 요약, 매니페스트, 이벤트, 로그 탭으로 구성된 상세 패널에서 리소스 정보를 조회할 수 있습니다.
히스토리
과거의 모든 배포 이력을 리스트 형태로 제공합니다. 이전 상태의 설정을 조회하거나, 특정 시점으로의 롤백(Rollback) 액션을 수행할 수 있습니다.
다음의 경우 히스토리 화면에서 롤백 버튼 자체가 제공되지 않아 롤백은 물론 롤백 요청(승인 요청 생성)도 할 수 없습니다.
- 블루/그린 또는 카나리 배포 전략이 설정되어 있는 상태
- 배포 유형이 자동 동기화(Auto)로 설정되어 있는 상태
롤백을 수행하려면 배포 전략 설정을 해제(None)한 후 진행해 주세요.
애플리케이션 정보 수정
애플리케이션 설명, 소스 정보, 배포 설정 등 변경 가능한 정보를 수정합니다.
- 카카오클라우드 콘솔 > Developer Tools > Deployflow 메뉴로 이동합니다.
- 애플리케이션 메뉴에서 대상 애플리케이션의 [⋮] 버튼 > 수정을 선택합니다.
- 변경 작업을 완료 후 [수정] 버튼을 클릭합니다.
배포 클러스터는 애플리케이션 생성 이후 수정할 수 없습니다. 클러스터를 변경하려면 애플리케이션을 새로 생성해야 합니다.
애플리케이션 삭제
더 이상 사용하지 않는 애플리케이션과 관련 배포 이력을 삭제합니다.
- 카카오클라우드 콘솔 > Developer Tools > Deployflow 메뉴로 이동합니다.
- 애플리케이션 메뉴에서 대상 애플리케이션의 [⋮] 버튼 > 삭제를 선택합니다.
- 팝업창에서 삭제 문구를 입력 후 [삭제] 버튼을 클릭합니다.
삭제한 애플리케이션의 리소스는 복구할 수 없습니다.