쿠버네티스와 함께 데브옵스 만드는 오픈소스 7

* 이 기사는 지난 8월 20일 개최된 바이라인플러스 웨비나의 ‘쿠버네티스 한 걸음 더‘에서 ‘오픈소스를 이용한 클라우드 기반 쿠버네티스 활용’ 세션의 내용을 담고 있습니다.

현대 기업의 IT 환경은 오픈소스 없이 존재하기 힘들다. 빅데이터, 클라우드, 인공지능 등 디지털 혁신과 함께 언급되는 대부분의 기술이 오픈소스에 기반을 두고 있다.

쿠버네티스도 마찬가지다. 쿠버네티스는 컨테이너 관리 자동화 솔루션으로, 구글이 처음 개발했지만 오픈소스로 공개됐으며 현재는 ‘클라우드 네이티브 컴퓨팅 재단(CNCF, Cloud Native Computing Foundation)’이 관리하고 있다.

컨테이너와 쿠버네티스는 IT 환경에 많은 혁신을 가져왔다. 컨테이너화된 애플리케이션의 자동 배포와 확장 기능은 무중단 서비스를 가능케 했고, 컨테이너를 마이크로서비스로 만들어 MSA(Micro Serviec Architecture)도 이룰 수 있게 됐다.

특히 컨테이너와 쿠버네티스를 활용하면 데브옵스(DevOps) 또는 CI/CD(Continuous Integration/Continuous Deployment) 환경을 원활하게 구현할 수 있다는 점이  많은 개발자와 IT운영자의 관심을 끌게 만들었다.

물론 컨테이너와 쿠버네티스만으로 데브옵스가 구현되는 것은 아니다. 오픈소스 기반의 여러 소프트웨어가 함께 구성돼야 데브옵스, CI/CD를 구현할 수 있다.

김석주 NHN 디지털플랫폼센터 매니저는 바이라인플러스 웨비나에서 NHN 토스트 쿠버네티스와 오픈소스를 활용해 데브옵스를 구현하는 방법을 발표했다. 김 매니저가 소개하는 ‘쿠버네티스와 함께 데브옵스 환경을 만드는 오픈소스’를 살펴보자.

NHN은 오픈스택 기반의 ‘NHN 토스트’ 클라우드를 서비스하는데, 최근에는 쿠버네티스 상품과 컨테이너 저장소 상품을 발표한 바 있다.
  1. 깃 저장소 – ‘깃랩’ ‘깃허브’

‘깃’이란 컴퓨터 파일의 변경사항을 추적하고 여러명의 사용자들 간에 소스코드 파일들의 작업을 조율하기 위한 형상 관리 시스템이다. 현재 ‘깃랩’과 ‘깃허브’가 가장 유명한 깃 저장소다. 깃랩은 주로 기업이 내부적으로 깃 저장소를 운영할 때 사용하고, 깃허브는 온라인을 통해 깃을 저장할 때 이용한다.

  1. CI(Continuous Integration) 젠킨스(Jenkins)

젠킨스는 깃에 소스코드가 커밋되면 태그 정보를 가지고 와서 이미지를 빌드한다. 젠킨스는 자동으로 코드에 대한 테스트를 진행하고 빌드하는 것이 특징이다. 젠킨스와 같은 CI 툴이 등장하기 이전에는 하루에 커밋한 코드를 모아서 밤에 빌드를 진행했는데, 이제는 커밋과 동시에 자동으로 빌드가 가능하다.

  1. 도커 이미지 저장소 하버(harbor), 넥서스(Nexus)

젠킨스에서 빌드된 이미지는 하버, 넥서스 등 도커 이미지 저장소 소프트웨어를 통해 저장할 수 있다. 물론 NHN 토스트의 상품인 ‘TCR(Toast Container Registry)’을 이용해도 된다.

  1. 패키지(차트) 매니저 – 헬름

헬름은 깃옵스(Gitops)를 가능케 하는 오픈소스 소프트웨어 중 하나다. 깃옵스는 인프라 시스템부터 애플리케이션까지 깃을 통해 관리 및 배포하는 방법론이다. 이를 통해 누가 어떤 영향을 주었는지 추적(audit log)이 가능하고, 프로덕션 환경에서 운영하는 모든 지식이 깃을 통해 관리된다. 때문에 각기 다른 기업 부서마다 가지고 있는 제각각의 운영 방식에서 벗어날 수 있다.

헬름을 이용하면 모든 애플리케이션 매니패스트 yaml 파일들을 헬름 차트화시켜서 깃을 통해 배포 관리할 수 있다.

  1. 배포 – 아르고CD(ArgoCD)

아르고CD 역시 깃옵스를 가능케 하는 소프트웨어로, 깃옵스 방식으로 클러스터에 애플리케이션을 배포한다. 원하는 설정 사항을 변경해 깃에 올리면 자동으로 쿠버네티스 클러스터의 상태가 깃에 정의된 상태로 동기화된다

  1. 모니터링 – 프로메테우스, 그라파나

쿠버네티스 환경에서는 수많은 컨테이너가 여기저기서 자동화된 상태로 돌아간다. 쿠버네티스 기반 애플리케이션 상태와 인프라 운영에 대한 가시성을 살피기 위해서 모니터링이 필요한데, 프로메테우스는 이와 같은 역할을 한다. 프로메테우스는 HTTP 엔드포인트를 통해 메트릭스를 수집해 쿠버네티스와 같은 다이내믹 환경에 최적화됐다는 평가를 받는다.

그라파나는 프로메테우스의 지표를 보여주는 대시보드 역할을 한다.

  1. 서비스메시 – 이스티오(Istio)

이스티오는 컨테이너 기반 서비스메시 솔루션이다. 서비스메시란 MSA(마이크로서비스아키텍처) 환경에서의 트래픽 교통정리를 담당한다. MSA는 하나의 애플리케이션이 여러 서비스들의 조합으로 구성되기 때문에 중간에서 로드밸런싱, 트래픽 관리, 인증, 권한부여 등 조율할 사항이 많다. 이스티오는 구글이 개발해 IBM, 리프트, 피보탈, 시스코, 레드햇 등이 함께 만들어가는 오픈소스다.

글. 바이라인네트워크
<심재석 기자>shimsky@byline.network

관련 글

첫 댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다