[Kubernetes] Kubernetes 시작 - Section 11

liljoon·2024년 1월 9일
0

이 글은 Udemy의 "【한글자막】 Docker & Kubernetes : 실전 가이드" 강의의 학습 노트입니다.
https://www.udemy.com/course/docker-kubernetes-2022/

Kubernetes 란?

컨테이너 기술에서 있어 추가적인 도구이다. 컨테이너 오케스트레이션과 대규모 배포에 도움이 되는 프레임워크이다.
컨테이너화 된 어플리케이션의 배포, 확장 및 관리를 자동화하기 위한 오픈 소스 시스템.(단일 소프트웨어가 아니다.)

컨테이너 충돌, 다운에 대응하고 트래픽 급증 시 컨테이너 증가 및 트래픽 분할 등을 한다.

간단히 k8s라고도 부른다. k와 s사이의 8개의 알파벳이 존재하기 때문에


ECS 사용하면 되지 않나?

AWS ECS는 관리형 시스템으로 이미 컨테이너 상태를 자동으로 확인하고 다운 시 재시작 등을 해준다.
트래픽 증가 시 오토스케일링, 로드밸런싱도 지원한다.
하지만 이러한 시스템은 클라우드 프로바이더(AWS, MS Azure 등) 에 고정되어 유연하지 못하다. 다른 프로바이더로의 전환이 어렵다.
-> 쿠버네티스 사용


Kubernetes 역할 및 특징

컨테이너 오케스트레이터의 사실상 표준(de facto standard)이다.

  • 컨테이너 모니터링
  • 배포
  • 관리
  • 스케일링
  • 로드밸런싱

일부 클라우드 프로바이더에 특화된 옵션도 추가 가능.
무료.

간단히 비유하자면 여러 머신에서 동작하는 docker-compose이다.
배포용이다.


주요 용어

Pod

  • 쿠버네티스에서 동작하는 가장 작은 단위
  • 하나 이상의 컨테이너를 포함
  • 컨테이너 실행 책임을 갖음
  • 워커노드에서 실행됨
  • 워커노드의 프록시에 의해 네트워크 트래픽이 관리됨

Worker Node

  • 단순히 컴퓨터, ec2인스턴스 등
  • 마스터 노드에 의해 관리됨
  • 내부에 하나 이상의 pod가 있음.(그에 따른 하나 이상의 컨테이너, 볼륨, 리소스 등)
  • 도커가 설치되어 있어야 함.
  • kubelet이 설치되어 있어야 함 (워커노드와 마스터노드의 통신장치)
  • kube-proxy를 통해 트래픽을 처리

Master Node

  • API 서버, 워커 노드 kubelet 와의 카운터 포인트
  • scheduler : pods를 관찰하고 새 pod를 배정
  • kube-controller-manager : 워커노드 전체를 감시하고 제어

전반적인 아키텍쳐

  • 워커노드 + 마스터노드를 네트워크를 통해 클러스터를 구성하여 여러 워커노드에서 여러 컨테이너를 실행하여 워크로드를 분배함.
  • 여러 워커노드를 마스터 노드의 plane에서 관리
  • 마스터 노드에서 클라우드 프로바이더 api를 호출하여 복제하도록 지시하여 자동으로 ec2, 로드밸런서 등 생성

0개의 댓글