Containerozed Application
을 자동으로 배포, 스케일링 및 관리해주는 오픈 소스 시스템
Container
: 앱이 구동되는 환경까지 감싸서 실행할 수 있도록 하는 격리 기술
- 우리가 구동하려는 애플리케이션을 실행할 수 있는 환경까지 감싸서 어디서든 쉽게 실행할 수 있도록 해주는 기술
Container Runtime
: 컨테이너를 다루는 도구
- 컨테이너를 쉽게 내려받거나 공유하고 구동할 수 있도록 해주는 도구
Docker
: 컨테이너를 다루는 도구 중 가장 유명한 것
Kubernetes
: 컨테이너 런타임을 통해 컨테이너를 오케스트레이션 하는 도구
Orchestration
: 사용자가 원하는 상태(Desired State)
로 동작하도록 관리(Schedule
)하는 것
- 여러 서버(노드)에 컨테이너를 분산해서 배치
- 문제가 생긴 컨테이너를 교체
- 컨테이너가 사용할 비밀번호나 환경 설정을 관리하고 주입
Cluster
를 얻음Cluster
: 노드들의 집합Control Plane
과 Data Plane
으로 나뉘어짐쿠버네티스의 오브젝트 : desired state
(원하는 상태)를 담은 레코드
오브젝트를 생성하면 쿠버네티스의 컨트롤 플레인에서 오브젝트의 current state
(현재 상태)와 desired state
를 일치시키기 위해 끊임없이 관리함
Object 유형
pod
(파드)
- 쿠버네티스에서 생성하고 관리할 수 있는 배포 가능한 가장 작은 컴퓨팅 단위
- 애플리케이션의 최소 실행 단위
- 하나 이상의 컨테이너를 포함
- 1개의 Pod에는 1개의 컨테이너 구성 권장
- Pod 특징
- Pod에는 각각 고유한 private IP 할당
- Pod 안에 있는 컨테이너는 pod의 IP를 공유
service
- 파드들을 통해 실행되고 있는 애플리케이션을 네트워크에 노출(expose)시키는 가상의 컴포넌트
deployment
- 애플리케이션 배포의 기본 단위 리소스
Volume
- 컨테이너의 기본 상태는 stateless이기 때문에 상태 유지가 필요한 경우 사용
EKS
를 사용하면 AWS 환경에서 kubernetes
의 Control plane
또는 node
를 직접 설치, 운영할 필요가 없음
다양한 AWS 서비스와 연동하여 확장성과 보안 제공
Amazon ECR
(Elastic Container Registry) : 컨테이너 이미지 저장소AWS ELB
(Elastic Load Balancing) : 로드 분산AWS IAM
: 인증Amazon VPC
: 격리