CLOUD/Docker&Kubernetes

[Kubernetes] K8S 구조 - K8S 컴포넌트

alsruds 2023. 5. 3. 22:50

k8s 구조가 중요한 건 다들 아시죠 ~ !_! ~

참고참고 ~

https://kubernetes.io/ko/docs/concepts/overview/components/

 

쿠버네티스 컴포넌트

쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다.

kubernetes.io

 


 

[ K8S Component ]

Control Plane Component (Master Node)

① Etcd

  • 모든 클러스터의 데이터를 저장하는 쿠버네티스 저장소 (키-값 형태)
  • 분산 데이터 저장소
  • 대규모 클러스터의 경우 고가용성을 위해 3개, 많으면 5개의 노드 etcd 클러스터 구성

 

② Kube-apiserver

  • 각 노드에서 보내온 api 요청이 전달됨
  • Etcd 에 데이터 저장

 

③ Kube-controller-manager

  • 노드 컨트롤러 : 노드 다운 시 통지/대응
  • 잡 컨트롤러 : 잡 오브젝트 감시, 파드 생성
  • 엔드포인트 컨트롤러 : 서비스와 파드 연결
  • 서비스 어카운트 & 토큰 컨트롤러 : 새로운 네임스페이스 기본 계정 & API 접근 토큰 생성

 

④ Kube-scheduler

  • 노드가 배정되지 않은 새 파드를 감지하고, 실행할 노드 선택

 

 

Node Component (Worker Node)

① Kube-proxy

  • 클러스터의 각 노드에서 실행되는 네트워크 프록시
  • 클러스터 바깥에서 파드로의 통신을 가능하게 함
  • 로드 밸런싱
  • 서비스를 지역적으로 반영하고 TCP/UDP 포워딩
  • 환경변수 혹은 dns를 통해 클러스터 IP 탐색

 

② Kubelet

  • 클러스터의 각 노드에서 실행되는 에이전트 : 파드에서 컨테이너가 동작하도록 관리
  • 마스터 노드의 kube-apiserver 와 통신
  • 볼륨 마운트
  • 노드와 각 포트 상태 보고 / 컨테이너 활성 여부 조사

 

 

[ 컴포넌트 구성 흐름 파악하기 ]

Pod 생성

 

Deployment 생성