목차
EKS 클러스터 생성부터 서비스 배포까지 1. 쿠버네티스, EKS 기초
EKS 클러스터 생성부터 서비스 배포까지 2. EKS 환경 세팅하기
EKS 클러스터 생성부터 서비스 배포까지 3. eksctl을 사용하여 EKS실행하기, 노드그룹 설정하기
EKS 클러스터 생성부터 서비스 배포까지 4. K8s 대시보드 배포
EKS 클러스터 생성부터 서비스 배포까지 5. 마이크로서비스 배포
EKS 클러스터 생성부터 서비스 배포까지 6. HELM
쿠버네티스란?

수십년간 경험과 모범사례를 토대로 선언형(declarative) 구성과 자동화를 대규모 도구, 서비스, 지원 환경을 기반으로 지원하도록 하는 컨테이너 오케스트레이션 엔진입니다.
노드(Node)
쿠버네티스 클러스터를 구성하는 머신들은 노드(node) 라고 불립니다.
쿠버네티스 클러스터 내 노드들은 물리적이거나 가상 머신일 수 있습니다.
노드에는 두가지 종류가 있습니다
- 클러스터의 “두뇌”로 역할하는 마스터 노드(Master-node)인 콘트롤 플레인(Control Plane)
- 파드(pod)들을 통해 실제 컨테이너 이미지들을 작동시키는 워커 노드(Worker-node)인 데이터 플레인(Data Plane)
K8s 오브젝트
쿠버네티스의 오브젝트(objects)는 클러스터의 상태를 나타내는 단위(entities)입니다.
오브젝트는 “의도를 담은 레코드”입니다. 생성된 클러스터는 그 의도대로 존재할 수 있도록 최선을 다합니다. 이는 클러스터의 “의도한 상태(desired state)“라고 알려져 있습니다.
쿠버네티스는 항상 오브젝트의 “현재 상태”를 “의도한 상태”와 동일하게 만들게끔 작동합니다. 이때 의도한 상태란 다음과 같습니다.
- 어떤 파드(컨테이너)들이 어느 노드에서 동작(running) 중인지
- 컨테이너들의 논리 그룹과 매핑된 IP 엔드포인트
- 동작 중인 컨테이너 레플리카(replicas)의 개수
- 기타 다수 상태들…
파드(Pod)
- 하나 이상의 컨테이너를 둘러싼 가장 작은 래퍼(wrapper) 단위.
데몬셋(DaemonSet)
- 워커 노드에 파드의 단일 인스턴스를 실행합니다.
디플로이먼트(Deployment)
- 어플리케이션 버전의 롤아웃(또는 롤백) 방법에 대한 세부내용.
레플리카 셋(ReplicaSet)
- 계속 동작할 파드의 개수를 정의합니다.
잡(Job)
- 파드가 제대로 완성(completion)되어 동작할 수 있도록 합니다.
서비스(Service)
- 고정 IP 주소를 파드의 논리 그룹과 매핑합니다.
레이블(Label)
- 연결(association)과 필터링에 사용되는 키/밸류(Key/Value) 쌍.
쿠버네티스 아키텍처
아키텍처 개요

컨트롤 플레인

- 1개 이상의 API 서버: kubectl 의 REST 진입점
- etcd: 분산 키/벨류 저장소
- 콘트롤 매니저: 항상 현재 상태와 원하는 상태를 평가
- 스케줄러: 작업 노드에 파드를 스케줄링
데이터 플레인

- 작업 노드로 구성
- kubelet: API 서버와 노드 간에 연결 역할
- kube-proxy: IP 변환과 라우팅 관리
EKS 외 쿠버네티스 클러스터 도구
매니지드 Amazon EKS 솔루션에 외에 자체 관리 쿠버네티스 클러스터를 시작하고 설정하는데 도움이 되는 도구가 많습니다. 일부는 다음과 같습니다.
- Minikube – 개발과 학습
- Kops – 학습, 개발, 제품화
- Kubeadm – 학습, 개발, 제품화
- 맥을 위한 도커 - 학습, 개발
- 도커에서 쿠버네티스 - 학습, 개발
이러한 오픈 소스 솔루션 외에도 많은 상용 옵션을 사용할 수 있습니다
EKS 클러스터 생성 작업 순서
다음과 같은 프로세스로 클러스터가 생성되게됩니다.

- EKS클러스터 생성 : 내부 AWS EKS VPC및 리소스가 생성됩니다.
- 워커노드 프로비저닝 : 커스토머 VPC에 워커노드가 생성됩니다.
- 애드온 런치 : 추가적으로 클러스터에 필요한 애드온등이 설치됩니다.
- 워크로드 런치 : 최종적으로 워크로드가 실행됩니다.
EKS 클러스터 생성
- 고가용성을 가진 컨트롤플레인이 AWS EKS VPC에 생성됩니다. 유저레벨에서는 접근이 불가능합니다.
- IAM 통합과 자격증명 관리를 통해 SSL 인증사항을 세팅합니다.
- 최종으로 로드밸런서가 세팅됩니다.
EKS컨트롤 플레인과 워커노드간의 통신 아키텍쳐

워커노드와 EKS의 컨트롤플레인의 경우 서로 다른 VPC에 위치하게 됩니다. 워커노드의 경우 커스토머 VPC에 프로비저닝 되며, 컨트롤플레인의 경우 사용자가 접근할 수 없는 AWS 내부의 EKS VPC에 생성됩니다. 각각의 구성요소는 NLB와 ENI를 통해 통신하게됩니다.
클러스터 관리 도구

최종적으로 유저는 kubectl 이라는 클러스터 관리도구를 통해 EKS 컨트롤플레인에 명령을 전달하고, 컨트롤플레인에서 워커노드그룹을 제어하게됩니다.
'Cloud > EKS' 카테고리의 다른 글
| EKS 클러스터 생성부터 서비스 배포까지 4. K8s 대시보드 배포 (0) | 2023.11.22 |
|---|---|
| EKS 클러스터 생성부터 서비스 배포까지 3. eksctl을 사용하여 EKS실행하기, 노드그룹 설정하기 (0) | 2023.11.22 |
| EKS 클러스터 생성부터 서비스 배포까지 2. EKS 환경 세팅하기 (0) | 2023.11.22 |
| AWS EKS Workshop - (컴포넌트 구성, 배포) (0) | 2023.10.12 |
| AWS EKS Workshop - (EKS 클러스터 생성, 샘플애플리케이션 소개) (0) | 2023.10.11 |