반응형

전체 글 391

Kubernetes OOMKilled 대응 전략: 무작정 메모리만 늘리지 말자!

OverviewKubernetes를 운영하다 보면 누구나 한 번쯤 마주하는 상황이 있다. 바로 `OOMKilled` (Out of Memory Killed) 에러이다. 파드가 설정된 메모리 제한(Limit)을 초과하여 강제로 종료되는 이 현상은, 많은 DevOps 엔지니어들에게 골치 아픈 문제이다. 대부분의 팀이 이 문제를 어떻게 해결할까요? "일단 메모리를 2배로 늘리고 다시 배포해보자"는 식의 주먹구구식 대응이 흔하다. 하지만 이는 근본적인 해결책이 아니며, 리소스 낭비와 비용 증가로 이어진다. 이 글에서는 OOMKilled 문제에 대한 체계적인 접근 방법과 실무에서 바로 적용할 수 있는 해결 전략을 다룬다. 단순히 리소스를 늘리는 것이 아니라, 왜 발생했는지 파악하고, 적정 리소스를 산정하며, ..

Claude Code의 Command, Skills, Agents 그리고 Plugin 완벽 정리

OverviewClaude Code를 쓰다 보면 `/command`, Skill, Subagent, Plugin 이 네 가지 개념이 계속 등장한다. 이름도 비슷하고 하는 일도 겹쳐 보여서 처음엔 구분이 잘 안 된다. 특히 슬래시 커맨드와 스킬은 최근 통합되면서 더 헷갈린다. 이 글에서는 다음을 정리한다.Command, Skills, Agents가 각각 무엇이고 어떻게 다른가같은 이름이 겹칠 때 어떤 게 우선되는가 (우선순위 규칙)Plugin으로 설치하면 기존 Skill과 어떻게 동작하는가 결론부터 말하면 이렇다. Command는 호출 단축키, Skill은 번들 가능한 프롬프트 능력, Agent는 격리된 컨텍스트를 가진 별도 인스턴스, Plugin은 이것들을 묶어서 배포하는 패키지다. 그리고 Plugin..

AI/AI Tool 2026.06.04

Kubernetes 클러스터로의 외부 트래픽 흐름 완벽 가이드

