본문 바로가기
반응형

K8S112

[Kubernetes]Kyverno 학습 가이드 (처음 시작하는 사람용) 1. Kyverno가 뭔가? (한 줄 답)Kubernetes 클러스터에 "이런 리소스는 허용/금지"를 YAML로 선언하는 경찰관누군가 kubectl apply 하거나 ArgoCD가 sync 하거나 Helm이 install 할 때Kyverno가 "이거 우리 규칙에 맞나?" 검사하고안 맞으면 거부, 맞으면 통과, 필요하면 자동 수정2. 사전 지식: Admission ControllerKyverno를 이해하려면 먼저 k8s가 리소스를 받는 과정을 알아야 합니다.k8s 요청 흐름사용자 kubectl apply ↓kube-apiserver (API 서버) ↓ 1. Authentication (너 누구?) ↓ 2. Authorization (너 이거 할 권한 있어?.. 2026. 4. 20.
Docker 사용후 이상하게 용량이 많아 진다? - Docker 컨테이너 로그 관리방법 Docker 컨테이너는 기본적으로 stdout/stderr 출력을 JSON 파일로 저장한다. 별도 설정 없이 운영하면 로그가 무한히 쌓여 디스크를 가득 채우는 주범이 된다.1. Docker 로그 구조로그가 쌓이는 원리컨테이너 stdout/stderr ↓Docker 로그 드라이버 (기본: json-file) ↓/var/lib/docker/containers//-json.log컨테이너 내부에서 console.log(), print(), echo 등으로 출력하는 모든 내용이 이 파일에 JSON 형태로 기록된다.로그 파일 형식{"log":"2026-02-20T07:28:15.123Z INFO Server started on port 8000\\\\n","stream":"stdout","time":".. 2026. 2. 20.
Docker 사용후 이상하게 용량이 많아 진다? - Docker Build Cache 관리방법 Docker 이미지를 빌드하면 각 레이어가 캐시로 저장되어 다음 빌드 시 재사용된다.편리하지만 관리하지 않으면 디스크를 수십 GB씩 잡아먹는 주범이 된다.1. Build Cache란?Docker는 Dockerfile의 각 명령어(RUN, COPY 등)를 레이어 단위로 캐시한다.FROM node:20 ← 베이스 이미지 레이어COPY package.json . ← 캐시 레이어 1RUN npm install ← 캐시 레이어 2 (package.json 변경 없으면 재사용)COPY . . ← 캐시 레이어 3RUN npm run build ← 캐시 레이어 4이전 빌드와 동일한 명령 + 동일한 입력이면 캐시 히트 → 빌드 시간 단축변경이 감지되면 해당 레.. 2026. 2. 20.
Kubernetes AWS ALB/NLB 구성 yaml 1. AWS ALB Ingress 구성1.1 아키텍처 개요 특징✅ hostNetwork 불필요✅ externalTrafficPolicy 무관 (Service 안 거침)✅ Source IP: X-Forwarded-For 헤더로 전달1.2 Target Type 비교IP Mode (기본/권장)alb.ingress.kubernetes.io/target-type: ipALB → Pod IP 직접 (Service 거치지 않음) 항목 설명트래픽 경로ALB → Pod IP 직접Service 타입ClusterIP로 충분hostNetwork불필요externalTrafficPolicy무관요구사항AWS VPC CNI (Pod가 VPC IP 사용)Instance Modealb.ingress.kubernetes.io.. 2026. 1. 26.
Kubernetes hostNetwork & externalTrafficPolicy - AWS ALB, NLB 에서 사용하는가? 1. hostNetwork1.1 개요hostNetwork: true는 Pod가 호스트(노드)의 네트워크 네임스페이스를 직접 사용하도록 하는 설정. 1.2 동작 비교hostNetwork: false (기본값) hostNetwork: true 1.3 설정 예시apiVersion: v1kind: Podmetadata: name: hostnetwork-podspec: hostNetwork: true dnsPolicy: ClusterFirstWithHostNet # hostNetwork 사용 시 필수 containers: - name: app image: nginx ports: - containerPort: 80 # 노드의 80 포트에 직접 바인딩1.4 특징 비교 항목 hostNe.. 2026. 1. 26.
Kubernetes Windows 지원: 기능 비교와 스케줄링 방식 정리 이 글은 Kubernetes 공식 문서인windows/introwindows/user-guide를 기준으로 Windows 지원을 기능 단위로 비교하고,Windows 파드가 실제로 어떻게 스케줄링되는지를 기술적으로 정리한다.1. Kubernetes Windows 지원 기능 비교클러스터 구성 요소 구성 요소LinuxWindowsControl Plane✅ 지원❌ 미지원Worker Node✅ 지원✅ 지원혼합 클러스터–✅ 가능Windows는 Worker Node 전용Control Plane 컴포넌트(kube-apiserver, etcd 등)는 Linux 필수컨테이너 런타임항목LinuxWindowscontainerd✅✅Docker❌ (deprecated)❌격리 방식cgroups + namespacesProcess .. 2026. 1. 23.
쿠버네티스 캐스케이딩 삭제(Cascading Deletion) 쿠버네티스에서 리소스를 삭제할 때,“부모 리소스를 지우면 자식 리소스는 어떻게 될까?”이 동작을 결정하는 메커니즘이 바로 **캐스케이딩 삭제(Cascading Deletion)**다.운영 중 Deployment, Job, ReplicaSet을 삭제하다 보면Pod가 함께 사라지거나, 남아 있거나, 삭제가 멈춰 있는 상황을 자주 마주하게 된다.이 글에서는 그 이유를 구조적으로 정리한다.1. 캐스케이딩 삭제란?캐스케이딩 삭제는부모 리소스를 삭제할 때, 그에 의해 관리되는 하위 리소스를 함께 삭제할지 여부를 결정하는 방식이다.쿠버네티스는 리소스 간 관계를 OwnerReference로 관리한다.예시 구조:Deployment └─ ReplicaSet └─ PodDeployment를 삭제하면:ReplicaSe.. 2026. 1. 22.
Kubernetes는 가상화 도구인가? 결론부터 말하자면 아니다. 쿠버네티스를 공부하다 보면 자연스럽게 이런 질문에 도달한다.containerd는 쿠버네티스의 커널인가?containerd는 가상화 OS인가?커널을 가상화하는 도구라고 볼 수 있나?그렇다면 Kubernetes 자체는 가상화인가?이 글은 위 질문들을 하나의 사고 흐름으로 정리해,개념을 명확히 분리하는 것을 목표로 한다.1. 리소스를 실제로 제어하는 주체는 누구인가쿠버네티스에서 파드에 CPU·메모리 제한을 설정하면,이를 직접 집행하는 주체는 kubelet이 아니다.실제 집행자: 리눅스 커널집행 기술: cgroup정책 전달자: kubeletkubelet은 파드 스펙을 해석해“이 컨테이너는 CPU 500m, 메모리 1Gi”라는 정책을 커널에 전달할 뿐이다.즉, 리소스 제어의 본질은 언제.. 2026. 1. 22.
Kubernetes에서 Stateful 앱에 Blue-Green 배포를 적용할 수 있을까? 들어가며Kubernetes를 운영하다 보면 이런 고민을 하게 됩니다."우리 앱은 데이터를 로컬에 저장해야 하는데, Blue-Green 배포도 하고 싶어요"결론부터 말하면, PVC 고정 + HPA + Blue-Green을 동시에 만족하는 깔끔한 방법은 없습니다. 하지만 이 문제를 해결하는 과정에서 Kubernetes 배포 전략의 본질을 이해할 수 있었습니다.Kubernetes 워크로드 리소스 복습먼저 기본기를 짚고 가겠습니다.네 가지 주요 워크로드리소스핵심 목적스케줄링ReplicaSetPod 복제본 수 유지임의 노드DeploymentReplicaSet + 롤링 업데이트/롤백임의 노드StatefulSet상태 유지 (고유 ID, PVC)순차적DaemonSet모든 노드에 1개씩노드당 1개 핵심은 Deployme.. 2026. 1. 19.
Kubernetes Pod 부팅 스파이크, 어떻게 해결할까? 이전에 부팅스파이크 조절이 어려웠는데 kubernetes 1.35v 가 나오면서 새 기능인 In-Place Resize 으로 조절이 가능해졌습니다! 그에 대한 글 작성 시작!~ 합니다! 들어가며Kubernetes에서 Pod을 운영하다 보면 한 가지 골치 아픈 문제를 만나게 됩니다. 바로 부팅 스파이크(Boot Spike) 입니다.Pod이 시작될 때 CPU 사용량이 급격히 치솟았다가 안정화되는 현상인데요, 특히 JVM 기반 애플리케이션(Spring Boot, Java)에서 자주 발생합니다. 📊 CPU 사용량 변화300m100m50m⚡ 스파이크 ▲ 시작 ▲ Ready → 정상 운영 이 글에서는 부팅 스파이크가 왜 문제가 되는지, 그리고 어떻게 해결할 수 있는지 정리해보겠습니다.부팅 스파이크가 .. 2026. 1. 15.
Kubernetes v1.35 변화 정리 December 17, 2025 에 kubernetes v1.35 이 출시 되었습니다. 개인적으로 기대했던 In-Place Pod Resize 이 GA로 되어서이전에 pod 실행, 재실행시 부팅 스파이크로 인한 request 조절을 못했는데 할수있게 되었습니다! 이에 대한 자세한내용은 https://rainbound.tistory.com/1357 에서 확인하세요! 이 버전은 “무엇을 더 제공할 것인가”보다 “무엇을 끝내고, 어떤 방향으로 정렬할 것인가” 입니다.핵심 키워드는 다음 네 가지다.재시작 없는 리소스 변경런타임 구조 정리리소스 제어의 예측 가능성리눅스 네이티브 네트워크 스택으로의 수렴1. v1.35에서 새로 추가·안정화된 기능1️⃣ In-Place Pod Resize (GA)기능 요약실행 중인.. 2026. 1. 15.
Kubernetes에서 Prometheus 장기 저장 전략(Thanos vs Grafana Mimir ) 쿠버네티스에서 모니터링을 구성할 때 대부분 Prometheus로 시작한다.하지만 클러스터와 서비스가 늘어나면 곧 다음 질문에 부딪힌다.“Prometheus 메트릭을 몇 달~몇 년 보관하려면 어떻게 해야 하지?”이 글에서는 Prometheus 장기 저장을 위한 대표적인 두 솔루션Thanos 와 Grafana Mimir 를 중심으로각각 무엇인지구조적 차이어떤 상황에서 적합한지Prometheus 단독과 비교리소스 사용 관점의 차이를 쿠버네티스 기준으로 정리한다.1. Prometheus 단독의 한계Prometheus는 기본적으로 로컬 TSDB(Local Disk) 기반이다.장점설치/운영 단순Kubernetes 생태계 표준빠른 쿼리 성능한계장기 보관(수개월~수년)에 부적합디스크 비용 증가단일 인스턴스 병목멀티 클.. 2026. 1. 2.
반응형