반응형
1.목표 (What & Why)
- 지난 번 포스팅에 이어 쿠버네티스 기반 서비스로 동작하도록 구성해본다
- 쿠버네티스 클러스터, kubectl 을 통한 통신이 준비되어있어야 한다.
- 순수 애플리케이션 Deploy → 도커 기반의 컨테이너 Deploy → 쿠버네티스 기반 Pod Deploy 를 통해 컨테이너 오케스트레이션을 조금은 이해해본다.
2.과정 (Step)
- 쿠버네티스 deployment yaml 을 작성한다.
- Pod 를 배포하고 동작을 확인한다.
- replica 수를 조정하여 Pod scaling 을 확인해본다.
3.방법 (How)
- Deployment 를 생성한다.
$ vi deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: common-api-deployment
labels:
app: fastapi
spec:
replicas: 1
selector:
matchLabels:
app: fastapi
template:
metadata:
labels:
app: fastapi
spec:
containers:
- name: containers
ports:
- containerPort: 9000
image: AWS 계정.dkr.ecr.ap-northeast-2.amazonaws.com/demoapp:latest
- kubectl 로 deployment 를 생성한다.
$ kubectl apply -f deployment.yaml
- watch 를 통해 Pod, Node, Deployment를 모니터링 할 수 있다.
watch -d kubectl get pod,deploy,node
- replicas를 수정한다.
- 서비스를 확인한다.
4. 정리 (summary)
- 컨테이너 기술을 이용한다는 건, 의존성과 애플리케이션을 패키징해서 어디서 수행하던 프로그램의 실행과 결과를 보장하게 한다는 것이다.
- 철학적으로는 격리된 서비스의 실행환경을 만드는 것이고, MSA 를 지향하는 요즘 트렌드에 방향성이 같은 기술이라고 생각한다.
- 쿠버네티스는 좀 더 나아가서 컨테이너의 무중단 배포, 고가용성 보장과 노드 스케일링, 보안 등의 기능 지원으로 컨테이너 기술의 힘을 더 강하게 해준다. -> 컨테이너 오케스트레이션 이라고 한다.
- 쿠버네티스는 공부할 것이 많다.
- 다음에는 시간이 될 지 모르겠지만, emr on eks 의 구성과 karpenter 기반의 spark workload 실행을 포스팅 해보고 싶다. ( 요즘 회사에서 하고 있는 기술이기도 하다. )
반응형
'Data Engineer' 카테고리의 다른 글
(python) streamlit 을 이용한 웹 리포트 만들기 (0) | 2024.03.19 |
---|---|
kubernetes - 자주 사용하는 kubectl 명령어 정리 (1) | 2023.10.09 |
fastapi - 컨테이너 서비스로 구성해보기 (1) (0) | 2023.07.24 |
Chat GPT Simple Application 만들기 (0) | 2023.05.01 |
airbyte(에어바이트) 구축 및 실습 (0) | 2023.01.02 |