www.youtube.com/watch?v=N0uLK5syctU&list=WL&index=1&t=1013s
## Fargate on EKS
- Fargate (ECS)
: 완전 관리형 컨테이너 서비스
: 범용 목적의 서버리스 컨테이너
- EKS
: 관리형 쿠버네티스 서비스
: EC2 노드그룹을 Worker로 사용
- EKS + Fargate
: Fargate에 EKS의 APP 배포 가능
: 오케스트레이터 (쿠버네티스)
## 관리해야하는 EC2 인스턴스가 존재하지 않음
- 하지만 Fargate on EKS가 모든 것을 해결해 주지는 않음.
## 관리의 복잡도가 줄어듭니다.
- Cluster Autoscaler 를 사용할 필요가 없습니다.
- 비용 청구의 단위가 Pod의 실행 시간이 됩니다.
- Pod를 사용해도 VM수준의 격리가 가능합니다.
- 기존 어플리케이션의 변경없이 Fargate로 이전할 수 있습니다.
## Stateless하고 리소스를 크게 요구하지 않으며 특별한 권한이 필요없는 워크로드
## Use Case
- EKS를 Fargate 와 EC2 인스턴스 영역으로 나눠 사용
: Fargate on EKS에는 Stateless한 서버
: EKS (EC2 인스턴스)에는 Statefull 한 서버
## Fargate Profile (프로파일 생성)
- Fargate 에 포드를 생성하는 조건을 명시
## Fargate on EKS 사용방법
1. default 네임스페이스에서
2. my-allocation-label이 alice 인 경우
3. Fargate 에 Pod를 생성한다.
1. 일반 Pod의 경우
2. Fargate Profile 조건과 일치할 경우
## Fargate on EKS 사용해보기 (Demo)
1. 최신 버전의 EKS 클러스터 준비
2. Fargate Profile 생성
3. Pod 생성하기
## Pod를 Fargate 에 스케줄링할 조건을 명시
- namespace : kube-system
- labels : kube-dns
## json 파일로 Fargate 프로파일 생성
- aws eks create-fargate-profile \ --cli-input-json file://demo.json \ --region ap-northeast-1
## CoreDNS Pod가 Fargate에 할당되었고, IP도 할당받았음.
## EKS + Fargate 네트워크 구조
- 노드의 IP와 Pod의 IP가 동일함
## Node IP = Pod IP
## 1개의 Pod = 1개의 Node
- 최대 5000개의 Pod만 사용 가능
## compute-type 주석의 우선순위가 더 높음 (강제로 EC2에 생성)
## 요금 체계
## 무조건 Fargate on EKS가 저렴하지 않을 수도 있음
제약 사항
다른 AWS 서비스와 마찬가지로 제약사항이 존재합니다. 다음과 같습니다.
- GPU 컴퓨팅 자원 사용 불가능: Fargate는 GPU 컴퓨팅 자원이 없기 때문에 GPU 사용을 고려하신다면 EKS최적화 AMI를 이용하여 EC2 Worker node를 구성해야 합니다
- CLB / NLB 사용 불가: EC2기반에선 CLB / NLB 모두 활용 가능하나 Fargate에선 ALB만 활용이 가능합니다
- Kubernates의 Host 기준 옵션 사용 불가: 데몬셋(daemonset)은 클러스터 전체에 worker노드의 호스트당 pod를 띄울때 사용하는 컨트롤러 입니다. 하지만 Fargate에는 host가 없으므로 demonset은 지원하지 않습니다. 이와 마찬가지로 worker node 호스트 네트워크에 직접 연결하는 Hostport, Hostnetwork와 같은 기능을 사용할 수 없습니다
- 영구적인 볼륨 또는 파일 시스템이 필요한 볼륨을 제공하지 않음: Pod실행 시 컨테이너 이미지 계층 스토리지 10GB, 마운트를 위한 볼륨 4GB이 제공되며 이 스토리지는 휘발성이라 Pod 중지시 스토리지가 삭제됩니다
'쿠버네티스 기타' 카테고리의 다른 글
How ALB Ingress Controller works? | AWS ALB Ingress Controller | kubernetes Ingress controller - ALB 인그레스 아키텍처 (0) | 2020.11.02 |
---|---|
Fargate on EKS 구현 (0) | 2020.10.28 |
[헬름] Helm : The Kubernetes Package Manager (0) | 2020.10.15 |
Helm (헬름) 설치하기 (0) | 2020.10.14 |
Helm 차트 란? | NGINX를 사용한 Helm Kubernetes 데모 (0) | 2020.10.14 |
댓글