목록k8s (23)
근묵자흑
클라우드 네이티브 환경에서 컨테이너의 수명주기 관리는 단순히 "시작"과 "종료"만으로는 충분하지 않습니다. 이 장에서는 Kubernetes의 Managed Lifecycle 패턴을 실제 코드와 테스트를 통해 깊이 있게 살펴보겠습니다. 왜 Managed Lifecycle이 중요한가?실제 운영 환경에서 마주치는 상황들을 생각해보세요:Rolling Update 중 데이터 손실: 진행 중인 요청이 완료되지 않은 채 Pod가 종료Cold Start 문제: Java 애플리케이션이 준비되기 전에 트래픽 수신상태 저장 실패: 갑작스러운 종료로 인한 데이터 불일치연결 누수: 외부 서비스 연결이 제대로 해제되지 않음이러한 문제들을 해결하는 것이 바로 Managed Lifecycle 패턴입니다.실습을 통한 Managed L..
운영 환경에서 Kubernetes 애플리케이션을 실행할 때 가장 중요한 것 중 하나는 애플리케이션의 건강 상태를 정확히 파악하는 것입니다. 단순히 컨테이너가 실행 중이라고 해서 애플리케이션이 정상적으로 작동한다고 볼 수 없죠. 메모리 누수, 데드락, 무한 루프 등 다양한 문제가 발생할 수 있기 때문입니다.📚 Health Probe가 필요한 이유실제 장애 시나리오제가 경험한 실제 사례를 하나 공유하겠습니다. Java 애플리케이션이 OutOfMemoryError를 발생시켰지만, JVM 프로세스는 여전히 실행 중이었습니다. Kubernetes는 프로세스가 살아있다고 판단해 재시작하지 않았고, 결과적으로 서비스는 완전히 중단되었죠.이런 문제를 해결하기 위해 Kubernetes는 세 가지 Health Probe..

왜 선언적 배포인가?여러분이 개발한 애플리케이션을 Kubernetes에 배포한다고 상상해보세요. 새 버전을 출시할 때마다 이런 고민을 하게 됩니다."서비스 중단 없이 업데이트할 수 있을까?""문제가 생기면 빠르게 롤백할 수 있을까?""일부 사용자에게만 먼저 테스트해볼 수 없을까?"이 모든 질문의 답이 바로 선언적 배포 패턴에 있습니다.명령형 vs 선언적: 패러다임의 전환# 명령형 방식 (Imperative) - "어떻게" 할지 일일이 지시kubectl create deployment my-app --image=nginx:1.0kubectl scale deployment my-app --replicas=3kubectl set image deployment/my-app nginx=nginx:2.0kubect..
Kubernetes에서 애플리케이션을 안정적으로 운영하려면 무엇이 필요할까요? 바로 예측 가능성입니다. Predictable Demands 패턴은 컨테이너화된 애플리케이션이 필요로 하는 리소스와 런타임 의존성을 명확히 선언하여, Kubernetes가 효율적으로 워크로드를 스케줄링하고 관리할 수 있도록 하는 기본 패턴입니다.이 글에서는 실제 테스트 코드와 함께 Predictable Demands 패턴의 핵심 개념들을 살펴보겠습니다.📚 핵심 개념 이해하기1. 왜 Predictable Demands가 중요한가?Kubernetes는 수많은 애플리케이션이 공존하는 멀티테넌트 환경입니다. 각 애플리케이션이 필요한 리소스를 명확히 선언하지 않으면:🚨 리소스 경쟁: 애플리케이션 간 예측 불가능한 리소스 경쟁 발생?..
웹 서버가 HTTP 요청을 받았을 때, 단순히 "요청 받고 → 처리하고 → 응답 보내기"만 하면 될까요?실제로는 훨씬 복잡합니다. 특히 Kubernetes처럼 수많은 컨테이너와 애플리케이션을 관리하는 시스템의 API 서버라면 더욱 그렇습니다. 인증은 누가 하고, 권한 검사는 언제 하며, 동시에 몰려오는 수천 개의 요청은 어떻게 처리할까요?이 글에서는 Kubernetes API 서버의 핵심인 DefaultBuildHandlerChain 함수를 통해, 하나의 HTTP 요청이 어떤 여정을 거쳐 처리되는지 상세히 살펴보겠습니다. Go 언어와 Kubernetes를 처음 접하는 분들도 이해할 수 있도록, 기초부터 차근차근 설명하겠습니다.목차Go 언어의 HTTP 처리 기초미들웨어 패턴이란?Kubernetes API ..
Kubernetes의 심장부인 kube-apiserver의 내부 구조를 코드 레벨에서 완전 분석해보자. 메인 엔트리 포인트부터 HTTP 요청 처리 파이프라인까지, 실제 소스코드와 함께 상세히 알아본다.📋 목차개요프로젝트 구조 및 아키텍처메인 엔트리 포인트 분석서버 초기화 및 설정HTTP 처리 파이프라인필터 체인 상세 분석요청 라우팅 시스템마무리개요Kubernetes API Server는 클러스터의 모든 상태를 관리하는 핵심 컴포넌트입니다. 이 글에서는 kube-apiserver의 실제 소스코드를 분석하여 다음을 이해해보겠습니다:🚀 애플리케이션 시작부터 HTTP 서버 실행까지의 전체 흐름🔐 인증(Authentication)과 인가(Authorization) 처리 방식🌐 HTTP 요청이 실제 API ..