홈랩 #7 - CI/CD 구축해서 배포 자동화하기 (1)

개요 이전 글에서는 홈랩 쿠버네티스 클러스터에 Vault를 설치하고 시크릿 관리 시스템을 구축했다. 이번 글에서는 CI/CD 시스템의 기반이 되는 세 가지 핵심 컴포넌트인 Harbor 레지스트리, Argo Events, Argo Workflows를 설치하고 기본 설정하는 방법을 알아본다. CI/CD 시스템의 구성 요소 홈랩 환경에서 완전한 CI/CD 파이프라인을 구축하기 위해서는 다음과 같은 핵심 컴포넌트들이 필요하다: 컨테이너 레지스트리: 빌드된 이미지를 저장하고 관리하는 저장소 이벤트 처리 시스템: 코드 변경 등의 이벤트를 감지하고 처리하는 시스템 워크플로우 엔진: 빌드, 테스트, 배포 등의 작업을 실행하는 엔진 선언적 배포 시스템: 배포 상태를 관리하고 동기화하는 시스템 이 중 4번(선언적 배포 시스템)은 이미 이전 글에서 설치한 ArgoCD가 담당한다. 이번 글에서는 나머지 세 가지 컴포넌트를 설치하고 구성한다. ...

2월 28, 2025 · 8 분 · 1584 단어 · In-Jun Hwang

홈랩 #6 - Vault를 활용한 시크릿 관리

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

2월 26, 2025 · 11 분 · 2221 단어 · In-Jun Hwang

홈랩 #5 - 외부에서도 접속할 수 있게 만들기

개요 이전 글에서는 홈랩 쿠버네티스 클러스터에 Traefik 인그레스 컨트롤러를 설치하고 내부 관리 서비스에 안전하게 접근할 수 있도록 설정했다. 이번 글에서는 홈랩 쿠버네티스 클러스터의 서비스를 외부에서 접근할 수 있도록 설정하는 방법을 알아본다. 네트워크 아키텍처 요약 먼저 우리의 네트워크 아키텍처를 간략히 요약해보자: 내부용 로드밸런서(192.168.0.200): 관리 인터페이스만 노출하고 내부 네트워크에서만 접근 가능 외부용 로드밸런서(192.168.0.201): 공개 서비스만 노출하고 포트포워딩을 통해 외부에서 접근 가능 이렇게 설계하면 서비스 수준에서 분리가 이루어져 실수로 중요한 관리 인터페이스가 외부에 노출될 위험이 줄어든다. ...

2월 26, 2025 · 9 분 · 1819 단어 · In-Jun Hwang

홈랩 #4 - 내부 서비스 접근 구성하기

개요 이전 글에서는 Longhorn 분산 스토리지 시스템을 설치했다. 이번 글에서는 홈랩 쿠버네티스 클러스터에 Traefik 인그레스 컨트롤러를 설치하고 내부 네트워크를 구성하는 방법을 알아본다. 인그레스 컨트롤러 선택 홈랩 환경에서 쿠버네티스 서비스를 외부에 노출하는 방법은 여러 가지가 있다: NodePort: 각 노드의 특정 포트(30000-32767)를 통해 서비스에 접근 LoadBalancer: MetalLB와 같은 로드 밸런서 구현체를 사용 Ingress: HTTP/HTTPS 트래픽을 서비스로 라우팅하는 규칙 정의 NodePort는 설정이 간단하지만 포트 번호를 기억해야 하는 불편함이 있고, LoadBalancer는 각 서비스마다 별도의 IP가 필요하다. 반면 인그레스 컨트롤러는 URL 경로와 호스트 이름 기반 라우팅, SSL/TLS 종료, 인증 등 다양한 기능을 제공하므로 홈랩 환경에서 가장 적합한 방법이다. ...

2월 25, 2025 · 7 분 · 1293 단어 · In-Jun Hwang

홈랩 #3 - 쿠버네티스 스토리지 구성하기

개요 이전 글에서는 ArgoCD를 설치하여 GitOps 환경을 구축했다. 이번 글에서는 홈랩 쿠버네티스 클러스터에 Longhorn 분산 스토리지 시스템을 설치하고 구성하는 방법을 알아본다. 홈랩 환경의 스토리지 고민 홈랩 쿠버네티스를 구축하면서 가장 큰 고민 중 하나는 스토리지 구성이었다. 데이터베이스, 모니터링 도구, 백업 시스템 등 대부분의 실용적인 애플리케이션들은 영구 스토리지가 필요하다. 처음에는 다음과 같은 방법을 시도했다: 로컬 스토리지: 각 노드의 로컬 스토리지를 사용했지만, 파드가 다른 노드로 재스케줄링되면 데이터에 접근할 수 없는 문제가 발생했다. ...

2월 25, 2025 · 5 분 · 949 단어 · In-Jun Hwang