반응형

AI/Infrastructure 117

docker build 명령어 완벽 가이드: Dockerfile로 이미지 만들기

설명 (Description): docker build 명령어의 사용법을 자세히 알아봅니다. 빌드 컨텍스트(Build Context), Dockerfile, 태그(-t) 지정, 주요 옵션(-f, --build-arg) 활용법과 빌드 최적화 팁을 예제 코드와 함께 설명합니다.TL;DR: docker build는 Dockerfile이라는 설계도와 '빌드 컨텍스트'라는 재료를 사용해 도커 이미지를 생성하는 핵심 명령어입니다. 명령어의 마지막에 위치하는 경로(예: .)는 빌드에 필요한 파일들이 담긴 컨텍스트를 지정하며, -t 옵션으로 이미지에 이름과 태그를 부여합니다. 빌드 과정은 Dockerfile의 각 명령어를 한 줄씩 실행하며 레이어(Layer)를 쌓는 방식으로 진행되며, .dockerignore 파일을 ..

AI/Infrastructure 2025.09.29

도커(Docker)란 무엇인가: 컨테이너 가상화 기술 완벽 입문

설명 (Description): 초보자를 위해 도커(Docker)의 핵심 개념과 컨테이너 가상화 기술을 설명합니다. 도커 이미지, 컨테이너, Dockerfile의 작동 원리와 가상 머신(VM)과의 차이점을 비교 분석하여 개발 효율성을 높이는 방법을 알아보세요.TL;DR: 도커(Docker)는 애플리케이션을 개발, 배포, 실행하기 위한 개방형 플랫폼입니다. 이는 '컨테이너'라는 격리된 환경에 애플리케이션과 모든 종속성을 패키징하여, 어떤 환경에서든 동일하게 실행되도록 보장합니다. 기존의 가상 머신(VM)이 무거운 게스트 운영체제(Guest OS)를 포함하는 것과 달리, 도커 컨테이너는 호스트 OS의 커널을 공유하여 매우 가볍고 빠릅니다. 이를 통해 개발자는 "내 컴퓨터에서는 잘 되는데..."라는 고질적인 ..

AI/Infrastructure 2025.09.27

쿠버네티스 인그레스(Ingress): 완벽 가이드 (NGINX 예제 포함)

설명: 쿠버네티스 인그레스(Ingress)의 개념, 작동 방식, 그리고 NGINX 인그레스 컨트롤러를 사용한 실용적인 예제를 통해 외부 트래픽을 클러스터 내부 서비스로 라우팅하는 방법을 심층적으로 알아봅니다. 실무자를 위한 핵심 가이드입니다. TL;DR: 쿠버네티스 인그레스(Ingress)는 클러스터 외부의 HTTP 및 HTTPS 트래픽을 클러스터 내부 서비스(Service)로 연결하는 규칙의 집합을 정의하는 API 객체입니다. 인그레스는 L7 로드 밸런서 역할을 수행하며, URL 경로 및 호스트 이름 기반 라우팅, SSL/TLS 종료, 가상 호스팅 등의 고급 기능을 제공합니다. 인그레스 리소스가 실제로 동작하려면 NGINX, Istio, Traefik과 같은 인그레스 컨트롤러가 반드시 필요합니다. 이는..

AI/Infrastructure 2025.09.23

쿠버네티스 노드포트(NodePort)란? 개념, 동작 방식 및 사용 사례 완벽 분석

설명 (Description): 쿠버네티스(Kubernetes) 노드포트(NodePort) 서비스의 개념과 핵심 동작 원리를 알아봅니다. ClusterIP, LoadBalancer와의 차이점을 비교하고, 명확한 YAML 예제를 통해 실무 사용법과 주의사항까지 실무자 수준에서 상세히 설명합니다. TL;DR: 쿠버네티스 노드포트(NodePort)는 클러스터 외부에서 내부 애플리케이션에 접근할 수 있도록 각 노드(Node)의 특정 포트를 개방하는 서비스 타입입니다. 모든 노드는 동일한 포트 번호(기본 범위: 30000-32767)를 사용하며, 사용자는 : 주소로 서비스에 접근할 수 있습니다. 노드포트는 주로 개발, 테스트, 데모 환경에서 서비스를 외부에 빠르고 간단하게 노출시킬 목적으로 사용됩니다. 프로덕션 ..

AI/Infrastructure 2025.09.21

쿠버네티스 동적 프로비저닝(Dynamic Provisioning) 쉽게 이해하기

설명 (Description): 쿠버네티스 스토리지 관리의 핵심, 동적 프로비저닝에 대해 알아봅니다. 정적 프로비저닝과의 차이점, StorageClass, PVC, PV의 관계와 실제 동작 방식을 초보자도 이해하기 쉬운 예제 코드로 설명하여 스토리지 자동화의 개념을 명확히 이해하도록 돕습니다.TL;DR쿠버네티스 동적 프로비저닝(Dynamic Provisioning)은 사용자가 스토리지(저장 공간)를 요청할 때마다 관리자의 개입 없이 자동으로 스토리지를 생성하고 연결해주는 기능입니다. 개발자가 필요한 스토리지의 종류와 크기를 PersistentVolumeClaim(PVC)으로 요청하면, 미리 정의된 StorageClass 템플릿에 따라 실제 스토리지와 이를 대변하는 PersistentVolume(PV)이 ..

