프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

CS/기타

Git과 GitLab 그리 Harbor의 이해

EVEerNew 2025. 2. 21. 17:52
반응형

 

 

Gitlab을 이해하기 위해서는 비슷해보이는 Github과 도대체 어떻게 다른지가 중요했다.

 

둘이 비슷한 네이밍을 가지길래 같은 회사의 서비스인 줄 알았지만, 사실 Git라는 분산형 버전 관리 시스템을 제공하는 다른 서비스들이다.

 

 

 

Git이란

분산형 버전 관리 시스템으로, 소스코드 파일들을 복사,백업,저장 등의 기능을 제공하여 많은 프로젝트 인원들이 함께 같은 파일을 작업할 수 있다.

 

자세한 기능과 원리는 inpa님의 게시글을 참조하자.

https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-%EA%B0%9C%EB%85%90-%EC%9B%90%EB%A6%AC-%EC%89%BD%EA%B2%8C%EC%9D%B4%ED%95%B4#git_%EC%9D%B4%EB%9E%80_%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80?

 

[GIT] ⚡️ git 개념 & 원리 (그림으로 알기쉽게 비유 😃)

Git 이란 무엇인가? Git이란 분산형 버전 관리 시스템(Version Control System) 의 한 종류이며, 빠른 수행 속도에 중점을 둔다. 우리가 레포트를 제출한다고 가정했을때, 처음에 저장했을때 'report.txt'라

inpa.tistory.com

 

 

Git을 제공하는 서비스의 대표가 Github와 Gitlab이다.

 

 

 

Github VS Gitlab

Github는 가장 많이 사용되는 서비스로 온라인 Git 저장소를 무료로 지원하기 때문에 개발자들이라면 Git을 Github로 처음 접해보고 애용했을 것이다.

 

Gitlab도 동일한 기능을 제공하지만 가장 큰 차이점은 CI/CD 기능에 있다.

 

Github는 서드파티 도구들을 intergation해서 사용하지만, Gitlab은 해당 기능을 자체 내장하여 사용할 수 있다.

 

개인적으로 느낀 차이점 한가지는 Gibhub은 주로 온라인 저장소를 그대로 사용한다.

반대로 Gitlab을 사용하는 경우는 주로 온라인 경유 없이 서버에서 직접 Git 저장소를 만들고 접속하는 것으로 생각한다.

 

Gitlab 사용 법을 검색해보면 docker나 linux의 설치 방법이 눈에 뜨고  

이번에 Gitlab을 쓰는 이유도 개인 linux VM 서버에 docker 컨테이너를 CI/CD하기 위함이였다.

 

실제로 gitlab은 기업의 사설망 서버에 세팅되어 사내의 프라이빗한 Git 원격 저장소를 세팅하는 데 많이 이용된다.

 

 

 

 

Gitlab을 쓰는데 Harbor는 왜 필요한가?

Gitlab을 컨테이너로 구동시켜 사용하려는데 Harbor는 왜 필요한 것일까?

 

Harbor는 컨테이너 레지스트리로 Docker hub 처럼 온라인으로 제공되는 저장소가 아니라 서버에 직접 설치하여 사용한다.

그 이유는 위에서 Gitlab의 사용 이유에서 알 수 있듯이 외부에 노출 없이 사설망에서만 컨테이너 이미지를 사용하기 위함이다.

유사한 컨테이너 레지스트리로 Nexus3도 존재한다.

 

 

 

Gitlab Runner는 뭘까?

CI/CD 파이프라인을 구성하다보면, 코드를 build 해야 하는 컴퓨팅 자원이 필요하다.

온라인이나 클라우드 서비스의 CI 서비스는 자동으로 자원을 할당해서 빌드를 해주지만, 사설망에 진행하는 서비스라면 이런 자원까지 등록을 해두어야 한다.

Gitlab에서 이 역할을 하는 것이 바로 Gitlab Runner이다.

 

runner는 작업이 정의된 .gitlab-ci.yml 파일을 통해 빌드/테스트/배포를 진행한다.

 

 

runner는 실시간 작 대한 정보를 gitlab서버로 전송해주기 때문에 파이프라인의 개선이 가능하다.

실패 로그등을 분석하여 성공적인 CI/CD 구성이 가능하다.

 

 

 

쿠버네티스 환경이라면 runner는 pod로 동작할 수 있고, docker 환경이라면 컨테이너로 동작한다.

자동이 환경인 클라우드가 아니므로, runner를 생성하면 CI/CD 작업에 사용할 수 있도록 gitlab의 옵션에서 등록하는 작업이 필요하다.

docker에서 구성한 runner

 

 

 

 

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함