개발 관련 일지/k8s

쉽게 시작하는 쿠버네티스 CH3 쿠버네티스 인사이드

worldi 2024. 1. 21. 21:04

쿠버네티스 이루는 것들

구역을 나누는 네임 스페이스 (Namespace)

  • default, kube-system, metal-system : 호실로 생각하면 된다. 서로의 구역이 나뉘어 져있다.
kubectl get pods -n kube-system
  • 네이티브 쿠버네티스 구성 요소 확인

eks에서도 쿠버네티스 구성 노드가 있는 것을 확인할 수 있다. 이는 aks나 gke도 마찬가지이다. 3사에서 차이 많이 있다. 그런 구성 요소들을 보여주지 않는다. 숨겨져 있는 마스터 노드가 관리하고 있다.

쿠버네티스 기본 철학

MSA로 구성되어 있다. 하는 일들이 개별적으로 나뉘어져 있다.

  • API 서버는 움직이지 않는다. 모든 것을 감시만 한다. 모든 상태 값의 중심에 있다.
  • Controller Manager가 파드를 생성한다.
  • 스케줄러 또한 새로운 파드를 워커 노드에 넣는지 스케줄링 한다.
  • kubelet은 컨테이너 런타임을 통해서 파드의 동작관리를 하고, 컨테이너를 생성한다.

선언적인 시스템 : 추구하는 상태와 현재 상태를 맞추려고 한다.

  • api 서버와 etcd : etcd는 매번 api 서버에 업데이트 되었음을 알린다. API 서버는 매번 클러스터의 업데이트된 정보를 기록한다.

실제 쿠버네티스의 파드 배포 흐름

  1. 관리자가 kubectl을 친다.
  2. API 서버는 etcd 서버와 거의 1대1 동기화 되어있다.
  3. 컨트롤러 매니저
  4. 스케줄러
  5. 컨테이너 런타임이 파드를 생성하는 구조
  6. 쿠버 프록시를 통해서 사용자가 통신한다. (calico를 사용)

가장 중요한 것은!!!!

즉 모든 것은 api가 중심에 있다. 모든 것의 시작이자 끝이다…