Etcd 분산 저장소 아키텍처 분석 및 운영 가이드
Etcd 개요
Etcd 란 무엇인가?
Etcd 는 2013 년 CoreOS 팀에서 시작한 오픈소스 프로젝트로, 고가용성을 갖춘 분산 키 - 값 (Key-Value) 저장소를 구축하는 것을 목표로 합니다. 내부적으로 raft 합의 알고리즘을 사용하여 데이터 일관성을 보장하며, Go 언어로 구현되었습니다.
명칭의 유래는 Unix 시스템의 설정 폴더인 /etc 와 분산 시스템 (Distributed System) 의 d 를 ...
10월 4일 14:25에 게시됨
GitLab과 Kubernetes 연동을 통한 자동화된 CI/CD 파이프라인 구축
소스 코드 저장소 준비
먼저 GitLab 프로젝트를 생성하고 샘플 애플리케이션 코드를 업로드합니다. 예시 프로젝트 주소는 다음과 같습니다:
https://gitee.com/SunHarvey/helloworld_java.git
로컬 환경에서 다음 명령어를 실행하여 코드를 가져오고 원격 저장소에 푸시합니다:
git clone https://gitee.com/SunHarvey/helloworld_java.git
cd helloworld_java
git remote ...
10월 2일 03:58에 게시됨
Kubernetes에서 Pod 컨트롤러: Deployment와 DaemonSet의 핵심 개념 및 실습
1. Pod 컨트롤러 개요
1.1 Pod 컨트롤러 정의
Pod 컨트롤러는 클러스터 내 Pod 자원의 상태를 관리하는 중간 계층입니다. 예상 상태와 실제 상태가 일치하도록 보장하며, Pod 오류 시 재시작 및 재생성을 담당합니다.
1.2 주요 기능
Pod 오류 시 재시작
재시작 정책 실패 시 새 Pod 생성
1.3 컨트롤러 종류
ReplicaSet: 지정된 Pod 복사본 수 유지
Deployment: 무상태 ...
10월 2일 03:08에 게시됨
Kubernetes Ingress Controller 설치 및 활용
Kubernetes 환경에서 L7 트래픽 라우팅을 구현하는 몇 가지 솔루션이 있습니다. 본 문서에서는 ingress-nginx를 활용한 L7 로드밸런싱 구현 방법을 중점적으로 다룹니다.
Ingress Controller 설치
ingress-nginx는 Kubernetes 클러스터 내에서 Ingress 리소스를 관리하고 트래픽을 해당 백엔드 서비스로 라우팅하는 컨트롤러입니다. 설치는 다음과 같은 단계를 따릅니다. ...
9월 22일 21:03에 게시됨
Kubernetes 환경의 컨테이너 로그 수집 아키텍처와 구현
Kubernetes 로그 수집의 기본 개념
Kubernetes 클러스터에서 관리해야 하는 로그는 크게 두 가지로 분류됩니다.
시스템 및 컴포넌트 로그: /var/log/messages와 같은 OS 레벨의 로그와 kubelet, kube-apiserver 등의 컴포넌트 로그.
애플리케이션 비즈니스 로그: 클라우드 네이티브 방식으로 개발된 앱의 표준 출력(Stdout) 로그와, 기존 레거시 앱이 컨테이너 내부 파일 ...
9월 18일 03:43에 게시됨
Kubernetes에서 Ingress 애노테이션을 활용한 단계적 배포 실습
현대의 마이크로서비스 아키텍처에서는 응용 프로그램의 업데이트와 배포가 매우 빈번하고 중요한 작업입니다. 사용자 경험에 영향을 주지 않으면서 안전하고 원활하게 새로운 버전의 애플리케이션을 프로덕션 환경으로 이동시키는 것은 모든 개발자와 운영 팀이 해결해야 할 과제입니다. 단계적 배포(그레이스풀 리릴리즈)는 출시 위험을 줄이는 데 효과적인 점진적인 배 ...
9월 13일 23:56에 게시됨
Calico VXLAN 네트워크 모드 설정 및 동작 원리
Calico VXLAN 모드
1. 환경 정보
호스트
IP 주소
ubuntu
172.16.94.141
소프트웨어
버전
docker
26.1.4
helm
v3.15.0-rc.2
kind
0.18.0
clab
0.54.2
kubernetes
1.23.4
ubuntu os
Ubuntu 20.04.6 LTS
kernel
5.11.5 커널 업그레이드 문서
2. 서비스 설치
`kind` 구성 파일 정보
$ cat setup-cluster.sh
#!/bin/bash
date
set -v
...
9월 3일 11:02에 게시됨
Spring Boot 3.2와 Vue 3로 구축한 고병렬성 블로그: Kubernetes 로그 모니터링 시스템을 통한 Prometheus에서 ELK까지의 전반적인 분석
*실제 수백만 PV 블로그 아키텍처 진화 경험 기반, 클라우드 네이티브 환경에서의 고병렬 설계 및 전면 관측 시스템 구현에 대한 상세 설명
1 고병렬 블로그 아키텍처 핵심 설계
(1) 기술 스택 선택 근거
그림1: 기술 스택 능력 토폴로지
각 기술 구성 요소들이 고병렬 시나리오에서 핵심 문제를 해결하는 방식을 보여줍니다: Spring Boot 3.2의 가상 스레드는 차단 I/O ...
8월 31일 13:07에 게시됨
제어 평면 추상화와 데이터 모델링: 시스템 관계를 정의하는 아키텍처 설계 원칙
제어 평면 추상화로서의 데이터 모델링
데이터 모델은 단순한 데이터베이스 테이블 스키마 설계를 넘어선다. 현대의 복잡한 분산 시스템에서 데이터 모델은 제어 평면(Control Plane)이 물리적 인프라와 비즈니스 로직의 관계를 추상화하는 정밀도를 결정한다. 관계형, 문서형, 그래프 모델 중 어떤 방식을 선택하느냐는 데이터베이스 엔진의 성능 논쟁이 아니라, 시스템이 ...
8월 29일 14:17에 게시됨
Nova를 활용한 Helm 차트 버전 관리: 설치부터 고급 설정까지
Kubernetes 환경에서 Helm 차트 버전을 관리하는 것은 운영 효율성과 보안에 직결된 과제입니다. Nova는 클러스터에 설치된 Helm 차트를 자동 스캔하여 구버전이나 폐기된 차트를 식별해 주는 오픈소스 도구입니다. 이 도구를 사용하면 복잡한 마이크로서비스 아키텍처에서도 수십, 수백 개의 차트 상태를 한눈에 파악할 수 있습니다.
Nova의 핵심 기능
클러스터 내 모든 ...
8월 28일 21:04에 게시됨