전체 글 38

[Kubernetes Platform Lab] #2. FastAPI 애플리케이션 Docker 컨테이너화

이전 글에서는 Kubernetes에 배포할 Python/FastAPI 샘플 애플리케이션을 구성하고, Health Check 및 애플리케이션 정보 API의 동작을 확인하였습니다.이번에는 로컬 환경에서 실행했던 FastAPI 애플리케이션을 Docker 이미지로 빌드하고 컨테이너 환경에서 실행합니다.추후 Kubernetes에서는 해당 컨테이너 이미지를 기준으로 Pod를 생성할 예정이므로, Docker 이미지 생성부터 컨테이너 실행 및 API 호출까지 정상적으로 동작하는지 확인합니다. 1. Dockerfile 작성프로젝트 Root 경로에 Dockerfile을 생성합니다. k8s-platform-lab/├── app/├── tests/├── Dockerfile├── .dockerignore├── requirem..

Infra/DevOps 2026.10.02

[Kubernetes Platform Lab] #1. Python/FastAPI 샘플 애플리케이션 구성

이전 글에서 전체 프로젝트의 목표 아키텍처와 구축 계획을 정리하였으며, 이번에는 Kubernetes에 배포할 FastAPI 샘플 애플리케이션을 구성합니다.추후 Kubernetes의 Liveness/Readiness Probe와 연동할 Health Check API와 Pod별 응답을 확인하기 위한 애플리케이션 정보 API를 함께 구성합니다. 1. 프로젝트 구조프로젝트는 애플리케이션 코드와 테스트 코드를 분리하여 다음과 같이 구성하였습니다.k8s-platform-lab/├── app/│ ├── routers/│ │ ├── __init__.py│ │ ├── health.py│ │ └── info.py│ ├── __init__.py│ ├── config.py│ └── ma..

Infra/DevOps 2026.10.02

[Kubernetes Platform Lab] #0. Kubernetes 기반 DevOps 환경 구축 로드맵

1. 프로젝트 시작 배경기존 업무에서 Jenkins 기반 CI/CD 파이프라인 구축과 Linux 서버 운영, OS 마이그레이션 등을 수행하였습니다.Jenkins를 활용하여 빌드 서버에서 생성한 산출물을 배포 서버로 전송하고, WAS 재기동 및 서비스 상태 확인까지 이어지는 배포 과정을 자동화한 경험이 있습니다. 다만 기존 환경은 일반적인 WAS 기반 배포 구조였으며, Kubernetes를 활용한 컨테이너 기반 서비스 운영 경험은 없었습니다. CKA 취득 및 강의 실습을 통해 Kubernetes의 기본 구성과 주요 리소스를 학습했지만, 실제 서비스를 대상으로 클러스터 구축부터 CI/CD, 모니터링, 장애 대응까지 직접 구성해 볼 필요가 있다고 판단하였습니다. 이에 Python/FastAPI 기반 샘플 애플..

Infra/DevOps 2026.10.02

[쿠버네티스 어나더 클래스 - Sprint2] #4. Jenkins Pipeline (기초부터 Blue/Green 까지)

[참고]본 글은 인프런의강의 내용과 실습을 바탕으로 정리한 기록입니다. 실습에서 다룬 Job (Pipeline)2211-jenkins_pipeline-step1: 분리되어 있던 세 개의 Job을 하나의 Pipeline으로 통합2212-jenkins_pipeline-step2: GitHub 연동 및 Pipeline script from SCM 방식으로 전환2213-jenkins_pipeline-step3: input 스텝을 활용한 수동 Blue/Green 배포2214: 배포 완료 여부를 폴링하는 자동 Blue/Green 배포 1. 분리된 Job을 하나의 Pipeline으로 Sprint 1에서는 2121-source-build, 2121-container-build, 2121-deploy 세 개의 Job..

Infra/Kubernetes 2026.09.21

[쿠버네티스 어나더 클래스 - Sprint2] #3. 배포를 시작하기 전에 반드시 알아야 할 것들

[참고]본 글은 인프런의강의 내용과 실습을 바탕으로 정리한 기록입니다. 성공적인 데브옵스 환경 구축을 위해 CI/CD 파이프라인 설계 시 고려해야 할 구조적 요소와 상황에 맞는 쿠버네티스 배포 전략(Recreate, RollingUpdate, Blue/Green, Canary)을 정리합니다. 1. CI/CD 파이프라인 구성 시 고려 요소 CI/CD 환경과 실제 애플리케이션이 동작하는 인프라 환경은 명확히 구분되어 관리됩니다. [관리 담당 및 파이프라인 분리]이전 실습에서는 Jenkins를 통해 (1) 소스 빌드 ➔ (2) 컨테이너 빌드 ➔ (3) 배포(kubectl) 과정을 하나의 파이프라인에 통합해 구성하였습니다.배포 방식은 단순 kubectl 외에도 Helm이나 Kustomize를 활용해 매니페스트..

Infra/Kubernetes 2026.09.18

[쿠버네티스 어나더 클래스 - Sprint2] #2. 손쉽게 데브옵스 환경을 구축하는 방법

