본문 바로가기

Cloud5

Kubernetes PV(PersistentVolume), PVC(PersistentVolumeClaim) 실습 쿠버네티스 스토리지 : PersistentVolume과 PersistentVolumeClaim쿠버네티스에서 애플리케이션을 운영하다 보면 중요한 질문에 직면하게 됩니다. "파드가 삭제되면 데이터는 어떻게 될까?" 쿠버네티스의 파드는 유연성을 위해 기본적으로 휘발성(Ephemeral)입니다. 즉, 파드가 죽거나 재시작되면 그 안에 저장된 데이터도 함께 사라지죠. 하지만 데이터베이스, 사용자 업로드 파일, 로그 등 영구적으로 보존되어야 하는 데이터도 분명 있습니다.이런 문제를 해결하기 위해 쿠버네티스는 영구 스토리지(Persistent Storage) 개념을 도입했으며, 이를 구현하는 핵심 요소가 바로 PersistentVolume (PV)과 PersistentVolumeClaim (PVC)입니다.Part 1.. 2025. 7. 11.
Kubernetese Conifg , Secret 실습 및 정리 1. 왜 설정과 코드를 분리해야 할까애플리케이션 개발 시 설정 정보(데이터베이스 URL, API 키 등)를 코드 안에 직접 작성(하드코딩)하는 경우가 있습니다. 하지만 이는 다음과 같은 문제를 야기합니다.환경별 변경의 어려움: 개발, 테스트, 운영 환경마다 DB 주소나 로깅 레벨이 다르다면, 환경을 바꿀 때마다 코드를 수정하고 다시 빌드해야 합니다.보안 취약점: 민감한 정보(비밀번호)가 코드에 포함되면 Git 리포지토리나 이미지에 노출될 위험이 있습니다.재사용성 저하: 동일한 애플리케이션이지만 설정만 다른 여러 인스턴스를 띄우기 어렵습니다.쿠버네티스의 ConfigMap과 Secret은 이러한 문제를 해결하고 "설정과 코드의 분리(Separation of Concerns)"라는 모범 사례를 따르게 해줍니.. 2025. 7. 11.
Kubernetes RollingUpdate, Rollback 실습 1. 롤링 업데이트 실습우리가 진행할 실습은 my-java-app이라는 애플리케이션의 이미지를 test:1.0에서 test:2.0으로 업데이트하고, 문제가 발생했을 때 test:1.0으로 롤백하는 과정입니다.현재 상태: my-java-app 디플로이먼트가 qws1566/test:1.0 이미지를 사용하여 배포되어 있습니다. containers: - name: my-java-app image: 도커 허브 id /test:1.0 imagePullPolicy: Always ports: - containerPort: 8080 1. 2.0 버전으로 롤링 업데이트 시작가장 간단한 kubectl set image 명령을 사용해 업.. 2025. 7. 11.
kubernetes 배포 외부 접속 - NodePort, Kind 분명 Nodeport로 하면 외부접속이 된다고 했는데 외부접속이 안되는 문제가 발생했다....다시 하나씩 진행해서 해결한 과정을 적어보려고 합니다,,, 1. 실습 환경 호스트 PC: 제가 실제로 작업하는 컴퓨터 (Windows 또는 macOS 등)가상 머신 (VM): 호스트 PC 위에 설치된 Ubuntu Server (저는 VirtualBox 사용)Kind 클러스터: 이 Ubuntu VM 안에 Docker가 설치되어 있고, 그 Docker 위에서 Kind Kubernetes 클러스터를 실행했습니다.Kind는 Kubernetes 노드를 Docker 컨테이너로 띄워서 경량 클러스터를 제공해요.배포된 애플리케이션: 클러스터 내에 MySQL, MongoDB 같은 데이터베이스와 Java 애플리케이션을 Pod 형태.. 2025. 7. 10.
Spring boot Docker와 Kubernetes 활용하여 배포하기 1단계: Spring Boot 애플리케이션 빌드 및 JAR 파일 준비가장 먼저 Spring Boot 애플리케이션을 빌드하여 실행 가능한 JAR 파일을 준비해야 합니다. 이 JAR 파일은 Docker 이미지 생성의 핵심 요소가 됩니다.핵심: Spring Boot 프로젝트의 루트 디렉토리에서 다음 명령어를 실행하여 빌드를 수행합니다../gradlew build # Gradle 프로젝트의 경우# 또는./mvnw package # Maven 프로젝트의 경우 빌드가 성공적으로 완료되면 위의 화면처럼 메시지가 BUILD SUCCESSFUL 로 출력됩니다. 빌드가 성공적으로 완료되면 build/libs에 test-0.0.1-SNAPSHOT.jar이 생깁니다. 2단계: Dockerfile 작성 및 Docker 이미.. 2025. 7. 9.