컨테이너 관련 서비스
컨테이너, 도커에 관한 지식은 이미 알고있다는 가정으로 진행
Kubernetes : 오픈소스
Cluster
master node와 work node 머신들의 set을 말한다.
Pod
container를 배포할 오브젝트
Kubernetes의 가장 작은 배포 단위 오브젝트
Deployment
pod를 더 세밀히 관리해주는 컨트롤러
장애가 생기면 새로 만들기, pod 업데이트, 롤백 등을 제공
Kubectl
Kubernetes에 명령을 전달하는 CLI
명령구조 : kubectl [COMMAND] [TYPE] [NAME] [FLAGS]
kubernetes 리소스를 생성, 수정, 삭제, 조회하는 명령어
EKS, Kubernetes 차이점
EKS | Kubernetes | |
---|---|---|
배포환경 | AWS | 온프레미스, 베어메탈, 클라우드 |
마스터 노드 | AWS 에서 설치 및 관리 | 직접 설치 및 관리 |
HA 구성 | 자동 구성 | 직접 구성 |
인증 | AWS IAM 기반 | 직접 구성 |
Pod 네트워크 통신 방식 | AWS VPC 기반 | 다양한 Plug in 지원 |
Pod 개수 제한 | 워커 노드의 인스턴스 타입에 따라 제한 | 워커 노드의 리소스에 따라 제한 |
EKS | ECS | |
---|---|---|
오픈소스 | O(kubernetes 사용해서) | X(AWS 독점 관리) |
컨테이너 | Pod(kubernetes 사용해서) | Task(AWS 독점 관리) |
배포 난이도 | 중간(AWS와 kubernetes 지식 필요) | EKS와 비교적 쉬움(AWS 대시보드 사용) |
규모 | 대규모, 하이브리드 배포/엔터프라이즈 급 | 소규모 |
커뮤니티 | 대규모 커뮤니티 보유(오픈 소스) | AWS 독점 서비스라서 기업지원은 좋을 수 있으나 커뮤니티는 지원이 적음 |
관리범위 | 전적으로 사용자가 해야 된다.(kubernetes의 전반적인 기능을 알아야 된다.) | AWS에서 전반적인 관리를 해준다.(Task definition) |
Os 가상화
물리적 서버(OS)에서 여러 OS를 구성하여 각각 다른 환경을 구성하는 것
가상화를 사용하는 이유
1. 서버 통합
하이퍼바이저
- 호스트 컴퓨터에서 다수의 운영체제를 동시에 실행하기 위한 소프트웨어
VM 기능
1. 마이그레이션
컨테이너와 VM 비교
VM | Container | |
---|---|---|
게스트 os | windows, Linux 등 다양하게 선택 | 호스트 OS 와 같은 OS |
시작시간 | 길다(몇 분) | 짧다(몇 초) |
이미지 사이즈 | 크다(수 GB ~ 수백 GB) | 작다(~ 수백 MB) |
환경관리 | 각 VM마다 패치가 필요 | 호스트 OS만 패치 |
컨테이너를 실행하고 관리해주는 도구
docker file -build-> Image -run-> Container 생성
도커 파일로 소스를 build해서 image를 생성한다.
도커를 실행시키면 생성된 image에 맞게 컨테이너가 생성된다.