굥뷰를 햡시댜
[용어 정리] Docker, Kubernetes에 대하여... 본문
도커와 쿠버네티스에 대해 간단하게 정리해보고자 한다.
1. 도커(Docker)란?
-> 컨테이너 기반 가상화 플랫폼
2. 도커의 등장 배경
개발자들의 개발 환경은 다 제각각이다.
그래서 협업을 할 때, 개발 환경을 맞춰야 한다거나
이미 개발중인 애플리케이션의 개발 환경 버전이 서로 다르다면 애플리케이션을 배포하거나
협업하는데 큰 문제가 생길수도 있다.
이런 문제점을 해결하기 위해 등장한 것이 바로 도커(Docker) 이다.
3. 도커의 특징
-> 클라이언트의 PC와 서버에 도커를 설치하고 도커 파일을 만들면 컨테이너를 만들 수 있다.
-> 여기서 만들어진 컨테이너는 같거나 각각 다른 개발 환경을 가지고 있다.
-> 중요한 점은 이 컨테이너들은 서로 독립적이다.
-> 또, 기존에 개발했던 서비스를 다시 만들 때 개발환경을 새로 구성하지 않아도 된다.
-> why? 그 때 사용했던 컨테이너를 복제하면 되기 때문! -> 엄청 편리하다!
4. 쿠버네티스(Kubernetes)란?
-> 컨테이너들을 관리할 수 있게 구글이 만든 오픈소스 플랫폼
5. 쿠버네티스의 특징
-> 서비스 디스커버리와 로드 밸런싱 : 쿠버네티스는 DNS 이름을 사용하거나 자체 IP 주소를 사용하여 컨테이너를 노출할 수 있다. 하지만 컨테이너에 대한 트래픽이 많으면 쿠버네티스는 네트워크 트래픽을 로드밸런싱하고 배포하여 배포가 안정적으로 이루어질 수 있게 한다.
-> 스토리지 오케스트레이션 : 쿠버네티스를 사용하면 로컬 저장소, 공용 클라우드 공급자 등과 같이 원하는 저장소 시스템을 자동으로 탑재할 수 있다.
-> 자동화된 롤아웃과 롤백 : 쿠버네티스를 사용하여 배포된 컨테이너의 원하는 상태를 서술할 수 있으며 현재 상태를 원하는 상태로 설정한 속도에 따라 변경할 수 있다. 예를 들어 쿠버네티스를 자동화해서 배포용 새 컨테이너를 만들고 기존 컨테이너를 제거하고 모든 리소스를 새 컨테이너에 적용할 수 있다.
-> 자동화된 빈 패킹 : 컨테이너화된 작업을 실행하는데 사용할 수 있는 쿠버네티스 클러스터 노드를 제공한다. 각 컨테이너가 필요로 하는 CPU와 메모리(RAM)를 쿠버네티스에게 지시한다. 쿠버네티스는 컨테이너를 노드에 맞춰 리소스를 가장 잘 사용할 수 있도록 해준다.
-> 자동화된 복구 : 쿠버네티스는 실패한 컨테이너를 다시 시작하고 컨테이너를 교체하며 사용자 정의 상태 검사에 응답하지 않는 컨테이너를 죽이고 서비스 준비가 끝날 때까지 그러한 과정을 클라이언트에 보여주지 않는다.
-> 시크릿과 구성 관리 : 쿠버네티스를 사용하면 암호, OAuth 토큰 및 ssh 키와 같은 중요한 정보를 저장하고 관리할 수 있다. 컨테이너 이미지를 재구성하지 않고 스택 구성에 비밀을 노출하지 않고도 비밀 및 애플리케이션 구성을 배포 및 업데이트 할 수 있다.
'웹 > 용어 정리' 카테고리의 다른 글
[용어 정리] Framework와 Library의 차이점 (0) | 2019.11.18 |
---|---|
[용어 정리] REST, REST API에 대하여... (0) | 2019.10.29 |
[용어 정리] Waterfall, Agile, MSA에 대하여.. (0) | 2019.10.29 |