EKS
쿠버네티스 클러스터 아키텍처
- 여러 대의 서버가 하나의 클러스터로 연결
- 쿠버네티스의 마스터 :: 컨트롤 플레인이 실행된다
- 클러스터의 두뇌 역할
- 컨테이너 스케줄링
- 서비스 관리
- API 요청을 수행한다
(파드, 리소스 컨트롤러 , 로드밸런서 관리)
- 쿠버네티스 워커노드 :: 사용자의 워크로드 실행
- kubectl == 쿠버네티스를 다루기 위한 명령행
- 여기서 세팅 고생을 했다.
- AWS Linux 상에서 git / home brew 등을 이용해 설치했어야 하는데 권한등의 문제로 어려웠다.

관리형 Kubernetes VS 자체 호스팅
- Kubernetes를 자체적으로 구축 가능 ( 자체 호스팅 )
아키텍처를 구성하고 지속적으로 관리 필요 ( 쿠버네티스의 업데이트가 생각 보다 빠르다)
설치도 어렵다
- 관리형 쿠버네티스가 추천된다
AWS ⇒ EKS
Google ⇒ GKE
Azure ⇒ AKS
기업에서 제공하는 고가용성이 보장되는 쿠버네티스 클러스터를 제공한다
Kubernetes Object
- 쿠버네티스는 상태를 관리하기 위한 대상을 오브젝트로 정의한다.
- Pod - 쿠버네티스의 가장 작은 배포 단위 도커 컨테이너가 하나 이상으로 구성되어 있다.
- Deployment 애플리케이션 배포의 기본 단위 리소스
- Service - Pod를 외부로 노출시켜주는 로드 밸런서
- 위의 내용들을 yaml 파일로 정의해 kubectl 명령어로 관리한다.
❕ 노드(workNode)는 하나의 EKS의 NodeGroup ( 하나의 컴퓨터 )
컨테이너 (Web Application 등등) 을 담은 Pod는 Deployment으로 관리된다.
Deployement에서 몇개의 Pod가 얼마만큼 자원을 사용하고 어떤 방식으로 배포할지 정의 한다
Pod는 각각의 WorkNode에 배포되고 yaml에 정의된 로드밸런서 == Service에 의해 외부에 노출된다. 이를 통해 사람들이 인터넷을 통해 접근 할 수 있게 외부로 노출한다.
Nginx에 배포할려면?
- Deployment를 정의해 Nginx 컨테이너를 담은 Pod를 띄운다
- Pod의 LoadBalancer Type의 Service를 통해 배포
- 자동으로 생성된 ELB를 통해 nginx에 배포를 확인할 수 있다
참조
공식 문서
노션 정리