Kubernetes를 사용하는 이유?
- 서비스에 app을 쉽게 노출할 수 있고 (Docker container), load balancing을 쉽게 걸 수 있다. [Service]
- 저장 공간을 추상화 하여, 쉽게 관리할 수 있다. [Persistent Volume, Persistent Volume Claim]
- Rollout restart, Rollback이 매우 쉬워 진다. [Deployment, Statefulset]
- Computing Resource 관리가 쉽다. [Node affinity, requests, limits]
- 자동 복구 기능이 있다. [Probes]
- Secret 정보나, 설정 값들을 관리하기 쉽다. [Secret, ConfigMap]
Kubernetes 구축하는 방법
발표자료
Kubernetes CNI를 이용한 방법
Rancher를 이용한 방법 (추천)
Kubernetes Components
Pod
Docker container처럼 unique한 ID를 가지고 있는 일시적인 객체.
하나의 포드에 한개 이상의 컨테이너가 포함되어 있음.
- 포드 상태
- Pending - Pod가 뜨기 위한 조건이 충족되지 않아서, 기다리는 상황 [Node affinity가 걸려있거나, 자원 부족 (requests)가 부족한 경우일 가능성이 높음]
- Running - 잘 돌고 있는 상황
- Completed - Pod에 설정된 작업 (container에서 정의된)이 완료 된 상황.
- CrashLoopBackOff / Error - Pod에 설정된 작업이 도중에 error를 뱉고 꺼진 상황