#쿠버네티스

141 편의 글

Certified Kubernetes Administrator (CKA) #10 Workloads 1: Deployment 심화, ReplicaSet, rolling update/rollback
9 분 소요

Certified Kubernetes Administrator (CKA) #10 Workloads 1: Deployment 심화, ReplicaSet, rolling update/rollback

Certified Kubernetes Administrator (CKA) 시리즈의 열 번째 글입니다. 운영자가 가장 자주 다루는 워크로드인 Deployment를 깊이 들여다봅니다. Deployment→ReplicaSet→Pod 계층과 라벨 selector, kubectl로 생성과 스케일을 처리하는 법, rollingUpdate 전략(maxSurge/maxUnavailable)으로 무중단 업데이트를 보장하는 조건, 그리고 kubectl rollout으로 버전을 추적하고 되돌리는 롤백을 손에 익히겠습니다.

Certified Kubernetes Application Developer (CKAD) #5 Workloads 1: Deployment, ReplicaSet, rolling update와 rollback
10 분 소요

Certified Kubernetes Application Developer (CKAD) #5 Workloads 1: Deployment, ReplicaSet, rolling update와 rollback

Certified Kubernetes Application Developer (CKAD) 시리즈의 다섯 번째 글입니다. 앱 배포의 중심인 Deployment를 명령형으로 생성하고, Deployment,ReplicaSet,Pod의 관계와 스케일을 정리합니다. rollingUpdate의 maxSurge,maxUnavailable의미, kubectl set image로 새 버전을 배포하는 흐름, kubectl rollout으로 상태를 추적하고 실패한 버전을 undo로 되돌리는 롤백 시나리오를 손으로 실습하겠습니다.

Certified Kubernetes Security Specialist (CKS) #3 CIS benchmark (kube-bench), 컴포넌트 보안, Ingress TLS, 바이너리 검증
10 분 소요

Certified Kubernetes Security Specialist (CKS) #3 CIS benchmark (kube-bench), 컴포넌트 보안, Ingress TLS, 바이너리 검증

Certified Kubernetes Security Specialist (CKS) 시리즈 세 번째 글입니다. Cluster Setup도메인의 나머지 절반인 클러스터 자체의 하드닝을 다룹니다. CIS Kubernetes benchmark가 무엇인지, kube-bench로 control plane과 노드를 점검해 PASS/FAIL/WARN 결과를 읽고 remediation을 적용하는 법, apiserver와 kubelet의 위험한 플래그를 안전한 값으로 바꾸는 절차, Ingress에 TLS를 붙이는 방법, 그리고 다운로드한 바이너리를 sha256sum으로 검증하는 흐름까지 명령과 매니페스트로 손에 익히겠습니다.

ConfigMap과 Secret
16 분 소요

ConfigMap과 Secret

ConfigMap과 Secret으로 설정과 비밀번호를 매니페스트 본체에서 분리합니다. 12-factor의 "설정은 환경에 둔다"를 K8s에서 푸는 모양, env · envFrom · volume 세 가지 주입 방식, Secret의 base64가 암호화가 아니라는 한 줄, 그리고 설정 변경 시 Pod 재시작이 필요한 이유까지 다룹니다.

Deployment와 ReplicaSet
15 분 소요

Deployment와 ReplicaSet

선언형 배포와 롤링 업데이트를 다룹니다. Deployment / ReplicaSet / Pod 세 단의 관계를 잡고, replicas: 3의 self-healing, RollingUpdate의 maxSurge / maxUnavailable, rollout undo 롤백, Deployment가 풀지 않는 워크로드 (StatefulSet · DaemonSet · Job)까지 한 사이클로 정리합니다.

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의 짧은 이름 풀이까지 한 사이클로 다룹니다.