피드로 돌아가기
Dev.toInfrastructure
원문 읽기
kubectl run의 23단계 내부 메커니즘과 1초 내 Pod 배포 프로세스 분석
What Actually Happens When You Run kubectl run nginx
AI 요약
Context
Kubernetes 사용자들은 단순 명령어로 Pod를 생성하지만 내부적으로는 API Server, Scheduler, Kubelet, Container Runtime 간의 복잡한 상태 동기화가 필요함. 단순한 etcd 기록을 넘어 Admission Control과 CRI, CNI를 거치는 다단계 파이프라인의 정밀한 제어가 요구되는 구조임.
Technical Solution
- kubectl의 Minimal Object 전송을 통한 API Server 중심의 Defaulting 및 Validation 로직 분리 설계
- TLS 1.3 Handshake 적용으로 1-Round Trip 기반의 빠른 인증 및 API Server 연결 최적화
- Mutating/Validating Admission Chain을 통한 ResourceQuota 및 PodSecurity 정책의 선언적 강제화
- Raft 합의 알고리즘 기반 etcd 쓰기를 통한 분산 환경에서의 데이터 일관성 확보
- Scheduler의 Filter 및 Score 플러그인 기반 최적 Node 선정 및 Binding API를 통한 Spec 업데이트
- CRI(Container Runtime Interface)와 CNI(Container Network Interface)를 통한 Sandbox 생성 및 Network Namespace 격리 구현
실천 포인트
1. Pod 생성 지연 발생 시 API Server의 Admission Webhook 응답 시간 및 Scheduler의 Score 플러그인 부하 확인
2. Kubelet의 PLEG 폴링 방식과 Evented PLEG의 차이를 인지하여 대규모 노드 환경의 CPU 부하 분석
3. kubectl --v=8 옵션을 활용하여 API Server와의 실제 통신 패킷 및 Request/Response 바디 검증