[참고]본 글은 인프런의강의 내용과 실습을 바탕으로 정리한 기록입니다. CI/CD 서버 사전 설정(Jenkins, Docker 로그인, GitHub Fork 등)을 마친 후, CI/CD 서버에서 쿠버네티스 클러스터를 제어할 수 있도록 인증서를 연동하고 파이프라인 배포 과제를 해결한 과정을 정리합니다. 1. CI/CD 서버와 Master Node 인증서 연동 (SCP)Jenkins 서버에서 kubectl 명령어로 쿠버네티스 클러스터를 제어하기 위해 Master Node의 인증서 파일(/root/.kube/config)을 가져옵니다. 사전 체크사항:Master Node가 정상 동작 중인지 확인반드시 root 계정이 아닌 jenkins 유저 권한으로 작업 진행# 1. config 파일 저장 디렉토리 생성[j..

Infra/Kubernetes 2026.09.17

2026 CKA 합격 후기

안녕하세요 ㅎㅎ미루고 미루다 드디어 CKA 시험을 보게 되었고, 합격하게 되어 후기 남깁니다.1. 베이스우선 저는 개발 경력 5년이지만, 실무에서는 쿠버네티스는 사용하지 않아쿠버네티스 지식은 0 인 상태입니다 . (레거시 시스템이라 도커도 잘 안써요 ㅠ)처음에는 Udemy 뭄샤드 유명한 강의가 있어, 구매 후 수강하였는데가뜩이나 모르는 내용인데 한글자막이 없으니 이해가 하나도 안되더라구요. 그러던 중에, 어떤 블로그 후기에서 일프로님 CKA 인프런 강의를 접하게 되어 바로 수강 시작했습니다.https://www.inflearn.com/course/certified-kubernetes?cid=339687물론 뭄샤드 보다는 이해가 잘 되었지만,CKA 강의를 2번을 돌려 들어도, 베이스가 제로인 상태라 머릿속..

Infra/Kubernetes 2026.09.14

[쿠버네티스 어나더 클래스 - Sprint1] #8. Component 동작으로 이해하기

[참고]본 글은 인프런의강의 내용과 실습을 바탕으로 정리한 기록입니다. 주요 컴포넌트 구성1. Resource 계층 (논리적 리소스 및 스토리지)Cluster level & Namespace level: 클러스터 전체에 적용되는 Namespace, PV와 그 하위에서 격리되어 관리되는 리소스들로 구분됩니다.Controller: HPA ➔ Deployment ➔ ReplicaSet으로 이어지며 타 컨트롤러나 오브젝트를 상태 정의에 맞게 제어합니다.Object: Service, ConfigMap, Secret 등이 Pod와 연결되어 단독 인프라 기능을 수행하며, 데이터 보존을 위해 Pod ➔ PVC ➔ PV ➔ 외부 볼륨 솔루션(NFS, Ceph, AWS EBS 등)으로 이어집니다.2. Kubernetes..

Infra/Kubernetes 2026.08.27

[쿠버네티스 어나더 클래스 - Sprint1] #7. Application 기능으로 이해하기#3 - PV/PVC, Deployment, Service, HPA

[참고]본 글은 인프런의강의 내용과 실습을 바탕으로 정리한 기록입니다. PV, PVC 기본 개념컨테이너 내부에서만 데이터를 저장하면 파드(Pod)가 재시작되거나 삭제될 때 내부 파일도 함께 사라집니다. 데이터의 영구적 보존을 위해 스토리지 오브젝트인 PV와 PVC가 필요합니다.PV (PersistentVolume): 클러스터 내의 실제 물리/논리 스토리지 자원PVC (PersistentVolumeClaim): 사용자가 PV를 할당받기 위해 전달하는 요청서용량 매칭 규칙: PVC의 resource.request.storage 값과 PV의 capacity.storage 값은 동일하게 설정해야 정상 바인딩됩니다.nodeAffinity 설정 이유: PV에서 특정 노드를 지정하는 설정입니다. 파드가 데이터가 존..

Infra/Kubernetes 2026.08.26

[쿠버네티스 어나더 클래스 - Sprint1] #6. Application 기능으로 이해하기#2 - Configmap, Secret

[참고]본 글은 인프런의강의 내용과 실습을 바탕으로 정리한 기록입니다. Configmap, Secret 기본 개념쿠버네티스에서 ConfigMap과 Secret은 애플리케이션 코드와 설정값을 분리하여 외부에서 환경 데이터를 주입하기 위해 사용되는 오브젝트입니다.ConfigMap에 저장되는 데이터:인프라 환경 관련 값: 개발/검증/운영 환경(dev, stage, prod)에 따라 달라지는 설정App 기능 제어 값: 기능 On/Off 스위치, 로깅 레벨 등외부 환경 주입 값: 외부 API 엔드포인트 URL 등 일반 설정 정보Secret에 저장되는 데이터:DB 접속 정보: DB URL, 계정 및 비밀번호 (작성 시 stringData 필드 활용 가능)인코딩 방식: Secret 내부 데이터는 Base64로 인코딩..

Infra/Kubernetes 2026.08.25