Skip to content

Latest commit

 

History

History
39 lines (23 loc) · 3.09 KB

docker-k8s.md

File metadata and controls

39 lines (23 loc) · 3.09 KB

Docker & K8s

도커의 간략한 개념

도커는 environment disparity라는 문제점을 해결해줍니다. 도커를 이용하면 다른 머신에서도 같은 환경을 구축할 수 있습니다.

원하는 개발 환경을 도커 파일에 설정하면, 도커는 이 파일을 읽어 어떤 머신에서든 해당 환경을 구축(시뮬레이션)해줍니다. (프로그램 다운 받고, 환경 설정해주고 등등..)

하나의 컴퓨터에는 여러개의 도커 컨테이너들을 띄울 수 있습니다. 또한 이런 컨테이너들은 서로 독립적으로 존재하기 때문에 모듈식으로 관리할 수 있습니다.

참고 자료

Kubernetes(K8s)

쿠버네티스의 간략한 개념

쿠버네티스는 여러개의 도커 컨테이너를 관리하는 플랫폼입니다.

쿠버네티스와 도커는 가장 많이 사용되는 조합일 뿐 리눅스 컨테이너(linux container) 개념을 구현한 도커 이외의 컨테이너 엔진들도 쿠버네티스와 호환이 가능합니다. 따라서 쿠버네티스가 무조건 도커 컨테이너를 관리하는 기술이라고 오해하면 안됩니다. (내가 그럼..ㅎ)

만약, 개발한 소프트웨어를 도커 환경을 이용해 AWS에 띄우는 경우에는 쿠버네티스가 필요하지 않습니다. 그냥 AWS에 도커를 설치하고 도커 파일을 이용해 컨테이너를 구축해 소프트웨어를 배포할 수 있습니다.

하지만, MSA 환경과 같이 하나의 소프트웨어를 위해 여러개의 컨테이너가 필요한 상황이라면 쿠버네티스를 활용하면 자동화할 수 있는 부분들이 많습니다. 따라서 쿠버네티스는 컨테이너 관리 작업을 자동화한 플랫폼이라고 볼 수 있습니다.

쿠버네티스는 엔진이 아닌 플랫폼으로 여러 구현 엔진들이 존재합니다. amazon Elastic Kubernetes Service(EKS), Google Kubernetes (GKE), Azure Kubernetes (AKS) 등등

  1. 컨테이너 모니터링 쿠버네티스는 지속적으로 컨테이너들을 모니터링하면서 컨테이너가 죽으면 자동으로 재시작해줍니다. 따라서 이에 대해 개발자가 신경쓰지 않아도 됩니다.

  2. 자동 스케일 아웃/인 갑자기 트레픽이 몰리는 상황이 발생하면 쿠버네티스는 자동으로 새로운 컨테이너를 만들어줍니다. 그러다 트레픽이 줄어들면 지정해둔 최소 숫자로 컨테이너 수를 조정합니다.

  3. 무중단 배포 신규 버전으로 업데이트 해야하는 경우 쿠버네티스는 컨테이너들을 차례로 업데이트 하기 때문에 서버가 다운되는 일이 발생하지 않습니다.

참고 자료