Docker와 Kubernetes

Docker와 Kubernetes에 대해 정리합니다.

- Virtual Machine vs Container
- 컨테이너?
- 컨테이너 오케스트레이션
- Kubernetes
  - Master
  - Node
  - Object

Virtual Machine vs Container

Virtual Machine(VM)

Container

컨테이너를 사용하면?

MSA를 구축하면서 한 번에 여러 개의 컨테이너를 관리할 필요가 생깁니다




컨테이너 오케스트레이션

Cluster

State

Scheduling

Rollout / Rollback

Service Discovery

Volume




쿠버네티스 Kubernetes

용어 정리

리소스 용도
Kubernetes Cluster 쿠버네티스의 여러 리소스를 관리하기 위한 집합체
Node 컨테이너가 배치되는 서버
Namespace 쿠버네티스 클러스터 안의 가상 클러스터
Pod 컨테이너 집합 중 가장 작은 단위, 컨테이너 실행 방법 정의
Replica Set 같은 스펙을 갖는 파드를 여러 개 생성하고 관리
Deployment 레플리카 세트의 리비전 관리
Service 파드의 집합에 접근하기 위한 경로를 정의
Ingress 서비스를 쿠버네티스 클러스터 외부로 노출
ConfigMap 설정 정보를 정의하고 파드에 전달
Role 네임스페이스 안에서 조작 가능한 쿠버네티스 리소스 규칙 정의
ClusterRole 클러스터 전체적으로 조작 가능한 쿠버네티스 리소스 규칙 정의
Service Account 파드가 쿠버네티스 리소스를 조작할 떄 사용하는 계정




기본 개념

image

IMG_E24F5C7E3E86-1

쿠버네티스 아키텍쳐

IMG_C09F46CE4576-1

Desired State




Master

etcd

API Server

Scheduler

Controller




Node

Kubelet

Proxy

쿠버네티스 오브젝트

image

Pod

Replica Set

Clueter IP

NodePort

LoadBalancer

Ingress

쿠버네티스 API 호출

참고: DevOps Engineer, Flynn님 DevOps와 Kubernetes 특강

도서: 도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문 - 야마다 아키노리