| En

미니PC Kubernetes #9: Prometheus 모니터링

개요 이전 글에서는 Helm 차트 기반 프로젝트 템플릿과 ArgoCD ApplicationSet을 활용하여 내부 개발자 플랫폼(IDP)을 구축했다. 이번 글에서는 홈랩 쿠버네티스 클러스터를 모니터링하기 위해 Prometheus와 Grafana를 설치하여 메트릭을 수집하고 시각화하며, Loki를 설치하여 로그를 중앙에서 수집하고 분석할 수 있는 통합 모니터링 환경을 구성하는 방법을 알아본다. 모니터링의 필요성 홈랩 쿠버네티스 클러스터를 운영하다 보면 노드와 파드의 상태, CPU와 메모리 같은 리소스 사용량, 애플리케이션의 정상 작동 여부, 문제 발생 시 원인 파악을 위한 로그 데이터 등을 주기적으로 확인해야 하며, 이런 정보를 시각적으로 모니터링하기 위해 다음과 같은 도구들을 사용한다. ...

2025년 2월 28일 · 6 분 · 1132 단어 · In-Jun

미니PC Kubernetes #8: IDP 구축 (2)

개요 이전 글에서는 CI/CD 파이프라인의 기반이 되는 Harbor 컨테이너 레지스트리, Argo Events, Argo Workflows를 설치했다. 이번 글에서는 이 구성 요소들을 ArgoCD와 통합하고 Helm 차트 기반의 프로젝트 템플릿을 설계하여 YAML 파일 하나로 완전한 CI/CD 파이프라인을 갖춘 프로젝트를 배포할 수 있는 내부 개발 플랫폼(Internal Developer Platform, IDP)을 구축하는 방법을 다룬다. 내부 개발 플랫폼이란 내부 개발 플랫폼(IDP)이란? 내부 개발 플랫폼(Internal Developer Platform)은 개발자가 인프라와 배포 파이프라인을 직접 구성하지 않고도 애플리케이션을 배포하고 운영할 수 있도록 추상화된 셀프서비스 인터페이스를 제공하는 시스템이다. 플랫폼 엔지니어링의 핵심 결과물로, 개발자 경험을 향상시키고 표준화된 배포 프로세스를 통해 운영 부담을 줄이는 것을 목표로 한다. ...

2025년 2월 28일 · 11 분 · 2213 단어 · In-Jun

미니PC Kubernetes #7: IDP 구축 (1)

개요 이전 글에서는 HashiCorp Vault를 설치하여 안전한 시크릿 관리 시스템을 구축했다. 이번 글에서는 CI/CD 파이프라인을 구성하기 위해 필요한 세 가지 핵심 컴포넌트인 Harbor 컨테이너 레지스트리, Argo Events, Argo Workflows를 설치하고 기본 구성을 완료하는 방법을 다룬다. CI/CD 시스템 구성 요소 홈랩 환경에서 완전한 CI/CD 파이프라인을 구축하기 위해서는 다음과 같은 핵심 구성 요소가 필요하다: 컨테이너 레지스트리: 빌드된 컨테이너 이미지를 저장하고 배포하는 중앙 저장소로, Docker Hub와 같은 퍼블릭 레지스트리에 의존하지 않고 자체적으로 이미지를 관리할 수 있게 한다. 이벤트 처리 시스템: Git 저장소의 코드 변경, 웹훅 수신 등 다양한 이벤트를 감지하고 이에 반응하여 후속 작업을 트리거하는 역할을 담당한다. 워크플로우 엔진: 코드 빌드, 테스트 실행, 컨테이너 이미지 생성 등 실제 CI/CD 작업을 정의하고 실행하는 엔진이다. GitOps 배포 시스템: Git 저장소에 정의된 원하는 상태를 클러스터에 자동으로 동기화하는 시스템으로, 이전 시리즈에서 설치한 ArgoCD가 이 역할을 담당한다. 이번 글에서는 컨테이너 레지스트리, 이벤트 처리 시스템, 워크플로우 엔진을 각각 Harbor, Argo Events, Argo Workflows로 구현하고, 다음 글에서 이들을 ArgoCD와 통합하여 완전한 CI/CD 파이프라인을 완성한다. ...

