모든 태그

# Kubernetes

17개의 글

[CKA Ch-01.5] 기본 오브젝트와 컨트롤 플레인: kubectl 한 줄이 Pod가 되기까지

kubectl run 한 줄이 API 서버의 인증, 인가, 어드미션, 스키마 검증을 지나 etcd에 저장되고 스케줄러와 kubelet을 거쳐 Running이 되는 경로를 따라갑니다. 컨트롤 플레인 구성요소와 인증서 방향, Pod와 ReplicaSet, Deployment, Service, Namespace의 관계, 시험에서 쓰는 명령형과 선언형 kubectl, 실행 중인 Pod에서 고칠 수 있는 필드를 정리했습니다.

[CKA Ch-07] 준비 자료와 시험 당일 전략: 공식 규칙, 할인, 연습 환경, 후기 경향 정리

CKA(커리큘럼 v1.37, 2025년 2월 개정 범위)를 준비할 때 쓸 수 있는 정당한 자료를 2026년 10월 기준으로 모았습니다. Linux Foundation 공식 규칙과 점검표, 과제마다 ssh로 옮기는 시험 환경과 사전 설치 도구, 날짜가 확인된 할인 이력, killer.sh와 Killercoda와 KodeKloud와 GitHub 연습 저장소 비교, 홈 랩 구성, 2025~2026년 후기에서 겹친 출제 경향과 함정, 1.33~1.37 변경 중 시험 답에 영향을 주는 것, 시험 당일 순서와 D-30 계획, 덤프를 뺀 근거를 LF 응시 약관 원문으로 정리합니다.

[쿠버네티스 아래의 리눅스 1] 커널 경계: 쿠버네티스 컴포넌트는 프로세스이고 일은 시스템 콜이 한다

kubelet부터 runc까지 쿠버네티스 노드의 구성 요소는 모두 유저 공간 프로세스이고 격리, 제한, 네트워킹은 시스템 콜을 받은 커널이 처리합니다. x86_64 시스템 콜 테이블, procfs와 sysfs, 노드 준비용 커널 설정, seccomp와 LSM, 노드 장애 시간표, EEVDF까지 시리즈 전체의 지도를 공식 문서와 커널 소스 기준으로 정리합니다.

[쿠버네티스 아래의 리눅스 2] 네임스페이스와 pause: 파드 안에서 무엇을 나눠 쓰고 무엇을 따로 두는지

커널에는 컨테이너라는 객체가 없고 프로세스와 네임스페이스만 있습니다. 네임스페이스 8종을 unshare로 하나씩 재현해 보고 runc가 실제로 네임스페이스를 만드는 순서, 파드가 net·ipc·uts를 공유하고 pid·mnt·cgroup을 컨테이너별로 두는 방식, pause 컨테이너와 RunPodSandbox의 역할을 커널·runc·containerd·쿠버네티스 소스 기준으로 정리합니다.

[쿠버네티스 아래의 리눅스 3] cgroup v2와 QoS: requests와 limits가 커널 파일이 되기까지

파드의 requests와 limits가 cgroup v2의 cpu.max, cpu.weight, memory.max로 바뀌고 커널이 그 값을 집행하는 과정을 따라갑니다. OOMKilled와 CPU 스로틀링이 각각 어디서 생기는지, QoS 클래스와 oom_score_adj가 누구를 먼저 죽이는지 커널 문서와 kubelet 소스로 확인하고 JVM 서비스의 OOMKilled 포스트모템을 함께 읽습니다.

[쿠버네티스 아래의 리눅스 4] OverlayFS: 이미지 레이어가 하나의 루트가 되기까지와 Netflix의 마운트 병목

컨테이너 이미지 레이어가 OverlayFS의 lowerdir, upperdir, workdir, merged로 쌓여 컨테이너 루트가 되는 과정을 커널 문서와 containerd 소스로 따라갑니다. copy-up, whiteout, 마운트 옵션 한 페이지 제한을 정리하고 레이어마다 만든 마운트가 노드 전체를 멈춘 Netflix 사례를 원문 기준으로 읽습니다.

[쿠버네티스 아래의 리눅스 5] Service의 실체는 커널 규칙: iptables DNAT와 conntrack, 그리고 조용히 끊긴 DNS

