#쿠버네티스

136 편의 글

Health check
21 분 소요

Health check

K8s가 컨테이너의 살아 있음과 트래픽을 받을 준비됨을 어떻게 판단하는지의 모델을 다룹니다. liveness · readiness · startup 세 probe의 역할 분리, httpGet · tcpSocket · exec 검사 방식, initialDelaySeconds · periodSeconds · failureThreshold 같은 매개변수 튜닝, liveness에 외부 의존성을 넣었을 때의 cascading failure, terminationGracePeriodSeconds와 preStop 훅의 graceful shutdown까지 한 사이클로 정리합니다.

Ingress와 Ingress Controller
18 분 소요

Ingress와 Ingress Controller

외부 트래픽이 클러스터 안 Service로 들어오는 모델을 한 곳에 모으는 추상화입니다. Ingress 객체와 Ingress Controller의 두 층 분리, 호스트 · 경로 · pathType 기반 라우팅, TLS 종단과 cert-manager, IngressClass, 그리고 후속 표준인 Gateway API까지 한 사이클로 정리합니다.

kubectl과 첫 Pod
14 분 소요

kubectl과 첫 Pod

kubectl의 멘탈 모델을 잡고 첫 Pod를 띄웁니다. kubectl run의 명령형 한 사이클부터 YAML 매니페스트의 선언형, get / describe / logs / exec 일상 명령, Pod 라이프사이클과 ImagePullBackOff · CrashLoopBackOff 흔한 실패 패턴까지 다룹니다.

Namespace와 라벨
15 분 소요

Namespace와 라벨

한 클러스터를 네임스페이스로 갈라 두는 모델과 라벨 · 셀렉터의 문법을 정리합니다. default의 한계, 시스템 네임스페이스 넷, RBAC · ResourceQuota · NetworkPolicy의 단위로서의 네임스페이스, kubens 운영 팁, app.kubernetes.io/* 표준 라벨, kubectl -l의 selector 문법까지 다루며 1부를 마무리합니다.

PV / PVC / StorageClass
20 분 소요

PV / PVC / StorageClass

Pod의 생애주기 너머까지 살아남는 영속 데이터 모델을 다룹니다. PV · PVC · StorageClass의 삼각관계, 정적 · 동적 프로비저닝, accessModes (RWO · RWX · RWOP), reclaimPolicy, volumeBindingMode의 WaitForFirstConsumer, allowVolumeExpansion, StatefulSet의 volumeClaimTemplates가 그 위에서 무엇을 만드는지까지 한 사이클로 정리합니다.

resources.requests / limits
17 분 소요

resources.requests / limits

컨테이너가 CPU와 메모리를 어떻게 요청하고 어떻게 상한을 부여받는가의 모델을 다룹니다. requests와 limits의 분리, QoS 클래스 (Guaranteed · Burstable · BestEffort), CPU throttling과 메모리 OOMKilled의 동작 차이, JVM · Go 런타임의 cgroup 인식, LimitRange · ResourceQuota의 네임스페이스 정책, 그리고 처음 값을 정하고 조정하는 운영 사이클까지 한 사이클로 정리합니다.

Service
17 분 소요

Service

Pod IP가 임시라는 문제를 푸는 추상화 — Service. 안정된 ClusterIP · selector · Endpoints / EndpointSlice · 그리고 ClusterIP · NodePort · LoadBalancer 세 타입의 선택 기준, kube-proxy의 DNAT, CoreDNS의 짧은 이름 풀이까지 한 사이클로 다룹니다.

StatefulSet / DaemonSet / Job / CronJob
17 분 소요

StatefulSet / DaemonSet / Job / CronJob

Deployment의 stateless 가정으로는 표현되지 않는 네 갈래 워크로드를 다루는 컨트롤러들을 정리합니다. StatefulSet의 정체성과 PVC 1:1, DaemonSet의 노드 단위 한 개, Job의 종료 모델, CronJob의 cron 스케줄링과 concurrencyPolicy · startingDeadlineSeconds의 안전장치까지 한 사이클로 다룹니다.

로컬 환경
10 분 소요

로컬 환경

minikube · kind · Docker Desktop k8s 중 어느 것을 쓸지 정합니다. 세 옵션의 동작 방식·장단점을 비교하고, kubectl을 설치한 뒤 kind로 첫 클러스터를 띄워 노드와 시스템 Pod를 확인하는 방식까지 한 번에 따라갑니다.

오토스케일링
23 분 소요

오토스케일링

운영 클러스터의 부하 변동을 사람의 개입 없이 흡수하는 세 차원의 자동 조정을 다룹니다. HPA (Pod 개수) · VPA (Pod 자원) · Cluster Autoscaler (노드 개수)의 역할 분리, metrics-server 전제, HPA의 autoscaling/v2 매니페스트와 비례식 알고리즘, scale up · down 비대칭의 behavior, custom metric과 KEDA, VPA의 updateMode와 HPA · VPA 충돌, Karpenter까지 한 사이클로 정리합니다.

쿠버네티스란
14 분 소요

쿠버네티스란

왜 컨테이너 오케스트레이터가 필요한가. Docker / docker-compose까지 써 본 독자를 출발선으로 두고, 단일 컨테이너 도구의 한계 다섯 가지, 선언형 desired state + reconcile loop 모델, control plane / worker node의 큰 그림, 책의 범위까지 정리합니다.

Certified Kubernetes Administrator (CKA) #9 RBAC: Role/ClusterRole, RoleBinding, ServiceAccount, kubectl auth can-i
13 분 소요

Certified Kubernetes Administrator (CKA) #9 RBAC: Role/ClusterRole, RoleBinding, ServiceAccount, kubectl auth can-i

Certified Kubernetes Administrator (CKA) 시리즈의 아홉 번째 글입니다. 누가 무엇을 할 수 있는가를 결정하는 RBAC을 운영자 관점에서 깊게 다루겠습니다. Role과 ClusterRole, RoleBinding과 ClusterRoleBinding의 조합 규칙, subjects(User/Group/ServiceAccount)와 rules(apiGroups/resources/verbs)의 구조, kubectl create로 빠르게 만드는 법, kubectl auth can-i와 --as로 권한을 검증하는 법, 그리고 [#8](/ko/posts/cka-8)에서 만든 사용자를 RBAC에 연결하는 흐름까지 정리하겠습니다.