본문 바로가기
infra

AWS EKS(쿠버네티스) 쉽게 찍먹해보기 - 이론

by AI미남홀란드 2024. 6. 26.
728x90

Amazon EKS

컨테이너의 이점

  • 이동 가능성
  • 클라우드 배포 가능 (EC2, Lambda, EKS, Elastic Container Service , AWS App runner)
  • 확장성 (CPU 1개 → CPU4개, Scale up , Scale Out, Scale in) auto scaling
  • 지속적 배포 선언형 형식
  • 컨테이너는 마이크로 서비스에 적합 (모놀리스 -> 마이크로)

현업에서는 수천개의 호스트 수만개의 컨테이너로 관리가 되고 있을 것이다.

  • 스케줄링
  • 클라우드
  • 네트워킹
  • 로드 밸런싱
  • 스토리지
  • 보안
  • 모니터링
  • 로깅

쿠버네티스는 오픈소스 기반의 Google 에서 개발이 되었고 사용이 안정되었기 때문에 많이 사용한다.

컨테이너의 이점과 더불어 강력한 커뮤니티가 있다. 하지만 쿠버네티스의 런닝커브는 처음에 배우기가 어렵다고 할 수 있다.

 

PodSpec 으로 Pod 를 정의

 

Pod 는 하나이상의 컨테이너로 구성된 그룹이다. YAML 기반의 매니페스트 파일을 사용해서 정의한다.

 

# pod 는 하나이상의 컨테이너로 이루어진 집합.
# yaml 파일 형태로 저장

apiversion : v2
kind : pod                         # 나는 무엇을 만들거에요? 
metadata :                         
	name : webapplication
    labels:
      app.kubernetes.io/name: webapp

spec:
 container:
 - name : nginx
   image : nginx:1.25.1
   ports : 
   - containerPort : 8080
   
# 따로 지정이 안되어있다면 Dockerhub 에서 가져온다.
# Dockerfile -> image -> [ Registry(이미지 저장소) / Repository ]

 

Pod들은 하나의 ip로 구성이 되어있다. 서로간의 통신을 위한 IP 대역을 가지고 있다. 하지만 접근을 하지 못하는 IP 이기 때문에 이때 사용하는 것이 서비스이다.

 

서비스의 형태

app : backend

ip 10.100.0.15

    port : 80

targetPort : 8080

 

Kubernetes 의 내부

쿠버네티스 클러스터를 실행하는 시스템을 시스템 노드라고하고, 노드는 제어, 데이터영역으로 구분 된다.

제어영역 : 클러스터를 관리 , 데이터영역 : 애플리케이션을 실행

 

컨트롤러 - 제어루프 

컨트롤러는 현재 상태가 원하는 상태와 같은지 확인한다. Replicaset, DaemonSet과 같은 일부 컨트롤에 대해 학습한다.

728x90