클라우드 운영_2

DeadWhale·2022년 11월 2일
0

클라우드

목록 보기
2/2
post-thumbnail

EKS

쿠버네티스 클러스터 아키텍처

  1. 여러 대의 서버가 하나의 클러스터로 연결
  2. 쿠버네티스의 마스터 :: 컨트롤 플레인이 실행된다
    • 클러스터의 두뇌 역할
    • 컨테이너 스케줄링
    • 서비스 관리
    • API 요청을 수행한다
      (파드, 리소스 컨트롤러 , 로드밸런서 관리)
  3. 쿠버네티스 워커노드 :: 사용자의 워크로드 실행
  4. kubectl == 쿠버네티스를 다루기 위한 명령행
    1. 여기서 세팅 고생을 했다.
    2. AWS Linux 상에서 git / home brew 등을 이용해 설치했어야 하는데 권한등의 문제로 어려웠다.

관리형 Kubernetes VS 자체 호스팅

  1. Kubernetes를 자체적으로 구축 가능 ( 자체 호스팅 )
    아키텍처를 구성하고 지속적으로 관리 필요 ( 쿠버네티스의 업데이트가 생각 보다 빠르다)
    설치도 어렵다
  2. 관리형 쿠버네티스가 추천된다
    AWS ⇒ EKS
    Google ⇒ GKE
    Azure ⇒ AKS

기업에서 제공하는 고가용성이 보장되는 쿠버네티스 클러스터를 제공한다

Kubernetes Object

  • 쿠버네티스는 상태를 관리하기 위한 대상을 오브젝트로 정의한다.
  • Pod - 쿠버네티스의 가장 작은 배포 단위 도커 컨테이너가 하나 이상으로 구성되어 있다.
  • Deployment 애플리케이션 배포의 기본 단위 리소스
  • Service - Pod를 외부로 노출시켜주는 로드 밸런서
  • 위의 내용들을 yaml 파일로 정의해 kubectl 명령어로 관리한다.
❕ 노드(workNode)는 하나의 EKS의 NodeGroup ( 하나의 컴퓨터 ) 컨테이너 (Web Application 등등) 을 담은 Pod는 Deployment으로 관리된다.

Deployement에서 몇개의 Pod가 얼마만큼 자원을 사용하고 어떤 방식으로 배포할지 정의 한다

Pod는 각각의 WorkNode에 배포되고 yaml에 정의된 로드밸런서 == Service에 의해 외부에 노출된다. 이를 통해 사람들이 인터넷을 통해 접근 할 수 있게 외부로 노출한다.

Nginx에 배포할려면?

  1. Deployment를 정의해 Nginx 컨테이너를 담은 Pod를 띄운다
  2. Pod의 LoadBalancer Type의 Service를 통해 배포
  3. 자동으로 생성된 ELB를 통해 nginx에 배포를 확인할 수 있다

참조
공식 문서
노션 정리

0개의 댓글