TobeDevOps에서는 프로젝트의 자동 배포를 위해 ArgoCD를 사용합니다.
Gitlab의 소스 형상 관리와 빌드가 성공적으로 진행되면 GitOps에서 변경된 이미지를 체크하고 쿠버네티스를 통해 새로운 pod가 생성되어 서비스 배포가 완료됩니다.
포탈에서는 선택된 서버의 App의 현재 Sync 상태와 App의 6가지 Health(동작 상태)을 확인할 수 있으며 수동 배포를 진행할 수도 있습니다.
ArgoCD에서 배포 진행 시 생성되는 App의 Sync 상태
Synced to HEAD(*) | Git Ops에 존재하는 이미지 HEAD 정보에 Sync 상태 |
---|---|
OutOfSync to HEAD(*) | Git Ops에 존재하는 이미지 HEAD 정보에 Sync 되지 않은 상태 |
ArgoCD에서 배포 진행 시 생성되는 App의 6가지 Health(동작 상태) 상태
Healthy | App 정상 동작 |
---|---|
Progressing | App 생성 중 |
Degraded | App 동작 오류 |
Suspended | App 생성 대기 |
Missing | App 정보 유실 |
Unknown | App 정보 알 수 없음 |
배포 조회
[빌드] 메뉴에서는 프로젝트 서버의 배포 환경 별 배포 상태를 확인합니다.
생성된 프로젝트의 서버 목록을 확인할 수 있으며 프로젝트 기본 상태 값은 [Running]입니다. [All] 탭 선택 시 전체 프로젝트 목록을 확인할 수 있습니다.
이미지_2024-07-30_103449904
서버별 목록은 프로젝트 상태 및 조건을 검색하여 사용할 수 있습니다.
사용 방법은 공통 그리드를 참고해 주세요.
내가 포함된 프로젝트가 카드 형태로 나타나며 각 프로젝트에 생성된 서버 클릭 시 배포 내역을 확인할 수 있습니다.
배포2
1내가 포함된 프로젝트의 서버를 즐겨찾기하여 사용할 수 있습니다.
2생성된 서버가 속한 스페이스 명칭입니다.
3생성된 서버가 속한 스페이스 아이디입니다.
4생성된 서버가 속한 프로젝트 명칭입니다.
5생성된 서버가 속한 프로젝트 아이디입니다.
6생성된 서버가 속한 프로젝트 상태입니다. 프로젝트 생성 상태에 따라 5개(Running, Error, Stop, Creating, Deleting)의 상태 값이 있습니다.
7생성된 서버의 구분입니다. 생성된 서버의 목록(WEB, WAS, DB, XENI)을 확인할 수 있습니다.
8생성된 서버의 아이디입니다.
프로젝트 서버를 선택하면 하단에 배포 환경(DEV, STG, PRD)별 배포 목록이 노출되며 [REFRESH] 버튼 클릭 시 현재 배포 현황을 갱신할 수 있습니다.
배포11
[SYNC] 버튼 클릭 시 변경 사항을 GitOps 동기화 할 수 있습니다. 단, 선택한 서버의 배포 권한이 없으면 버튼을 사용할 수 없습니다.
이미지_2024-07-30_103654557
DB 서버는 개발과 운영 환경 목록만 노출되며 포털을 통해 수동으로 Sync할 수 없습니다.
배포6
새로 고침 버튼을 클릭하여 현재 배포 상태를 재 조회할 수 있습니다.
이미지_2024-07-30_104017457
각 배포 목록의 이동 버튼 클릭 시 ArgoCD로 이동하여 선택한 서버 환경 별 상세 정보를 확인할 수 있습니다.
이미지_2024-07-30_104047185
배포가 진행된 환경에는 History 버튼이 확성화되어 최신 배포 이력을 확인할 수 있습니다.
[History] 버튼 클릭 시 최근 2건의 목록을 확인할 수 있으며 현재 버전을 재배포하거나 이전 배포 내역으로 상태를 변경할 수 있습니다.
이미지_2024-07-30_104116476
Redeploy : 최종 버전의 GitOps 이미지로 재배포
RollBack : 이전 버전의 이미지로 배포 상태 변경
[MORE] 선택 시 ArgoDC로 이동하여 선택된 서버 환경의 전체 배포 내역을 확인할 수 있습니다.
배포9
DEV 환경은 자동 배포가 설정되어 있기 때문에 배포된 내역만 확인할 수 있으며 이미지 재배포 및 이전 배포 상태로 변경할 수 없습니다.
이미지_2024-07-30_104226586
배포 관리
TobeDevOps에서 프로젝트에 생성된 서버는 구분에 따라 권한 별 사용할 수 있는 배포 기능이 달라집니다.
프로젝트 관리자는 DB를 제외한 모든 서버의 배포 기능을 사용할 수 있으며 프로젝트 멤버는 개발 환경의 배포 기능만 사용할 수 있습니다.
서버 구분 | 배포 환경 | 기능 | 프로젝트 관리자 | 프로젝트 멤버 | 게스트 |
---|---|---|---|---|---|
WEB, WAS, XENI | 운영 | Sync | O | X | X |
History | O | X | X | ||
Rollback | O | X | X | ||
Redeploy | O | X | X | ||
검증 | Sync | O | X | X | |
History | O | X | X | ||
Rollback | O | X | X | ||
Redeploy | O | X | X | ||
개발 | Sync | O | O | X | |
History | O | O | X | ||
DB | 운영 | Sync | X | X | X |
개발 | Sync | X | X | X |
DB는 개발과 운영 두 개의 배포 환경만 생성되며 생성 후 이미지 정보가 변경되지 않아 버전 관리를 하지 않습니다.