022. Kubernetes StatefulSet — 순서와 신원이 필요한 파드를 위한 오브젝트

Deployment는 파드를 교환 가능한 존재로 다루지만, DB나 메시지 큐처럼 파드마다 고유한 신원과 안정적인 스토리지가 필요한 경우가 있다. StatefulSet이 무엇인지, Deployment와 어떻게 다른지, 안정적인 네트워크 신원과 영구 스토리지를 어떻게 보장하는지, 언제 써야 하는지를 설명한다.

2026년 6월 12일 · 4 분 · 1836 단어 · CharmingGroot

023. Kubernetes Ingress — HTTP(S) 트래픽의 단일 진입점

Service를 LoadBalancer 타입으로 노출하면 서비스마다 로드밸런서가 하나씩 생겨 비용이 선형으로 늘어난다. Ingress는 하나의 진입점에서 호스트 이름과 URL 경로로 트래픽을 여러 Service로 분배한다. Ingress 오브젝트와 Ingress Controller의 관계, 경로 기반·호스트 기반 라우팅, TLS 종료, cert-manager 자동 인증서 갱신을 설명한다.

2026년 6월 12일 · 4 분 · 1811 단어 · CharmingGroot

024. Kubernetes NetworkPolicy — 파드 간 트래픽을 제어하는 방화벽

k8s에서 기본적으로 모든 파드는 서로 통신할 수 있다. NetworkPolicy는 파드 단위의 방화벽 규칙으로, 어떤 파드가 어떤 파드에 접근할 수 있는지 제어한다. 인그레스·이그레스 규칙 작성 방법, 기본 차단 정책, 네임스페이스 간 트래픽 제어, 그리고 CNI 플러그인이 실제로 규칙을 집행하는 구조를 설명한다.

2026년 6월 12일 · 5 분 · 2064 단어 · CharmingGroot

025. Kubernetes Namespace — 클러스터 안의 논리적 격리 단위

Namespace는 하나의 클러스터를 여러 논리적 공간으로 나누는 메커니즘이다. 팀별, 환경별, 서비스 도메인별로 나눌 수 있고, RBAC과 NetworkPolicy, ResourceQuota와 결합해 진짜 격리를 구현한다. 언제 Namespace로 나누고 언제 클러스터를 아예 분리해야 하는지, 기본 Namespace들이 어떤 역할인지를 설명한다.

2026년 6월 12일 · 5 분 · 2137 단어 · CharmingGroot

026. Kubernetes Job & CronJob — 일회성 작업과 주기적 작업

Deployment는 파드를 계속 실행 상태로 유지하지만, 데이터 마이그레이션이나 리포트 생성처럼 한 번 실행하고 끝나는 작업도 있다. Job은 파드가 성공적으로 완료될 때까지 실행을 보장하고, CronJob은 Job을 cron 표현식으로 주기적으로 실행한다. 완료 보장 메커니즘, 병렬 실행, 실패 처리, 그리고 CronJob의 주의사항을 설명한다.

2026년 6월 12일 · 4 분 · 1725 단어 · CharmingGroot

027. Kubernetes Cluster Autoscaler — 파드가 올라갈 노드를 자동으로 늘리고 줄이기

HPA가 파드 수를 조절하면, 새 파드를 올릴 노드가 부족해지는 상황이 생긴다. Cluster Autoscaler는 Pending 상태인 파드를 감지해 노드를 추가하고, 유휴 노드를 제거해 비용을 절감한다. HPA와 어떻게 협력하는지, 노드를 어떻게 선택하는지, 스케일 인 중 파드 안전성을 어떻게 보장하는지, 그리고 차세대 도구인 Karpenter와의 차이를 설명한다.

2026년 6월 12일 · 4 분 · 1802 단어 · CharmingGroot

028. Kubernetes Taint, Toleration, Affinity — 파드가 어떤 노드에 올라갈지 제어하기

기본적으로 스케줄러는 자원이 충분한 노드에 파드를 자유롭게 배치한다. Taint와 Toleration은 노드를 특수 목적으로 예약하고, Affinity는 파드가 특정 노드에 또는 특정 파드 근처에 배치되도록 유도한다. GPU 노드 예약, 파드 고가용성 분산, 같이 실행해야 하는 파드 모으기를 어떻게 구현하는지 설명한다.

2026년 6월 12일 · 4 분 · 1848 단어 · CharmingGroot

029. Helm — Kubernetes 패키지 매니저

하나의 서비스를 k8s에 배포하려면 Deployment, Service, ConfigMap, Ingress, ServiceAccount 등 여러 YAML 파일이 필요하다. Helm은 이 파일들을 하나의 패키지(Chart)로 묶고, 환경마다 다른 값을 변수로 분리해 관리하는 k8s 패키지 매니저다. Chart 구조, values 오버라이드, Release 관리, 그리고 Kustomize와의 차이를 설명한다.

2026년 6월 12일 · 3 분 · 1455 단어 · CharmingGroot

030. KEDA — 이벤트 드리븐 오토스케일러

HPA는 CPU와 메모리 사용률을 기준으로 파드를 스케일한다. 하지만 Kafka 큐에 메시지가 쌓이거나 SQS 대기열이 늘어나는 경우처럼 외부 이벤트 소스를 기준으로 스케일하고 싶을 때 HPA만으로는 한계가 있다. KEDA는 70개 이상의 외부 스케일러를 지원하는 이벤트 드리븐 오토스케일러로, 0개에서 N개까지 스케일하는 것도 지원한다.

2026년 6월 12일 · 4 분 · 1663 단어 · CharmingGroot

031. Kubernetes CRD & Operator 패턴 — k8s를 플랫폼으로 확장하기

k8s는 Deployment, Service, ConfigMap 같은 기본 리소스 외에 사용자 정의 리소스(CRD)를 추가할 수 있다. Operator 패턴은 CRD로 새 리소스를 정의하고, 컨트롤러가 그 리소스의 desired state를 실현하는 구조다. cert-manager, Postgres Operator처럼 복잡한 운영 지식을 자동화하는 데 쓰인다.

2026년 6월 12일 · 4 분 · 1700 단어 · CharmingGroot