728x90 2025/1018 GitOps Cookbook 6장: 클라우드 네이티브 CI/CD 6.0 들어가며쿠버네티스 시대의 CI/CD는 더 이상 외부의 빌드 서버(Jenkins 등)에 작업을 던져놓고 결과물을 받아오는 방식만으로 끝나지 않는다.빌드, 테스트, 이미지 생성, 보안 스캔, 매니페스트 렌더링, 실제 배포(쿠버네티스 apply/upgrade), 심지어 Git에 결과를 기록하고 PR을 만드는 것까지 전부 클러스터 내부에서 일어날 수 있다.이 장은 그 전체 체인을 Tekton(텍톤), Kustomize, Helm, 그리고 GitHub Actions까지 연결해서 보여준다:텍톤 설치 → Task → Pipeline → Trigger빌드/패키징/이미지 푸시쿠버네티스 배포변경 내용을 Git에도 반영 (GitOps 스타일 업데이트)마지막으로 GitHub Actions로 비교/연계6.1 텍톤 설치텍.. 스터디(Study)/CI·CD Study 2025. 10. 25. GitOps Cookbook 5장: 헬름 5.0 들어가며Helm은 쿠버네티스 애플리케이션을 “차트(chart)”라는 단위로 패키징하고, 템플릿 렌더링, 배포, 업그레이드, 롤백을 일관되게 다룰 수 있게 해주는 도구다. Helm은 kustomize처럼 매니페스트를 조합/변경할 수 있지만, 동시에 apt/yum 같은 패키지 관리자처럼 버전 있는 배포 아티팩트로 다룬다는 점이 다르다.운영 환경 기준에서 Helm 차트는 단순한 YAML 묶음이 아니라 배포 단위, 롤백 단위, 그리고 조직 표준(보안 컨텍스트, 라벨 정책 등)을 코드화해 강제하는 수단이다. Helm을 잘 설계하면 애플리케이션 팀과 플랫폼/보안 팀의 경계를 명확하게 만들 수 있다.5.1 헬름 프로젝트 생성Helm 차트란 무엇인가Helm 차트는 애플리케이션을 배포하는 데 필요한 쿠버네티스 리.. 스터디(Study)/CI·CD Study 2025. 10. 25. GitOps Cookbook 4장: 커스터마이즈 4. 커스터마이즈 (Kustomize)4.0 들어가며KustomizeHomeDocsIntroExtending쿠버네티스 리소스를 YAML로 정의하고 배포하는 과정은 단순하지만, 운영 단계에선 환경별 차이로 인해 복잡해진다.이를 해결하기 위해 등장한 도구가 Kustomize다.템플릿이 아닌 패치(Patch) 기반 선언적 구성 방식을 사용하며,GitOps 및 CI/CD 파이프라인에 자연스럽게 통합된다.4.1 커스터마이즈 개념 및 배경4.1.1 목적과 특징Base: 공통 리소스 정의 (Deployment, Service 등)Overlay: 환경별 패치 정의 (dev, staging, prod 등)중복을 제거하고 YAML을 재사용할 수 있다.Git 저장소와 결합하면 변경 이력을 추적하며 인프라를 코드로 관리할 수.. 스터디(Study)/CI·CD Study 2025. 10. 18. GitOps Cookbook 3장: 컨테이너 본 정리는 macOS(Apple Silicon/Intel 공통)에서 Docker Desktop + kind 환경을 기반으로, 컨테이너 이미지를 빌드/검증/배포하는 방법을 한 번에 따라 할 수 있도록 요약한 실습 가이드다. 예시의 모든 레지스트리 경로는 docker.io/chaany로 통일했다.3.0 들어가며컨테이너는 앱·런타임·라이브러리를 계층(layer) 구조로 패키징한 표준 포맷이며, OCI(https://opencontainers.org/) 표준을 따른다.개방형 표준(OCI) 덕분에 Docker, Jib, Buildah/Podman, Buildpacks, Shipwright(BuildKit) 등 다양한 도구로 이미지를 만들고 상호운용 가능하다.이하 절에서는 Dockerfile, Jib(자바), Bu.. 스터디(Study)/CI·CD Study 2025. 10. 18. GitOps Cookbook 2장: 실습 준비 본 장은 macOS 사용자를 대상으로 GitOps 실습 전 필요한 준비 과정을 정리한다. Docker Hub 계정은 chaany를 기준으로 예시를 제공한다.2.1 Docker Hub 계정 준비Docker Hub는 컨테이너 이미지를 관리/공유하는 대표 레지스트리 서비스다. macOS에서는 Docker Desktop을 통해 로컬 이미지를 빌드하고 Hub로 푸시할 수 있다.Docker Hub 가입: https://hub.docker.com/Docker Desktop 로그인(메뉴 → Sign in) 또는 CLI 로그인# CLI 로그인 (계정명: chaany)docker login -u chaany무료 계정은 공개 저장소 무제한, 비공개 저장소 1개(정책 변동 가능). Pull rate limit를 피하기 위해 .. 스터디(Study)/CI·CD Study 2025. 10. 18. GitOps Cookbook 1장: 소개 1.1 GitOps란?GitOps는 Git 저장소를 단일 소스(Single Source of Truth) 로 삼아 인프라를 코드로 관리(Infrastructure as Code) 하는 방법론이다.즉, 모든 인프라와 애플리케이션 배포를 Git을 통해 관리하고 자동화하는 방식이다.GitOps의 3대 핵심 원칙 (Pillars)Git은 단일 진실의 원천이다 — 모든 상태는 Git에서 관리된다.모든 것은 코드로 표현한다 — 설정과 인프라 모두 코드로 명시한다.Git 워크플로를 통해 운영한다 — Pull Request, Merge 등 Git 프로세스로 변경을 수행한다.OpenGitOps (CNCF 산하 프로젝트)GitOps 원칙을 정의하고 표준화한 워킹 그룹이다.공식 사이트GitHub 저장소4가지 핵심 원칙Dec.. 스터디(Study)/CI·CD Study 2025. 10. 18. ⑥편. EKS 네트워크 심층: conntrack과 Pod NAT 흐름 들어가며EKS에서 NLB나 ALB를 붙이면 종종 이런 증상이 생긴다."Pod로 요청이 들어오는데 일부만 응답이 안 와요."그 원인은 대부분 conntrack과 NAT 복원 실패다.NodePort 기반 흐름Client → NLB (DNAT) → Node (DNAT) → PodPod → Node (SNAT 복원) → NLB (SNAT 복원) → Client두 번 NAT이 발생하고, 모든 상태는 conntrack이 추적한다.IP 모드 (nlb-ip) 구조Client → NLB → Pod (직접 IP Target)홉 1단계 제거, NAT 1회 축소 → 성능 향상.eBPF 기반 구조eBPF는 커널의 conntrack을 우회하여 패킷을 직접 리디렉션한다.NAT 제거CPU 부하 감소고성능 트래픽 처리 가능요약EKS .. 프로그래밍공부(Programming Study)/CS-네트워크(Network) 2025. 10. 16. ⑤편. AWS WAF 작동 원리와 위치 들어가며WAF는 단순한 필터링 장비가 아니다.AWS에서는 L7 HTTP 요청을 분석하는 엔진이며,ALB 내부에서 TLS 복호화 이후 동작한다.WAF 실제 구조Client↓ALB├─ TLS Termination├─ WAF 검사 (HTTP Header / Body)├─ Routing Rule 평가└─ Target 전달즉, "Client → WAF → ALB"는 논리적 순서일 뿐,물리적으로는 WAF가 ALB 내부에 포함되어 있다.CloudFront + ALB + WAF 구조Client → CloudFront (WAF Edge)↓ALB (WAF Regional)↓Target두 개의 WAF 계층이 존재한다.CloudFront WAF: Edge 트래픽 필터링ALB WAF: Regional Application 검사.. 프로그래밍공부(Programming Study)/CS-네트워크(Network) 2025. 10. 15. ④편. ALB + NLB 결합 구조 3가지 패턴 들어가며ALB와 NLB는 상반된 성격을 가진다.ALB는 L7 지능형, NLB는 L4 초고성능.서로 보완적으로 설계하면 트래픽 성능과 유연성을 동시에 확보할 수 있다.1. ALB → NLB (L7 → L4)Client → ALB (TLS, Routing, WAF)↓NLB (L4 Forward)↓Target Node / PodALB에서 인증·WAF 처리 후 내부 실시간 서비스로 전달할 때 유용하다.예: /api/* 는 ALB 처리, /stream/* 은 NLB 전달.2. NLB → ALB (L4 → L7)Client → NLB (Static IP, TCP)↓ALB (TLS Termination, HTTP Routing)↓Target Group고정 IP가 필요한 HTTPS 서비스 구조.NLB는 Elastic .. 프로그래밍공부(Programming Study)/CS-네트워크(Network) 2025. 10. 14. ③편. ALB(Application Load Balancer) 완전 정리 들어가며ALB는 L7, 즉 애플리케이션 계층에서 작동한다.단순 패킷 전달이 아니라, 요청을 해석하고 새 요청을 생성하는 Full Proxy다.ALB 전체 트래픽 흐름Client↓[Internet Gateway]↓[ALB]├─ (L6) TLS Termination├─ (L7) WAF 검사├─ (L7) Host / Path 기반 라우팅├─ (L4) Target TCP 연결 생성↓[Target (EC2 / POD)]↓응답: Target → ALB (HTTP) → ALB → Client (HTTPS)TLS TerminationALB가 HTTPS 요청을 받으면ACM 인증서를 통해 TLS 해제HTTP Payload를 평문으로 변환Target으로는 평문 HTTP 전달(또는 재암호화 가능)ALB 내부 순서Client .. 프로그래밍공부(Programming Study)/CS-네트워크(Network) 2025. 10. 13. ②편. NLB(Network Load Balancer) 완전 정리 들어가며NLB는 AWS 로드밸런서 중 가장 빠르고 단순하다.하지만 그 단순함 속에는 커널 레벨의 conntrack, NAT, 세션 복원이 숨어 있다.NLB 트래픽 전체 흐름Client↓ (TCP SYN)[Internet Gateway]↓[NLB]├─ (L4) Port 기반 Target 선택├─ (L3) DNAT (NLB IP → Node IP)↓[Target Node]├─ (L3) DNAT (NodePort → Pod IP)├─ (L4) conntrack 등록↓[Pod]↓응답 경로: Pod → Node → NLB → Clientconntrack의 역할conntrack은 커널의 연결 상태 추적 테이블이다.상태의미NEW새로운 TCP 연결 시도ESTABLISHED양방향 통신 중RELATED기존 세션 관련 트래.. 프로그래밍공부(Programming Study)/CS-네트워크(Network) 2025. 10. 12. ①편. AWS 네트워크와 OSI 7계층 기초 들어가며AWS에서 ALB, NLB, WAF를 다뤄보면 이런 의문이 생긴다."이게 어느 계층에서 작동하는 거지?""트래픽이 몇 홉을 거쳐서 서비스까지 도달하는 거야?"이 첫 편에서는 AWS 네트워크를 OSI 7계층 위에서 어떻게 해석할 수 있는지 명확히 정리한다.OSI 7계층과 AWS의 대응 구조OSI 계층AWS 예시설명7. ApplicationALB, WAF, API Gateway요청 내용(HTTP Header, Path 등)을 인식6. PresentationTLS, ACM, SSL 인증서암호화 및 복호화 담당5. SessionSticky Session, 쿠키세션 지속 관리4. TransportNLB, TCP, UDP포트 기반 연결 관리3. NetworkVPC, Subnet, Route TableIP 기.. 프로그래밍공부(Programming Study)/CS-네트워크(Network) 2025. 10. 12. 이전 1 2 다음 728x90