-
-
완벽한 IT 인프라 구축을 위한 Docker - 2판
아사 시호 지음, 이영란 옮김, 야마다 요시히로 감수 / 정보문화사 / 2018년 9월
평점 :
어제 오늘 까지 AWS 세미나가 있었습니다. 요즘은 온프레미스 기반보다 AWS처험 클라우드를 선호하는 시대가 되었습니다.
서버도 클라우드로 가는 마당에 시스템 개발 흐름도 점점 도커의 흐름을 타고 있습니다.
도커란 개발 환경이나 테스트 환경이나 스테이징 환경이나 제품환경 전개를 모두 애플리케이션 엔지니어가 수행하는 것이 가능하게 인프라 환경을 말합니다.
개발한 애플리케이션의 실행에 필요한 모든 것들이 포함되어 있는 도커의 이미지를 작성합니다.
이 이미지가 설치할 수 있는 환경이라면 어디서든지 작동됩니다.
도커는 크게 3가지 기능을 가지고 있습니다.
첫번째 이미지를 만드는 기능
애플리케이션의 실행에 필요한 프로그램 본체, 라이브러리, 미들웨어, OS나 네크워크 설정 등 하나로 모아서 도커 이미지를 만듭니다.
두번째 이미지를 공유하는 기능
도커 이미지는 도커 레지스터리에서 공유할 수 있습니다. 도커 허브에 로그인하여 레지스트리에 있는 이미지를 검색하거나 업로드, 다운로드를 할 수 있습니다.
세번째 컨테이너를 작동시키는 기능
도커는 리눅스상에서 컨테이너 단위로 서버를 작동합니다. 하나의 이미지로 여러개의 컨테이너를 만들 수 있습니다.
도커 컨테이너는 개발환경과 같이 한대의 머신에서 가동시킬 때는 간편히 도입할 수 있습니다.
하지만 멀티호스트로 구성된 환경을 클러스터 구성으로 가동할려면 시작, 중지, 네트워크 연결, 스토리지 관리, 스케줄링 기능이 필요합니다.
정상적으로 작동하는지 감시할 장치도 필요합니다.
이렇게 여러개의 컨테이너를 효율적으로 통합 관리하는 장치가 쿠버네티스(Kubernetes) 입니다.
Kubernetes의 기능으로 부하분산, 네트워크 관리, 감시, 여러 서버의 컨테이너 관리, 무정이로 업데이트 등이 있습니다.
Kubernetes의 구조로는 마스터, 데이터 스토어, 노드로 이루어져 있습니다.
마스터는 API Server로 구성되어 있습니다. 각 컴포넌트로부터 리소스 정보를 받아 데이터 스토어에 저장합니다.
데이터스토어는 key-Value형태로 데이터를 관리합니다.
노드에서는 kubelet라는 에이전트가 작동하고 있어서 스테이터스가 바뀌면 API Server에게 통보를 합니다.
요즘처럼 IT기술이 다양하게 나오고 빨리 변화하는 시점에는 미래를 대비하기 위해서 항상 준비하고 공부하는 자세로 임해야겠습니다.
완벽한 인프라를 공부하기 위해서는 도커의 정의부터 익히시고 차근차근 다음 단계로 넘어가시길 추천드립니다.