Kubernetes 6

PVC와 PV의 차이점: 쿠버네티스 스토리지 개념 완벽 정리

쿠버네티스(Kubernetes)를 사용하다 보면 스토리지(Volume) 개념에서 혼란을 겪기 쉽습니다. 특히 PV(PersistentVolume)와 PVC(PersistentVolumeClaim)는 이름도 비슷하고 기능도 연결되어 있어 처음 접하는 사람에게는 이해하기 어렵습니다. 이번 글에서는 PV와 PVC의 개념, 차이점, 그리고 실제 동작 방식까지 명확하게 정리하여 설명드립니다.1. 쿠버네티스의 스토리지 개요쿠버네티스는 기본적으로 **Stateless(상태 없음)**한 애플리케이션 실행을 전제로 하지만, 실제 서비스에서는 데이터 저장이 필요한 Stateful(상태 있음) 애플리케이션도 많습니다. 예를 들어 DB(MySQL, PostgreSQL)나 로그 파일, 업로드된 파일을 저장해야 하는 워크로드는 ..

프로그래밍 2025.05.05

배포 전략(Deployment Strategy)

배포 전략(Deployment Strategy)은 애플리케이션을 운영 환경(Production)으로 안전하고 효율적으로 배포하기 위해 사용하는 방법론입니다. 이는 다운타임을 줄이고, 버그나 실패 발생 시 빠르게 롤백할 수 있게 하며, 사용자 경험을 최대한 유지하기 위해 매우 중요합니다.아래는 주요 배포 전략 7가지와 각각의 특징, 장단점을 정리한 내용입니다.✅ 1. Recreate (완전 재배포)기존 버전을 종료하고 새 버전을 시작함.중단 후 시작 방식.🔹장점구조가 간단하고 구현이 쉬움.리소스 소비가 적음.🔸단점다운타임이 발생함.트래픽이 많은 서비스에는 적합하지 않음.✅ 2. Rolling Update (롤링 업데이트)구 버전을 하나씩 종료하고, 새 버전을 순차적으로 배포.사용자는 점진적으로 새 버전..

프로그래밍 2025.05.05

Helm이란?

Helm은 Kubernetes 애플리케이션을 정의하고 설치하며 관리할 수 있는 패키지 관리자입니다. Helm을 사용하면 복잡한 Kubernetes 리소스를 템플릿화하고, 이를 패키지처럼 배포하거나 버전 관리할 수 있습니다. 마치 리눅스에서 apt, yum, brew 등을 사용하는 것처럼 Kubernetes 환경에서 Helm을 사용하는 것이죠.✅ Helm이란?Helm은 Kubernetes 애플리케이션을 패키징하고 공유할 수 있도록 도와주는 **“Kubernetes용 패키지 관리자(Package Manager)”**입니다.Helm에서 사용되는 패키지를 Chart라고 부르며, 하나의 Chart에는 Deployment, Service, ConfigMap, Secret 등의 리소스 템플릿이 포함됩니다.Chart는..

프로그래밍 2025.05.05

Kubernetes Service Domain 구조 완벽 가이드

Kubernetes에서는 클러스터 내부에서 Pod 간 통신을 서비스 이름만으로도 가능하게 만들어주는 Service Domain 구조가 존재합니다. 이는 내부 DNS 시스템인 CoreDNS에 의해 지원되며, 복잡한 IP 관리 없이도 서비스 간의 효율적인 연결을 가능하게 해줍니다.🧱 기본 도메인 구조Kubernetes의 DNS 도메인은 다음과 같은 계층 구조를 따릅니다:..svc.예를 들어, my-service라는 서비스가 default 네임스페이스에 존재한다면, 이 서비스의 FQDN(Fully Qualified Domain Name)은 다음과 같습니다:my-service.default.svc.cluster.local각 구성 요소는 다음과 같은 의미를 가집니다:구성요소 설명my-service서비스 이름de..

프로그래밍 2025.05.05

CoreDNS란? 쿠버네티스 DNS의 핵심을 이해하자

CoreDNS는 쿠버네티스(Kubernetes) 환경에서 기본 DNS 서버로 동작하는 확장 가능하고 경량화된 DNS 솔루션입니다. 기존의 kube-dns를 대체하며, 빠른 속도와 유연한 구성, 강력한 확장성을 제공하는 것이 특징입니다. 쿠버네티스 클러스터에서 파드 간 통신과 서비스 디스커버리를 가능하게 해주는 필수 인프라 구성 요소입니다.CoreDNS의 핵심 개념CoreDNS는 DNS 요청을 처리하는 동시에 플러그인 기반 아키텍처를 통해 다양한 기능을 쉽게 추가하거나 제거할 수 있습니다. 설정은 Corefile이라는 파일을 통해 이뤄지며, 도메인 별 라우팅, 캐시, 포워딩 등의 세부 동작을 정의할 수 있습니다.예시:. { forward . 8.8.8.8 cache log}이 구성은 모든 DNS 요청..

프로그래밍 2025.05.05

Kubernetes 서비스 타입 완전 정리: ClusterIP, NodePort, LoadBalancer, ExternalName

Kubernetes에서 애플리케이션을 배포하면 Pod가 생성되지만, 이 Pod는 IP가 변동될 수 있어 직접 접근하기 어렵습니다. 이를 해결하기 위해 Kubernetes는 Service 리소스를 제공합니다. Service는 Pod의 집합에 접근하기 위한 안정적인 엔드포인트를 만들어 주며, 여러 타입이 존재합니다.이 글에서는 Kubernetes의 4가지 주요 Service 타입인 ClusterIP, NodePort, LoadBalancer, ExternalName의 특징과 사용 예제를 자세히 설명합니다.📌 1. ClusterIP – 기본값, 내부 전용 통신✅ 정의ClusterIP는 Kubernetes 서비스의 기본 타입으로, 클러스터 내부에서만 접근 가능한 IP를 제공합니다.✅ 특징클러스터 내부에서만 접..

프로그래밍 2025.05.04