IT 자원을 효율적으로 빠르게 사용할 수 있는 방법으로 컨테이너 환경이 거론됐으나 그동안 관리가 어렵고 복잡해서 사용하기 어려웠다. 하지만 쿠버네티스가 등장하면서 복잡도가 줄어들고 비용 대비 생산성을 높일 수 있게 됐다.

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼으로 빠르게 성장하는 생태계를 가지고 있다. 쿠버네티스 서비스, 기술 지원 및 도구는 어디서나 쉽게 이용할 수 있다.

이 책은 클라우드 네이티브 환경을 구축하고 운영할 수 있는 쿠버네티스 개념과 컨테이너, 오픈소스 도구를 활용한 CI/CD 구성, 구성한 시스템을 모니터링하는 전반적인 실습 과정을 담았다. 컨테이너 인프라 환경 구축부터 통합 및 배포, 인프라 환경 운영을 위한 모니터링까지 쿠버네티스를 기반으로 시스템을 구축하고 운영하는 데 필요한 기초를 탄탄하게 다질 수 있을 것으로 기대한다.


컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커
조훈·심근우·문성주 지음 | 길벗 | 580쪽 | 3만4000원

#10줄요약 #3장 컨테이너를 다루는 표준 아키텍처, 쿠버네티스

1. 컨테이너 인프라 환경이란 리눅스 운영 체제의 커널 하나에서 여러 개의 컨테이너가 격리된 상태로 실행되는 인프라 환경을 말한다. 여기서 컨테이너는 하나 이상의 목적을 위해 독립적으로 작동하는 프로세스다. 좀 더 간단하게 말하면 친구와 대화를 주고받는 메신저 프로그램이나 음악 감상 프로그램을 컨테이너로 구현할 수 있다.

2. 가상화 환경에서는 각각의 가상 머신이 모두 독립적인 운영 체제 커널을 가지고 있어야 하기 때문에 그만큼 자원을 더 소모해야 하고 성능이 떨어질 수밖에 없다. 하지만 컨테이너 인프라 환경은 운영 체제 커널 하나에 컨테이너 여러 개가 격리된 형태로 실행되기 때문에 자원을 효율적으로 사용할 수 있고 거치는 단계가 적어서 속도도 훨씬 빠르다.

3. 컨테이너 인프라 환경이 성장하게 된 결정적인 계기가 된 사건이 일어났다. 구글이 쿠버네티스를 오픈소스로 공개한 것이다. 이를 통해 안정적인 쿠버네티스를 누구나 자유롭게 이용하게 되면서 컨테이너 인프라 환경을 좀 더 효율적으로 관리할 수 있게 됐다. 이후 여러. 기능이 계속 추가되면서 쿠버네티스의 생태계가 풍부해졌고, 사실상 쿠버네티스는 컨테이너 인프라 관리 솔루션의 표준으로 자리 잡게 됐다.

4. 쿠버네티스를 컨테이너 관리 도구라고 설명했지만, 실제로 쿠버네티스는 컨테이너 오케스트레이션을 위한 솔루션이다. 오케스트레이션이란 복잡한 단계를 관리하고 요소들의 유기적인 관계를 미리 정의해 손쉽게 사용하도록 서비스를 제공하는 것을 의미한다. 다수의 컨테이너를 유기적으로 연결, 실행, 종료할 뿐만 아니라 상태를 추적하고 보존하는 등 컨테이너를 안정적으로 사용할 수 있게 만들어주는 것이 컨테이너 오케스트레이션이다.

5. 쿠버네티스의 가장 큰 장점은 쿠버네티스의 구성 요소마다 하는 일이 명확하게 구분돼 각자의 역할만 충실하게 수행하면 클러스터 시스템이 안정적으로 운영된다는 점이다. 이렇게 각자의 역할이 명확하게 나뉘어진 것은 마이크로서비스 아키텍처(MSA) 구조와도 밀접하게 연관된다. 또한 역할이 나뉘어 있어서 문제가 발생했을 때 어느 부분에서 문제가 발생했는지 디버깅하기 쉽다.

6. 쿠버네티스는 작업을 순서대로 진행하는 워크플로 구조가 아니라 선언적인 시스템 구조를 가지고 있다. 즉, 각 요소가 추구하는 상태를 선언하면 현재 상태와 맞는지 점검하고 그것에 맞추려고 노력하는 구조로 돼 있다는 뜻이다. 따라서 추구하는 상태를 API 서버에 선언하면 다른 요소들이 API 서버에 와서 현재 상태와 비교하고 그에 맞게 상태를 변경하려고 한다.

7. 쿠버네티스를 사용하는 관점에서 파드와 디플로이먼트는 스펙과 상태 등의 값을 가지고 있다. 이러한 값을 가지고 있는 파드와 디플로이먼트를 개별 속성을 포함해 부르는 단위를 오브젝트라고 한다.

8. 기본 오브젝트만으로도 쿠버네티스를 사용할 수 있다. 하지만 한계가 있어서 이를 좀 더 효율적으로 작동하도록 기능들을 조합하고 추가해 구현한 것이 디플로이먼트다. 이외에도 데몬셋, 컨피그맵, 레플리카셋, PV, PVC, 스테이트풀셋 등이 있으며, 앞으로도 요구 사항에 따라 목적에 맞는 오브젝트들이 추가될 것이다.

9. 쿠버네티스는 거의 모든 부분이 자동 복구되도록 설계됐다. 특히 파드의 자동 복구 기술을 셀프 힐링이라고 하는데, 제대로 작동하지 않는 컨테이너를 다시 시작하거나 교체해 파드가 정상적으로 작동하게 한다.

10. 이제 파드가 언제라도 생성되고 지워진다는 것을 충분히 알았을 것이다. 쿠버네티스에서 의도적으로 이렇게 구현했다. 그런데 때때로 파드에서 생성한 내용을 기록하고 보관하거나 모든 파드가 동일한 설정 값을 유지하고 관리하기 위해 볼륨으로부터 공통된 설정을 가지고 올 수 있도록 설계해야 할 때도 있다.

하순명 기자 kidsfocal@chosunbiz.com


관련기사