사용자가 kubectl run nginx 명령을 실행했을 때의 7단계 흐름입니다.
- 요청: 사용자 →
[[K8s - API 서버]]kubectl이 “nginx 파드 실행해줘!” (Deployment생성 요청)
- 저장:
[[K8s - API 서버]]→[[K8s - etcd]]- “원하는 상태: nginx
[[K8s - Deployment]]1개”를[[K8s - etcd]]에 저장
- “원하는 상태: nginx
- 감시:
[[K8s - Controller Manager]]→[[K8s - API 서버]]Deployment Controller가API 서버를 감시하다 새Deployment발견
- 정의:
[[K8s - Controller Manager]]→[[K8s - API 서버]]ReplicaSet Controller가[[K8s - Pod]]명세서를 생성해API 서버에 “이 명세대로 Pod 생성해줘” 요청
- 결정:
[[K8s - Scheduler]]→[[K8s - API 서버]]Scheduler가 노드가 할당되지 않은(nodeName: null) 파드를 발견- “이 파드는 ‘워커 노드 2번’이 적합해”라고 판단, 파드 정보에
nodeName을 업데이트
- 생성:
[[K8s - Kubelet]](Node 2) →[[Container Runtime]]- ‘워커 노드 2번’의
Kubelet이 자신에게 할당된 파드를 발견 Container Runtime을 통해 컨테이너 실행!
- ‘워커 노드 2번’의
- 연결:
[[K8s - Kube-proxy]]- 새 파드가 생성된 것을 감지하고, 해당 파드에 접근할 수 있도록 노드의 네트워크 규칙(iptables 등)을 설정
작성일: 2025-11-03