OverviewKubernetes 클러스터에서 외부 트래픽이 어떻게 내부 Pod까지 도달하는지 이해하는 것은 운영과 트러블슈팅에 필수적이다. 외부에서 들어오는 요청은 단순히 Pod에 직접 연결되는 것이 아니라, 여러 네트워크 컴포넌트를 거쳐 최종 목적지에 도달한다. 외부 트래픽은 먼저 Ingress Controller나 LoadBalancer를 통해 클러스터로 진입한다. 이후 Service 객체의 ClusterIP로 전달되는데, 이 Service는 실제 IP가 아닌 가상 IP이다. kube-proxy가 각 노드에서 iptables 또는 IPVS 규칙을 관리하며, Service IP로 오는 패킷을 실제 Pod IP로 DNAT(Destination NAT) 변환한다. 최종적으로 CNI(Container ..

Cilium CNI 환경에서의 Kubernetes 네트워크 문제 해결

OverviewCilium은 eBPF 기반의 차세대 CNI 플러그인으로, 기존 kube-proxy와 함께 사용하거나 완전히 대체할 수 있다. 이 문서는 Cilium + kube-proxy 혼합 환경에서 발생하는 특수한 상황과 문제 해결 방법을 다룬다. 해당 실습은 Kubernetes 내부 네트워크 완벽 분석: IPVS 모드 환경에서의 패킷 플로우 추적 글의 실습환경과 동일하다.2025.11.12 - [Container Orchestration/Kubernetes] - Kubernetes 내부 네트워크 완벽 분석: IPVS 모드 환경에서의 패킷 플로우 추적 환경 특성 파악./network-test-info.sh ====================================== Kubern..

Mac에서 ffmpeg로 동영상 압축하기 (H.264 / H.265 실전 가이드)

Overview용량이 큰 영상 파일을 클라우드에 백업하거나 공유할 때, 화질을 거의 손해보지 않고 용량을 1/10 수준으로 줄일 수 있는 방법이 있다. 바로 ffmpeg를 이용한 재인코딩이다. 이 글에서는 Mac 환경에서 ffmpeg로 동영상을 압축하는 방법을 정리한다. H.264 CRF 23(빠르고 호환성 좋음)과 H.265 CRF 28(압축률 좋음) 두 가지 옵션을 다루고, 실제 1080p 영상들을 압축했을 때의 결과 데이터도 함께 공유한다.결론부터 말하면, 1080p 24fps 영상 기준 약 83~94% 용량 감소가 가능하다. 1. 환경 준비 1.1 ffmpeg 설치 확인Homebrew가 설치되어 있다면 ffmpeg 설치는 한 줄이면 끝난다.# 설치brew install ffmpeg# 설..

Mac 2026.05.26

Kubernetes 내부 네트워크 완벽 분석: IPVS 모드 환경에서의 패킷 플로우 추적

OverviewKubernetes 클러스터에서 발생하는 네트워크 문제를 해결하기 위해서는 내부 네트워크 구조를 정확히 이해해야 한다. 특히 온프레미스와 AWS 클러스터처럼 서로 다른 환경에서 동일한 문제가 발생할 때, tcpdump를 통한 패킷 분석은 필수적이다. 이 글에서는 kube-proxy IPVS 모드를 사용하는 환경에서 Kubernetes 네트워크의 내부 동작 원리와 실제 패킷 플로우를 tcpdump로 추적하는 방법을 상세히 다룬다. 또한 직접 따라할 수 있는 실습 예제를 통해 이론을 실전에 적용하는 방법을 알아본다. Kubernetes 네트워크 계층 구조Kubernetes 네트워크는 크게 세 가지 계층으로 구성된다. Node Network (물리 네트워크)노드 간 통신을 담당..

ingress-nginx → nginx-gateway-fabric 마이그레이션 실전 기록 (온프레미스 K8s, 11개 인스턴스)

Overviewingress-nginx가 유지보수 모드로 전환되고 Kubernetes Gateway API가 v1.2로 GA되면서, 운영 중인 온프레미스 클러스터의 ingress-nginx 11개 인스턴스를 nginx-gateway-fabric(NGF) 2.0으로 이관했다. 전환 대상과 규모는 다음과 같다.항목 내용대상 클러스터 온프레미스 Kubespray (K8s v1.34)기존 Ingress 컨트롤러 ingress-nginx 11개 인스턴스 (기본 nginx 1개 + nginx-public-a~j 10개)LoadBalancer MetalLB L2 (내부 IP 14개 고정 할당)마이그레이션 대상 앱 infra 직배포 11개 + ArgoCD ApplicationSet 9개 + 별도 레포 2개전환 후 ..

Claude Code 멀티 에이전트 (Sub-agents) 사용법

OverviewClaude Code의 멀티 에이전트는 정확히는 Sub-agents (서브에이전트) 기능이다. 서브에이전트는 자체 시스템 프롬프트, 자체 컨텍스트 윈도우, 자체 도구 접근 권한, 자체 권한 모드를 가진 격리된 Claude 인스턴스로, 메인 대화 컨텍스트를 깨끗하게 유지하면서 특정 작업을 위임할 수 있다. DevOps 작업 (Terraform, Kubernetes, ArgoCD 등)에 바로 활용 가능한 구조다. 1. 핵심 개념서브에이전트의 가장 큰 가치는 컨텍스트 보존이다. 테스트 실행, 문서 조회, 로그 파일 처리는 상당한 컨텍스트를 소비하는데, 이를 서브에이전트에 위임하면 verbose한 출력은 서브에이전트 컨텍스트에 머물고 관련 요약만 메인 대화로 돌아온다. 또한 여러 서브에이..

IT Tool 2026.05.13

EKS 프로덕션 배포 가이드: 502 에러 제로 달성기

Overview AWS Load Balancer Controller의 ReadinessGate 기능으로 EKS 배포 시 발생하는 모든 502 에러를 제거했다. 단 한 줄의 label 설정으로 가능하다. 온프렘 환경에서의 대안도 함께 다룬다. 문제 인식: 지표와 현실의 괴리 프로덕션 환경에서 다음과 같은 상황을 경험해본 적 있으신가요?# ArgoCD Dashboard✅ Sync Status: Healthy✅ Health Status: Healthy✅ All Pods: Running (3/3)# 동시에 Grafana Alert🚨 HTTP 502 Spike: 708 errors in 70 seconds🚨 User Impact: ~2,000 affected requests모든 자동화 도구는 성공을 ..

tcpdump로 네트워크 문제 진단하기: SSH 연결 지연 해결 실전 가이드

Overview최근 GitHub SSH 연결이 비정상적으로 느린 문제를 겪었다. git pull을 실행하면 30초 이상 기다려야 하는 상황이었죠. "네트워크가 느린가?" 하고 넘어갈 수도 있었지만, tcpdump를 사용해 정확한 원인을 찾아냈다.이 글에서는 tcpdump의 기본 사용법부터 실전 문제 해결 사례까지 다룬다. tcpdump란? tcpdump는 네트워크 인터페이스를 통과하는 패킷을 실시간으로 캡처하고 분석하는 커맨드라인 도구이다. 네트워크 문제 진단, 보안 분석, 성능 최적화의 필수 도구이다. 왜 tcpdump를 사용해야 할까?정확한 진단: 추측이 아닌 실제 패킷 데이터로 문제 파악실시간 모니터링: 문제 발생 시점의 트래픽 즉시 확인가벼움: GUI 없이 서버에서도 사용 가능표..

Network 2026.05.05
반응형