GitOps를 운영하며 다시 생각해 본 브랜치 전략과 디렉토리 전략
GitOps를 처음 도입하면 자연스럽게 고민하게 되는 것이 있다. DEV, STG, PRD 환경을 Git 저장소에서 어떻게 관리할 것인가? 그리고 어떤 방식이 우리 조직의 운영 방식에 더 적합할까? 처음에는 환경별 브랜치를 사용하는 구조가 가장 직관적으로 보인다. 실...
17 posts
GitOps를 처음 도입하면 자연스럽게 고민하게 되는 것이 있다. DEV, STG, PRD 환경을 Git 저장소에서 어떻게 관리할 것인가? 그리고 어떤 방식이 우리 조직의 운영 방식에 더 적합할까? 처음에는 환경별 브랜치를 사용하는 구조가 가장 직관적으로 보인다. 실...
1. 왜 '시끄러운 이웃'은 필연적으로 발생하는가? 쿠버네티스 운영의 핵심은 자원 공유(Resource Sharing)입니다. 하지만 공유는 필연적으로 경합(Contention)을 부릅니다. - 발생의 인과관계: 1. 물리 노드 하나에 여러 파드를 배치(Bin Pack...
1. 컨트롤러가 왜 필요한가? 쿠버네티스는 선언적(Declarative) 시스템이다. 사용자는 "nginx 3개를 띄워줘"라고 원하는 상태(Desired State)만 선언하고, 어떻게 할지는 말하지 않는다. API Server는 이 Desired State를 etcd...
--- 개념맵 - 핵심 키워드 연결 --- 1. 인프라 컨테이너 (pause container)란? 정의 - 각 Pod마다 자동 생성되는 숨겨진 컨테이너 - 앱 로직 없이 시스템 콜로 무한 대기만 수행 - Pod 내 컨테이너들이 공유하는 Linux Namespace의...
--- 1. 출발점: 쿠버네티스의 핵심 동작 (Starting point) 쿠버네티스는 오케스트레이션 엔진이다. 핵심 동작은 선언적 모델 — 사용자가 매니페스트(YAML)에 "이런 상태가 되어야 한다"고 선언하면, 시스템이 알아서 맞춰준다. 이 선언은 를 통해 API...
1. 도커 이미지는 레이어의 스택이다 레이어란? Dockerfile의 명령어(instruction) 하나 = 레이어 하나다. 각 레이어는 이전 레이어와의 차이(diff)만 저장한다. Git 커밋과 유사한 개념이다. 레이어의 크기 레이어의 크기에 상한선은 없다. 으로 5...
1. VM vs 컨테이너: 격리 방식의 차이 | 구분 | VM (가상 머신) | 컨테이너 | | --------- | ---------------------- | ----------------------...
폐쇄망 환경을 미니쿠베에서 구현하기 위하여, 아래와 같은 환경을 구축하였다. 1. 미니쿠베 시작 (Calico CNI) 2. calicoctl 설치 (버전 맞춤) 3. 환경변수 설정 4. GlobalNetworkPolicy 생성 및 적용 5. 테스트 6. 정책 관리 예...
> 목적: Minikube 환경에서 kubelet이 Harbor에서 이미지를 Pull하지 못하는 문제를 해결하기 위한 핵심 가이드. 복잡한 네트워크 아키텍처 설명 대신, 문제 상황과 해법만을 다룸. --- 1. 문제 증상 - Pod는 정상적으로 CoreDNS를 통해...
다음은 앱 소스 레포(app repository)와 앱 매니페스트 레포(app manifest / GitOps 레포)를 분리해 운영할 때의 실전 전략입니다. (Argo CD + Jenkins/GitHub Actions + Harbor 기준, Gitea/내부 레지스트리/...
1. Pipeline Utility Steps - 개념: Jenkins Pipeline에서 자주 쓰이는 유틸리티 함수 제공 - 대표 기능: - , → JSON 파일 읽기/쓰기 - , → YAML 파일 읽기/쓰기 - , , 등 압축 관련 기능...
--- 1. 프로젝트 개요 환경 정보 - Kubernetes: minikube - SonarQube: Community Edition (Helm Chart) - Jenkins: 기존 설치된 Jenkins 서버 - 언어: Python (Flask 애플리케이션) - CI/...
목차 1. 사전 요구사항 2. SonarQube 서버 설정 3. Jenkins 플러그인 설치 및 설정 4. SonarQube 프로젝트 설정 5. Jenkins 파이프라인 연동 6. Quality Gates 설정 7. 연동 테스트 8. 문제 해결 9. 베스트 프랙티스 1...
Jenkins 1. 현실적 운영 패턴 - 초기: UI로 잡 생성 → Jenkinsfile만 서비스 레포에 두고 운영 - 성장: 잡이 많아지면 seed job + Shared Library 도입 - 성숙: JCasC + DSL + GitOps 구조로...
1. 사건 개요 (Incident Summary) - 발생 일시: 2025년 10월 2일 - 발생 환경: Minikube 단일 노드 Kubernetes 클러스터 (Docker 드라이버 기반) - 관련 구성요소: Jenkins, Jenkins Agent, SonarQub...
#minikube #tunneling 1. HAProxy Ingress 설치 > 이 차트는 기본 IngressClass 이름이 haproxy로 설정되어 있어서, Ingress 리소스에 ingressClassName: haproxy를 써야 매칭돼. HAProxy Tech...
#GitOps #Infra #DevOps #개념 1. 정의 - GitOps는 운영(Operations)을 Git으로 관리하는 방법론 - 모든 인프라/애플리케이션의 원하는 상태(Desired State)를 Git에 선언적으로 정의 - Argo CD, Flux 같은 컨트롤...