본문 바로가기

Kubernetes

[k8s] 소개 & 구성요소 및 API

https://velog.io/@jisun-rea/Kubernetes-%EC%86%8C%EA%B0%9C-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C-%EB%B0%8F-API

Kubernetes(k8s)란?

한마디로 컨테이너를 관리하는 플랫폼이다.

  • 컨테이너 플랫폼
  • 마이크로서비스 플랫폼
  • 이식성 있는 클라우드 플랫폼

[참고] Kubernetes docs

구성요소 및 API

마스터

클러스터의 컨트롤 플레인 제공

  • API 서버(Kube-apiserver)
    • 쿠버네티스 클러스터의 모든 구성요소들은 API 서버를 통해 통신함
  • etcd
    • 클러스터 데이터의 키-값 저장소
  • 쿠버네티스 컨트롤러 관리자(kube-controller-manager)
    • 클러스터의 상태를 감시하고 필요한 상태로 이행하는 컨트롤 기능 담당
      • Node controller: 노드 상태 감시&대응
      • Replication controller: 복제 컨트롤러를 사용하는 모든 오브젝트 관리 & Pod 유지
      • Endpoint controller: Service와 Pod 연결
      • Service account 및 Token controller: namespace, account, token 담당
  • 클라우드 컨트롤러 관리자(cloud-controller-manager)

노드

쿠버네티스의 컨테이너 런타임 환경 제공
즉, 실제로 일하는 애들

  • kubelet
    • 각 노드에서 실행되는 에이전트
    • 마스터로부터 제공받은 파드의 구성정보를 받아 컨테이너의 동작을 관리
  • 프록시(kube-proxy)
    • 호스트 레벨의 네트워크 규칙 구성
    • 외부 연결을 파드에 대한 포워딩 담당
  • 컨테이너 런타임
    • 컨테이너 동작을 책임지는 구성요소
    • 기본적으로 도커 플랫폼 사용