kubernetes 3

[k8s] NestJS 앱을 도커라이징해서 Pod로 띄우기

로컬 환경에서 개발한 애플리케이션을 컨테이너화하고, 이를 쿠버네티스 클러스터 위에서 실행시키는 것은 클라우드 네이티브 개발의 기초가 되는 과정이다. 이번에는 NestJS 프레임워크로 간단한 백엔드 서버를 만들고, 이를 도커 이미지로 빌드한 뒤 쿠버네티스 파드(Pod)로 배포하여 접속하는 전체 워크플로우를 정리해보자.1. NestJS 프로젝트 생성 및 로컬 테스트가장 먼저 컨테이너에 담을 앱이 필요하다.Node.js 기반의 프레임워크인 NestJS를 사용하여 기본 서버를 생성한다.프로젝트 생성NestJS CLI를 전역으로 설치하고 새로운 프로젝트(nest-server)를 생성한다.# NestJS CLI 설치sudo npm i -g @nestjs/cli# 프로젝트 생성cd ./Documentsnest new..

[k8s] Nginx 파드(Pod) 생성하고 포트 포워딩(port forwarding)하기

쿠버네티스에서 가장 기본이 되는 배포 단위인 파드(Pod)를 직접 생성하고, 내부 접속 및 외부 노출을 테스트하는 과정을 실습해본다.대표적 웹 서버인 Nginx 컨테이너를 띄우고, 로컬 환경에서 접속이 가능한지 확인해보는 과정이다.1. 선언적 정의: YAML 파일 작성쿠버네티스는 선언적(Declarative) 시스템이다.즉, 내가 "무엇을 하고 싶다"라고 명령어로 하나하나 지시하기보다는, "어떤 상태가 되기를 원한다"라고 명세서(Manifest)를 작성해서 제출하는 방식이 권장된다.먼저 인텔리제이(IntelliJ)를 이용해 다음과 같이 nginx-pod.yaml 파일을 작성했다. apiVersion: 오브젝트를 생성하기 위한 API 버전 (Pod는 v1).kind: 생성할 리소스의 종류 (여기서는 Pod..

도커(Docker)와 컨테이너 기술의 개념 이해하기

많은 기업들은 인프라 운영의 효율성을 위해 클라우드 네이티브 환경을 구축하고 있으며, 그 중심에는 도커(Docker)와 쿠버네티스(Kubernetes)가 있다.대규모 엔터프라이즈 환경에서 사용되는 기술 스택을 중심으로, 도커와 컨테이너 기술의 핵심 개념과 운영 생태계에 대해 알아보자.1. 기업형 클라우드 인프라의 예기업들은 단순히 서버를 돌리는 것에 그치지 않고, 인프라 전체를 소프트웨어로 정의하고 자동화한다.가상화 및 네트워크: 물리 서버에 VMware를 설치한 후, 그 위에 OpenStack을 얹어 사내 클라우드를 구축한다. 이때 하드웨어 장비 없이 소프트웨어(스위치, 라우터)만으로 네트워크를 연결하는 SDN 기법이 활용된다.패키징 및 배포: Docker로 환경을 구성하고, Helm이라는 쿠버네티스 ..