ClusterIP로 보낸 패킷이 netfilter 훅과 kube-proxy의 KUBE-SERVICES, KUBE-SVC, KUBE-SEP 체인을 지나 파드 IP로 DNAT되는 과정을 따라갑니다. conntrack이 첫 패킷의 결정을 기억하는 방식과, 낡은 UDP conntrack 항목 때문에 DNS가 계속 타임아웃 난 ThousandEyes 장애(SREcon26 Americas 발표)를 함께 정리합니다.

[CKA Ch-00] CKA 시험 구조와 공부 계획: 2025년 개정 뒤의 범위로 준비하기

CKA는 2시간 동안 터미널에서 15~20개 과제를 푸는 실기 시험이고 66% 이상이면 합격입니다. 커리큘럼 v1.37의 다섯 영역과 2025년 2월 개정으로 바뀐 범위, 과제마다 ssh로 호스트를 옮기는 시험 환경과 허용 문서, 덤프를 쓰지 않은 후기에서 겹친 경향을 공식 문서로 확인하고 이 시리즈(Ch-01~08)를 따라가는 공부 계획을 세웁니다.

[CKA Ch-03] 워크로드와 스케줄링: Pod가 어디에 얼마만큼 뜨는지 정하는 값들

CKA 비중 15%인 워크로드와 스케줄링 영역을 v1.37 커리큘럼 순서대로 시험에 쓰는 명령과 YAML 중심으로 정리합니다. 롤아웃과 롤백, ConfigMap과 Secret, HPA와 VPA, in-place resize, 프로브와 사이드카, StatefulSet, Job, PDB, requests와 limits, LimitRange, ResourceQuota, 어피니티, 테인트, static Pod, PriorityClass, DaemonSet을 다룹니다.

[CKA Ch-04] 서비스와 네트워킹: Pod IP에서 Gateway API까지 한 줄로 잇기

CKA 커리큘럼 v1.37의 Services and Networking 영역(20%)을 시험 과제 중심으로 정리합니다. Pod 연결과 대역 확인, NetworkPolicy의 AND/OR와 DNS 허용, Service 타입과 EndpointSlice, Gateway API(HTTPRoute 매칭, 가중치, 필터, TLS, ReferenceGrant), Ingress와 pathType, CoreDNS 설정과 점검 순서를 시험에서 쓰는 명령과 YAML, 자주 틀리는 지점, 연습 과제로 묶었습니다.

[CKA Ch-05] 스토리지: PVC가 Pending에 머무는 이유를 바인딩 규칙으로 읽기

CKA 커리큘럼 v1.37의 Storage 영역(10%)을 시험 과제 중심으로 정리합니다. StorageClass와 기본 클래스 교체, volumeBindingMode, 볼륨 타입(emptyDir, hostPath, generic ephemeral volume), 접근 모드(ReadWriteOncePod 포함), 회수 정책 변경과 Released PV 재사용, PV와 PVC의 바인딩 규칙, 볼륨 확장, Pending PVC 점검 순서를 시험에서 쓰는 YAML과 명령, 자주 틀리는 지점, 연습 과제로 묶었습니다.

[DE Ch-07] 태스크 하나가 Pod 하나가 될 때: 기동 시간을 구간으로 나누기

KubernetesExecutor와 Argo Workflows는 태스크마다 Pod를 띄웁니다. 쿠버네티스의 공식 Pod 기동 SLO는 p99 5초인데, 이 숫자는 이미지 pull과 init 컨테이너를 뺀 값입니다. Pod가 생성되어 컨테이너가 시작하기까지를 condition, 이벤트, kubelet 메트릭으로 나누는 방법과, 이미지 pull, Pod 생성 호출, init 컨테이너가 각각 어디서 시간을 쓰는지, 짧은 태스크가 많을 때의 대안을 정리합니다.

[CKA Ch-01] 쿠버네티스의 동작 방식: 선언형 API, 구성요소, 멈췄을 때 보이는 증상

쿠버네티스는 원하는 상태를 API 오브젝트로 받아 두고 컨트롤러와 kubelet이 실제 상태를 거기에 맞춥니다. 컨트롤 플레인과 노드 구성요소가 각각 무엇을 하고 하나가 멈추면 무엇이 멈추는지, requests와 limits가 OOMKilled(137)와 CPU 스로틀링으로 이어지는 과정을 시험에서 쓰는 kubectl describe, top, 이벤트로 확인하는 방법을 정리합니다.