반응형

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 실행을 포스팅 해보고 싶다. ( 요즘 회사에서 하고 있는 기술이기도 하다. ) 

 

반응형

+ Recent posts