2025년 2월 28일 · 7 분 · 1439 단어 · In-Jun

미니PC Kubernetes #6: Vault 시크릿 관리

개요 이전 글에서는 DDNS와 포트포워딩을 구성하여 홈랩 쿠버네티스 클러스터의 서비스를 외부 인터넷에서 접근할 수 있도록 했다. 이번 글에서는 쿠버네티스 클러스터에서 비밀번호, API 키, 인증서 같은 민감한 정보를 안전하게 관리하기 위해 HashiCorp Vault를 설치하고 구성하는 방법을 알아본다. 기본 쿠버네티스 시크릿의 한계 GitOps 방식으로 홈랩 환경을 구성하면서 시크릿 관리가 가장 큰 난제였으며, 기본 쿠버네티스 Secret을 사용해보니 여러 가지 한계점이 명확하게 드러났다. 첫째, GitOps와의 통합 문제가 있다. Git 저장소에 시크릿을 그대로 저장할 수 없고, base64로 인코딩해도 단순한 디코딩으로 원본 값을 복원할 수 있어 보안에 취약하다. Sealed Secrets나 SOPS 같은 도구도 검토했으나, 단순 암호화를 넘어선 종합적인 시크릿 관리 솔루션이 필요했다. ...

2025년 2월 26일 · 9 분 · 1876 단어 · In-Jun

미니PC Kubernetes #5: 외부 접근 설정

개요 이전 글에서는 Traefik 인그레스 컨트롤러를 설치하고 내부와 외부 서비스를 분리하여 관리 인터페이스를 안전하게 접근할 수 있도록 구성했다. 이번 글에서는 홈랩 쿠버네티스 클러스터의 서비스를 외부 인터넷에서 접근할 수 있도록 DDNS와 포트포워딩을 구성하는 방법을 알아본다. 네트워크 아키텍처 요약 먼저 이전 글에서 구성한 네트워크 아키텍처를 간략히 요약한다: 내부용 로드밸런서(192.168.0.200): ArgoCD, Longhorn, Traefik 대시보드 같은 관리 인터페이스만 노출하며 내부 네트워크에서만 접근 가능하다. 외부용 로드밸런서(192.168.0.201): 블로그, 개인 프로젝트 등 공개 서비스만 노출하며 라우터 포트포워딩을 통해 외부 인터넷에서 접근 가능하다. ...

2025년 2월 26일 · 8 분 · 1610 단어 · In-Jun

미니PC Kubernetes #4: 내부 서비스 구성

개요 이전 글에서는 Longhorn 분산 스토리지 시스템을 설치하여 파드가 재시작되거나 다른 노드로 이동해도 데이터가 유지되는 영구 스토리지 환경을 구축했다. 이번 글에서는 홈랩 쿠버네티스 클러스터에 Traefik 인그레스 컨트롤러를 설치하고, 내부 네트워크에서 관리 인터페이스에 안전하게 접근할 수 있도록 구성하는 방법을 알아본다. 인그레스 컨트롤러 선택 홈랩 환경에서 쿠버네티스 서비스를 외부에 노출하는 방법은 여러 가지가 있다: NodePort: 각 노드의 특정 포트(30000-32767 범위)를 통해 서비스에 접근하는 방식으로 설정이 간단하지만 포트 번호를 기억해야 하는 불편함이 있고, 표준 HTTP/HTTPS 포트를 사용할 수 없다. ...

2025년 2월 25일 · 7 분 · 1375 단어 · In-Jun

미니PC Kubernetes #3: Longhorn 스토리지

