Introduction to container
지금까지의 흐름
-
아키텍처 패턴의 변화 - 모놀리식에서 MSA(마이크로 서비스 아키텍처)
-
운영 모델의 변화 - 서버리스 서비스 사용 ← 운영해야할 컴포너트 수의 증가
-
소프트웨어 딜리버리 방법의 변화 - 코드 개발/빌드/배포를 자동화(with Infrastructure as code: Iac)
현재
문제점
-
다양한 어플리케이션 스택
-
다양한 하드웨어
-
다양한 환경
-
마이그레이션
해결법(= EKS 컨테이너)
- SW 단위의 배포
- Lightweight, portable, consistent
- 운영과 개발간의 일관성
새로운 패러다임
-
I
mmutable Infrastructure - 배포된 이후 절대 변경되지 않는 형태의 인프라 패러다임(수정X)
-
Container - 모던 어플리케이션 구축
컨테이너란(Docker)
-
OS
수준에서 가상화 하여 다른 어플리케이션과 논리적으로 격리된 환경 제공
-
어플리케이션 구동에 필수적으로 필요한 최소한의 환경을 구축(→ 빠름)
-
복잡한 워크로드 일수록 유리함
Kubernetes Basic
복잡한 컨테이너 환경을 효과적으로 관리하기 위한 도구
쿠버네티스 기능
- 상태관리( desired state) - control loop사용
- 배포관리(scheduling) -오토 스케일링, 자원이 여유가 있는 서버에 적절하게, 롤아웃과 롤백을 중앙에서 관리
쿠버네티스 구조
- the master node - 클러스터 관리를 위한 마스터 노드를 두고 마스터 노드가 클러스터에 명령을 내리는 방식,
마스터 노드를 관리하는 것 만으로 클러스터를 관리
- the worker nodes → EC2와 대응,
- kubelet(demon과 같은 역할), kube-proxy(네트워크)pods(=컨테이너)
Object
- Basic object - pod, service, volume,namespace
-
Controller - Replicaset , deployment, daemonset, job