AI/Infrastructure 2025.09.20

쿠버네티스 레이블(Labels) 완벽 가이드: 개념부터 실전 베스트 프랙티스까지

설명 (Description): 쿠버네티스(Kubernetes) 레이블의 핵심 개념, 사용법, 셀렉터 연동 방식을 알아봅니다. 실무자를 위한 레이블 베스트 프랙티스와 어노테이션(Annotation)과의 명확한 차이점, 그리고 실제 YAML 예시 코드를 통해 쿠버네티스 리소스 관리 효율을 극대화하는 방법을 확인하세요.TL;DR쿠버네티스 레이블(Kubernetes Labels)은 파드(Pod), 디플로이먼트(Deployment) 등 쿠버네티스 객체(Object)에 첨부하는 키-값(Key-Value) 쌍의 메타데이터입니다. 이 레이블은 객체를 식별하고, 관련 있는 리소스 그룹을 필터링하거나 선택(Select)하는 데 사용됩니다. 예를 들어, environment: production이나 app: fronten..

AI/Infrastructure 2025.09.19

쿠버네티스 컨트롤러 매니저: 클러스터 상태를 지키는 자동화의 핵심

설명 (Description): 쿠버네티스 컨트롤러 매니저(kube-controller-manager)의 역할과 핵심 원리인 제어 루프(Control Loop)를 알아보세요. 노드, 레플리카셋, 디플로이먼트 등 다양한 내장 컨트롤러가 어떻게 클러스터의 '원하는 상태'를 지속적으로 유지하는지 심층적으로 설명합니다.TL;DR: 쿠버네티스 컨트롤러 매니저는 컨트롤 플레인의 핵심 구성요소로, 클러스터의 전반적인 상태를 모니터링하고 관리하는 두뇌와 같습니다. 이 매니저는 여러 컨트롤러 프로세스를 하나의 바이너리로 묶어 실행하며, 각 컨트롤러는 특정 리소스의 '현재 상태(current state)'를 사용자가 정의한 '원하는 상태(desired state)'와 일치시키는 역할을 합니다. 이 과정을 '제어 루프(Co..

AI/Infrastructure 2025.09.17

HAProxy란? 고가용성 로드 밸런서 및 리버스 프록시 완벽 분석

설명 (Description): HAProxy는 고성능 TCP/HTTP 로드 밸런서이자 리버스 프록시입니다. 이 글에서는 HAProxy의 핵심 기능, 주요 로드 밸런싱 알고리즘, 기본 설정 방법 및 NGINX와의 비교를 통해 실무자들이 알아야 할 필수 지식을 다룹니다.TL;DR:HAProxy는 트래픽을 여러 서버에 분산하여 서비스의 안정성과 성능을 극대화하는 오픈소스 로드 밸런서 및 리버스 프록시입니다. Layer 4(TCP)와 Layer 7(HTTP)에서 작동하며, 정교한 라우팅 규칙과 상태 확인(Health Check) 기능을 제공하여 단일 장애점(SPOF)을 제거합니다. 높은 처리량과 낮은 리소스 사용량으로 유명하며, GitHub, Twitter 등 대규모 서비스에서 널리 사용됩니다. 이 글은 HA..

AI/Infrastructure 2025.09.16

Ubuntu에서 `nvidia-smi` 설치 및 CUDA 테스트 가이드

Ubuntu에서 nvidia-smi 설치 및 CUDA 테스트 가이드설명: Ubuntu에서 NVIDIA 드라이버 설치로 nvidia-smi를 사용 가능하게 만들고, CUDA Toolkit 설치 후 nvcc와 간단한 커널 및 deviceQuery로 테스트하는 방법을 단계별로 정리합니다. Jammy(22.04), Noble(24.04) 기준으로 동작하며, 20.04도 유사합니다.개요 (Introduction)이 글은 “ubuntu에서 nvidia-smi 설치 및 cuda 테스트” 방법을 처음부터 끝까지 안내합니다. 기본 흐름은 다음과 같습니다.GPU 인식 확인 → 2) 권장 NVIDIA 드라이버 설치(nvidia-smi 포함) → 3) CUDA Toolkit 설치 → 4) 환경변수 설정(필요 시) → 5) 샘..

AI/Infrastructure 2025.09.01

AI 개발 환경 구성: Anaconda, Jupyter Notebook, GPU 설정하기

1. 왜 AI 개발 환경 구성이 중요한가?AI 프로젝트를 시작하기 전, 개발 환경을 올바르게 설정하는 것은 모델 학습만큼 중요합니다.환경 구성이 잘못되면 다음과 같은 문제가 발생할 수 있습니다.라이브러리 버전 충돌GPU가 인식되지 않아 학습 속도 저하코드 실행 환경이 다른 팀원과 달라 재현 불가능1.1 환경 구성 목표독립된 Python 실행 환경 구성필수 라이브러리 설치GPU(CUDA) 설정코드 작성과 실행을 편리하게 하는 도구 준비2. 필수 도구 개요2.1 AnacondaPython 환경과 패키지 관리를 한 번에 할 수 있는 툴프로젝트별 가상환경을 만들어 라이브러리 충돌 방지2.2 Jupyter Notebook웹 브라우저에서 Python 코드를 작성·실행할 수 있는 대화형 환경데이터 분석과 실험 기록에..

AI/Infrastructure 2025.08.13
반응형