개요 이전 글에서는 ArgoCD를 설치하여 GitOps 환경을 구축했다. 이번 글에서는 홈랩 쿠버네티스 클러스터에 Longhorn 분산 스토리지 시스템을 설치하고 구성하는 방법을 알아보며, 영구 스토리지가 필요한 이유와 다양한 스토리지 솔루션을 검토한 경험을 공유한다. 홈랩 환경의 스토리지 고민 홈랩 쿠버네티스를 구축하면서 가장 큰 고민 중 하나는 스토리지 구성이었으며, 데이터베이스나 모니터링 도구, 백업 시스템 같은 대부분의 실용적인 애플리케이션들은 파드가 재시작되거나 다른 노드로 이동해도 데이터가 유지되는 영구 스토리지(Persistent Storage)가 필요하다. 처음에는 다음과 같은 방법을 시도했다: ...

2025년 2월 25일 · 7 분 · 1373 단어 · In-Jun

미니PC Kubernetes #2: ArgoCD GitOps

개요 이전 글에서는 Dell OptiPlex Micro를 활용하여 홈랩 쿠버네티스 클러스터를 구성하고 기본 설정을 완료했다. 이번 글에서는 클러스터의 모든 구성요소를 Git 저장소에서 선언적으로 관리하기 위해 GitOps 도구인 ArgoCD를 설치하고 App of Apps 패턴을 적용하여 확장 가능한 인프라 관리 체계를 구축하는 방법을 다룬다. GitOps의 이해 GitOps란? GitOps는 2017년 Weaveworks의 Alexis Richardson이 처음 제안한 운영 모델로, Git 저장소를 인프라와 애플리케이션 구성의 단일 진실 공급원(Single Source of Truth)으로 활용하는 방식이며, 모든 인프라 변경 사항을 Git 커밋으로 추적하고 Pull Request를 통해 검토한 후 자동화된 프로세스를 통해 실제 환경에 반영함으로써 인프라를 코드처럼 관리할 수 있게 한다. ...

2025년 2월 25일 · 9 분 · 1739 단어 · In-Jun

미니PC Kubernetes #1: 클러스터 구축

개요 이 시리즈는 홈랩 환경에 쿠버네티스 클러스터를 구축하고 사이드 프로젝트나 테스트 환경을 위한 완전한 CI/CD 파이프라인을 구성하는 과정을 다루며, 클라우드 서비스 비용에 대한 부담 없이 집에서 직접 쿠버네티스를 운영하면서 컨테이너 오케스트레이션, 네트워킹, 스토리지, 모니터링, GitOps 등 다양한 클라우드 네이티브 기술을 실험하고 학습할 수 있는 환경을 구성하는 방법을 알아본다. 하드웨어 구성으로는 Dell OptiPlex Micro 다섯 대로 노드를 구성하고 TP-Link 라우터와 스위치로 네트워크를 구성했으며, Dell OptiPlex Micro는 전력 소모가 적은 미니 PC로 중고 시장에서 저렴하게 구할 수 있는 장점이 있고, 구매한 모델은 9세대 i5 CPU와 16GB 메모리, 256GB SSD로 구성되어 있어 쿠버네티스 워크로드를 충분히 처리할 수 있는 사양을 갖추고 있다. ...

2025년 2월 24일 · 7 분 · 1423 단어 · In-Jun

GitOps 배포 전략 Push vs Pull

GitOps는 Git을 단일 진실 공급원(Single Source of Truth)으로 사용하여 인프라와 애플리케이션의 선언적 상태를 관리하고 자동으로 배포하는 운영 방법론으로, 2017년 Weaveworks의 CEO인 Alexis Richardson이 처음으로 이 용어를 제안하면서 클라우드 네이티브 커뮤니티에 소개되었다. GitOps는 개발자들에게 익숙한 Git 워크플로우(Pull Request, 코드 리뷰, 브랜치 전략 등)를 인프라 운영 영역으로 확장한 것으로, Kubernetes와 같은 선언적 인프라 플랫폼과 결합하여 현대적인 DevOps 실천 방법의 핵심 패러다임으로 자리잡았다. GitOps의 탄생과 핵심 원칙 GitOps란? 모든 인프라 구성과 애플리케이션 설정을 Git 저장소에 선언적으로 정의하고, 이 저장소를 단일 진실 공급원으로 사용하여 실제 시스템 상태를 자동으로 동기화하는 운영 방법론이다. ...

2025년 2월 14일 · 7 분 · 1430 단어 · In-Jun
[email protected]