구성요소 포장

다음과 같은 워크로드를 EKS에 배포하려면 컨테이너 이미지로 패키징하고 컨테이너 레지스트리에 게시해야 합니다.
AWS 는 이미 공개퍼블릭 이미지 저장소인 ECR에 이미지를 배포해두었기 때문에 해당 이미지들을 사용하겠습니다.
마이크로서비스
EKS 클러스터에 배포하기 이전, 카탈로그 컴포넌트, UI 컴포넌트의 구성요소를 살펴보며 고려할사항등에 대해 생각해보겠습니다.

- 카탈로그 API를 제공하는 애플리케이션은 Pod로 배포되고 실행되게 됩니다.
- 실행되는 Pod는 하나 이상의 Replia를 관리할 수 있는 Deployment에 의해 생성되어 수평적 확장이 가능합니다.
- Servie는 Pod의 세트로 실행되는 애플리케이션을 노출하는 방법이며, K8s 클러스터 내부의 다른 구성요소에서 카탈로그 API를 호출할 수 있습니다. 각각의 Service는 자체적인 DNS가 제공되게 됩니다.
- 상태저장 워크로드를 관리하도록 설계된 StatefulSet으로 K8s클러스터 내에서 실행되는 MySQL DB Pod를 배포합니다.
- 해당 구성은 모두 Catalog Namespace로 그룹화되어 관리됩니다.

- UI 컴포넌트는 사용자 브라우저로부터 HTTP요청을 받습니다. 그 후 해당 요청을 수행하기위해 다른 API 컴포넌트에 HTTP요청을 하고, 사용자에게 응답을 반환합니다.
- 각 다운스트림 컴포넌트는 자체 데이터스토리지나 인프라가 있을 수 있습니다.
- Namespace는 각 서비스에 대한 논리적 그룹이며, RBAC및 네트워크 정책을 사용하여 제어를 효과적으로 구현합니다.
구성요소 배포
미리 작성된 demployment.yaml을 사용하여 컴포넌트들을 배포해보겠습니다.
cd dist/kubernetes
kubectl apply -f deploy.yaml
kubectl wait --for=condition=available deployments --all

배포가 완료되면, UI서비스를 통해 웹서비스를 접속해보도록 하겠습니다.
kubectl get svc ui
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ui LoadBalancer 172.20.11.154 aabb0194df5ce4294b9cdc808b743cea-1110028513.ap-northeast-2.elb.amazonaws.com 80:32658/TCP 5m2s
External IP를 사용하여 접속해보도록 하겠습니다.

서비스가 정상적으로 배포된것을 확인할 수 있습니다.
'Cloud > EKS' 카테고리의 다른 글
| EKS 클러스터 생성부터 서비스 배포까지 4. K8s 대시보드 배포 (0) | 2023.11.22 |
|---|---|
| EKS 클러스터 생성부터 서비스 배포까지 3. eksctl을 사용하여 EKS실행하기, 노드그룹 설정하기 (0) | 2023.11.22 |
| EKS 클러스터 생성부터 서비스 배포까지 2. EKS 환경 세팅하기 (0) | 2023.11.22 |
| EKS 클러스터 생성부터 서비스 배포까지 1. 쿠버네티스, EKS 기초 (0) | 2023.11.22 |
| AWS EKS Workshop - (EKS 클러스터 생성, 샘플애플리케이션 소개) (0) | 2023.10.11 |