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 정보 알 수 없음 |
배포 조회
내가 포함된 프로젝트 카드를 확인하고 카드를 선택하여 현재 배포 상태를 확인합니다.
1
[배포] 메뉴를 선택하여 사용자가 포함된 프로젝트 카드 목록을 확인합니다.
2
화면 상단에 프로젝트 구분 탭을 사용하여 상태 별 프로젝트 목록을 확인할 수 있으며 기본 상태 값은 [Running]입니다. [All] 탭 선택 시 전체 프로젝트 목록을 확인할 수 있습니다.
3
내가 포함된 프로젝트가 카드 형태로 나타나며 각 프로젝트에 생성된 서버 클릭 시 배포 내역을 확인할 수 있습니다.
4
프로젝트 카드의 서버를 선택하면 하단에 배포 환경(DEV, STG, PRD)별 배포 목록이 노출되며 포털에서 수동 Sync할 수 있습니다.
서버의 배포 환경 별 Sync 버튼을 클릭하여 변경 사항을 GitOps 동기화를 실행합니다. 권한이 없으면 버튼은 사용할 수 없습니다.
DB 서버는 개발과 운영 환경 목록만 노출되며 포털을 통해 수동으로 Sync할 수 없습니다.
수동으로 Sync 하거나 ArgoCD의 변경 사항을 확인하기 위해 새로 고침을 클릭하여 상태를 갱신합니다.
각 배포 목록의 상세 이동 버튼 클릭 시 ArgoCD로 이동하여 선택한 서버 환경 별 상세 정보를 확인할 수 있습니다.
History 버튼을 클릭하여 최신 배포 이력을 확인합니다.
배포 내역은 최근 2건의 목록이 나타나며 [Redeploy] 버튼을 클릭하여 최종 버전의 GitOps 이미지로 재배포하거나 [RollBack] 버튼을 클릭하여 이전 버전의 이미지로 배포 상태를 되돌릴 수 있습니다. [MORE] 버튼은 ArgoDC로 이동하여 선택된 서버 환경의 전체 배포 내역을 확인할 수 있습니다.
DEV App은 자동으로 자동 배포가 설정되어 있기 때문에 배포된 내역만 확인할 수 있으며 이미지 재배포 및 이전 배포 상태로 변경할 수 없습니다.
배포 관리
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는 개발과 운영 두 개의 배포 환경만 생성되며 생성 후 이미지 정보가 변경되지 않아 버전 관리를 하지 않습니다.