쿠버네티스란?
- 지속적 통합 (CI), 지속적 배포 (CD) 에 적합한 구조를 가진다.
- 무중단 배포 및 스케일 업/다운
- 클라우드와 on-premise 에서 같은 방식으로 사용할 수 있다.
- 일관된 인터페이스로 다룰수 있도록 설계되어 있기 때문이다.
- 마스터노드와 워커노드로 구성된다.
- 마스터노드 : 클러스터의 관리를 담당
- 워커노드 : 컨테이너화 된 애플리케이션을 실행한다.
컨테이너의 이해
- 불변의 실행환경 (Immutable Infrastructure) 제공
- 애플리케이션 실행에 필요한 Library, OS 등을 하나로 패키징하여 불변의 실행환경을 만들 수 있다.
- 기존에는 호스트 운영체제 위에 애플리케이션을 구동하였으나, 개발환경과 배포환경이 완벽히 같음을 보장할 수는 없었기에 오류가 생길 수 있었던 점을 해결할 수 있다.
- 가상머신 vs 컨테이너
- 가상머신 : OS 위에서 하이퍼바이저 (VMware...) 를 사용하여 애뮬레이션한 뒤, Guest OS를 생성하는 방식
- 컨테이너 : 리눅스 커널을 이용하여 격리된 리눅스 프로세스를 사용하는 분리상태를 만드는 방식
도커의 아키텍처
- 도커 클라이언트
- Docker API 를 통해 도커 데몬에 요청을 보낸다.
- ex) docker build / docker rundocker pull...
- 도커 데몬(서버)
- 도커 클라이언트의 명령을 받아 이미지 / 컨테이너 / 볼륨 / 네트워크 등을 관리한다.
- 도커 레지스트리
- 도커 컨테이너의 이미지를 보관하는 곳이다.
- 컨테이너
- 하나의 프로세스라고 볼 수 있으며, 완전히 분리되어 실행되는 프로세스이다.
쿠버네티스의 기본
- Pod
- k8s에서 컨테이너를 실행하는 최소 단위이며, 하나의 pod에서 여러개의 컨테이너를 실행할 수 있다.
- 내부의 컨테이너들은 localhost로 서로 통신할 수 있다.
- 서비스
- 클라이언트의 요청을 Pod에게 전달한다. (Pod의 IP는 구동할 때마다 변경되기 떄문이다.)
- LB의 역할을 한다.
- 대표 IP주소 (Cluster IP) 를 갖는다.
- 컨트롤러
- Pod을 제어한다.
'책 정리 > 15단계로 배우는 도커와 쿠버네티스' 카테고리의 다른 글
7. 매니페스트와 파드 (0) | 2021.08.21 |
---|---|
6. 쿠버네티스 첫걸음 (0) | 2021.08.21 |
4. 컨테이너와 네트워크 (0) | 2021.08.16 |
3. 컨테이너 개발 (0) | 2021.08.15 |
2. 컨테이너 다루기 (0) | 2021.08.15 |