인프런 워밍업 클럽 4기 DevOps - 2주차 (4)

sanghyun·2025년 6월 15일
0
post-thumbnail

모든 강의 이미지 출처는 [인프런] 쿠버네티스 어나더 클래스(지상편) - Spring 1,2 입니다.

Section 11. Component 동작으로 이해하기

전체 개요

  • Controller : 타 Controller나 Object를 제어하는 역할
  • Object : Object 단독으로 하나의 인프라 개념으로 단독 역할
  • Controller와 Object를 합친 하나의 명칭으로 Resource라고 한다.
  • 또한, Resource에는 Namespace Level과 Cluster Level로 구분되어진다.

Pod 생성 요청이 수행되는 과정

  1. 사용자가 kubectl 명령으로 Pod 생성 요청을 수행한다.
  2. kubectl 은 API 서버(kube-apiserver)에게 요청을 보내기 전 ~/.kube/config 파일에 저장된 클러스터 정보와 인증정보를 참조하여 신원을 증명한다.
  3. 검증 단계가 통과되면 API 서버는 etcd에 요청으로 들어온 Pod 객체 정보를 저장소인 etcd에 저장한다.
  4. etcd에 Pod 객체 정보가 추가되면 스케줄러(kube-scheduler)에 의해 어떤 노드에 Pod를 배치할지 결정된다.
  5. 선정된 노드에서 실행되고 있던 kubelet은 API 서버로 부터 Pod 생성 요청을 감지하고 Container Runtime에게 컨테이너 생성을 요청한다.
  6. 만약 Pod 객체 정보에 Probe 설정 있다면 kubelet이 해당 설정에 맞게 Health Check API를 날리게 된다.

Service 생성 요청이 수행되는 과정

  1. 사용자가 NodePort 타입의 서비스를 만들고 Pod와 연결한다.
  2. kubelet이 kube-proxy 에게 네트워크 생성을 요청한다.
  3. kube-proxy는 Iptables에 설정된 nodePort가 어떤 서비스와 연결되어 있는지에 대한 맵핑 룰을 업데이트한다.
  4. 사용자가 nodeIP와 nodePort를 통해 요청을 날리면 Node로 부터 컨테이너까지 CNI가 트래픽 전달한다.

HPA 동작

  1. 컨테이너의 자원 사용량은 Container Runtime이 알고있고 kubelet이 10초에 한번씩 CPU, Memory 사용량을 조회한다.
  2. HPA가 부하를 인지하기 위해서는 metrics-server가 별도로 필요하며, metrics-server는 60초 단위로 메트릭을 수집한다.
  3. kube-controller-manager는 15초 마다 metric-server를 통해 임계값과 메트릭을 확인하고, 15초 단위로 스케일링을 발생시킨다.
profile
안하는 건 있어도, 못하는 건 없다

0개의 댓글