[kubernetes] 두고두고 보는 Kubernetes 개념 정리

조하운·2023년 5월 18일
post-thumbnail

참고자료
https://www.youtube.com/watch?v=lheclzO-G7k&list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c&index=4

Red Hat 공식문서

쿠버네티스 클러스터 구성

  • control plane(master node)
    • 워커 노드들의 상태를 관리하고 제어
    • single master
    • multi master(3, 5개의 master nodes)
  • worker node
    • 도커 플랫폼을 통해 컨테이너를 동작하며 실제 서비스 제공

쿠버네티스 컨트롤 플레인 개념과 특징

컨트롤 플레인

  • 클러스터의 신경 중추 : 클러스터를 제어하는 쿠버네티스 구성 요소와 클러스터의 상태 및 구성에 관한 데이터를 보관
  • 핵심 기능 : 컨테이너가 필요한 자원을 갖고 충분한 횟수로 실행되도록 하는 중요한 작업을 맡음
  • 컨트롤 플레인은 컴퓨팅 노드와 상시 연결되어, 클러스터가 일정한 방식으로 실행되도록 구성했다면 컨트롤 플레인은 해당 방식에 따라 실행됨

kube-apiserver

  • 컨트롤 플레인의 프론트엔드 역할 : 내부 및 외부 요청을 처리
  • 요청이 유효한지 판별하고 유효한 요청을 처리
  • REST 호출이나 kubectl 커맨드라인 인터페이스 또는 kubeadm 과 같은 CLI를 통해 API에 액세스 가능

Kube-scheduler

  • 스케줄러 역할 : 클러스터가 양호한 상태인지, 새 컨테이너가 필요하다면 어디가 적합한지 등을 판단
  • CPU 또는 메모리와 같은 리소스 요구 사항을 고려하여 Pod를 적절한 컴퓨팅 노드에 예약

Kube-controller-manager

  • 클러스터 통합 컨트롤러 : kube-scheduler를 참고하여 정확한 수의 pod가 실행되게 함. pod에 문제가 생기면 또 다른 컨트롤러가 이를 감지하고 대응
  • 서비스를 포드에 연결하므로 요청이 적절한 엔드포인트로 이동
  • 계정 및 API 액세스 토큰 생성을 위한 컨트롤러가 있음

etcd

  • 키-값 저장소 데이터베이스 : 설정 테이터와 클러스터의 상태에 관한 정보를 보관

쿠버네티스 클러스터를 직접 구성하는 도구

  • kubeadm
    • 쿠버네티스에서 공식 제공하는 클러스터 생성/관리 도구
  • kubespray
    • 쿠버네티스 클러스터를 배포하는 오픈소스
    • 다양한 형식으로 쿠버네티스 클러스터 구성 가능
    • 온프레미스에서 상용 서비스 클러스터 운영 시 유용
    • 다양한 CNI 제공

CNI(Container Network Interface) 란?

  • Container 간 통신을 지원하는 VxLAN. Pod Network라고도 부름
  • 다양한 종류의 플러그인이 존재

쿠버네티스 노드 개념과 특징

노드

  • 쿠버네티스 클러스터에는 최소 1개 이상의 컴퓨팅 노드가 필요하지만 일반적으로 여러 개가 있음
  • pod는 노드에서 실행되도록 예약되고 오케스트레이션됨
  • 클러스터의 용량을 확장할 시 노드를 더 추가

포드(pod)

  • 포드는 쿠버네티스 오브젝트 모델에서 가장 작고 단순한 유닛, 애플리케이션의 단일 인스턴스를 나타냄
  • 각 포드는 컨테이너 실행 방식을 제어하는 옵션과 함께 컨테이너 하나 또는 긴밀히 결합된 일련의 컨테이너로 구성
  • 포드를 persistance storage 에 연결하여 stateful 애플리케이션을 실행할 수 있음

컨테이너 런타임 엔진

  • 컨테이너 실행을 위해 각 컴퓨팅 노드에는 컨테이너 런타임 엔진이 있음
  • 대표적인 예로 Docker 가 있음

kubelet

  • 각 컴퓨팅 노드에 컨트롤 플레인과 통신하는 매우 작은 어플리케이션
  • 컨테이너가 포드에서 실행되게 함
  • 컨트롤 플레인에서 노드에 작업을 요청하는 경우 kubelet이 작업을 실행

kube-proxy

  • 쿠버네티스 네트워킹 서비스를 용이하게 하기 위한 네트워크 프록시
  • 운영 체제의 패킷 필터링 계층에 의존하거나 트래픽 자체를 전달하여 클러스터 내부 또는 외부의 네트워크 통신 처리
profile
| 컴퓨터 비전 | 딥 러닝 | 자율주행 |

0개의 댓글