0. 들어가며기존에는 Jenkins + ArgoCD 조합으로 CI/CD를 구성하고 있었지만, 중앙 집중형 파이프라인 관리에 대한 대안을 찾던 중 GoCD를 알게 되어 간단히 학습해보고자 한다. 이번 포스팅에서는 GoCD가 어떤 도구인지 간단히 소개하고, Kubernetes 환경에서의 설치 방법과 기본 파이프라인 구성 및 실행 과정까지 단계별로 정리해 본다. 1. GoCD 란 GoCD는 ThoughtWorks에서 만든 오픈소스 CI/CD 파이프라인 도구이다.특히 지속적 배포(Continuous Delivery)에 초점을 두고 설계된 툴로, 복잡한 배포 흐름을 시각적으로 표현하고 관리하기에 강점이 있다. Jenkins처럼 자유롭게 커스터마이징 가능한 플러그인 시스템은 부족하지만, 대신 파이프라인 간의 의존..
📌 해당 글은 가시다님의 AEWS 스터디 중, AWS EKS Upgrade Workshop에 대한 실습 정리 글입니다. 실습환경을 제공해주신 최영락 님에게 감사드립니다.먼저, 쿠버네티스 업그레이드 이해하기Amazon EKS 업그레이드를 논하기 전에, 먼저 Kubernetes 업그레이드의 기본 개념부터 살펴봅니다.쿠버네티스는 여러 컴포넌트가 서로 상호작용하는 분산 시스템으로, 단순히 버전만 올리는 작업이 아니라, 구성요소 간의 호환성과 순서를 고려해야 합니다. 지원 되는 버전Kubernetes는 가장 최근의 3개 마이너 버전만 공식 패치를 제공합니다.예를 들어 현재 시점 기준으로는 v1.30 v1.31 v1.32가 패치 대상이며, v1.29 이하의 버전에서는 보안 패치조차 지원되지 않습니다.참고로..
어느 날 파드가 일시적으로 죽다.어느 날, 사내 인프라 미들웨어에서 이상 현상이 발생했다. 간헐적으로 일부 특정 파드가 재기동되는 상황이 반복되고 있었고, 이는 단순한 장애라기보다는 반복적으로 나타나는 패턴성 문제처럼 보였다.재기동되는 파드를 확인해 보니 주로 Harbor와 MinIO가 포함되어 있었다. 특히 Harbor는 내부 CI/CD 파이프라인에서 컨테이너 이미지 레지스트리로 사용되고 있기 때문에, 이 문제가 빌드 프로세스 전반에도 영향을 주고 있었다.문제 원인을 파악해보자.Phase 1: 애플리케이션 로그 확인먼저, 파드 내부 애플리케이션 로그를 확인했다.harbor-core 파드가 SIGTERM 신호를 받아 정상적으로 종료된 로그를 확인할 수 있었지만, 이는 종료 “과정”에 대한 로그일 뿐, 종..
FargateFargate란? EKS Fargate는 AWS에서 제공하는 서버리스 Kubernetes 컴퓨팅 서비스입니다. 일반 EKS는 컨트롤 플레인만 AWS가 관리하지만, Fargate는 데이터 플레인까지 관리해 주므로 인프라 걱정 없이 애플리케이션 개발에 집중할 수 있습니다. 하지만, AWS에서 데이터플레인까지 관리하는 영역이 넓어진 만큼, 여러 가지 제약사항과 고려사항이 존재합니다.CPU와 메모리는 정해진 단위(예: 0.25, 0.5, 1.0 vCPU 및 512MB, 1GB 등)로만 할당할 수 있습니다.데몬 셋은 Fargate에서 지원하지 않습니다.특권 컨테이너(Privileged containers)가 지원되지 않습니다.HostPort 또는 HostNetwork를 지정할 수 없습니다Fargate..
암호화란?암호화란 정보를 보호하기 위해 평문(원본 데이터)을 특정 알고리즘을 통해 암호문(이해할 수 없는 형태)으로 변환하는 과정이다.암호에 대해서 가장 중요한 것은 기밀성을 제공하는 것이다.현대 사용하는 암호화 방식에는 대칭 암호화, 비대칭 암호화, 해쉬 크게 3가지가 있다.대칭키 암호화대칭키 암호화는 암호화와 복호화에 동일한 키를 사용하는 방식으로, 일반적인 자물쇠와 열쇠의 관계와 유사하다. 하나의 열쇠로 자물쇠를 잠그고 같은 열쇠로 여는 것처럼, 하나의 비밀키로 데이터를 암호화하고 같은 키로 복호화한다. 비대칭키 암호화에 비해 알고리즘이 단순하여 CPU 리소스 소모가 적고 처리 속도가 빠른 장점이 있다. 대표적인 알고리즘에는 DES, AES, SEED, ARIA 등의 있다. 암호화 실습(AES) 아..
1. Karpenter란?AWS Karpenter는 Kubernetes 클러스터의 노드 프로비저닝을 자동화하는 오픈소스 도구로, Kubernetes 네이티브 오토스케일러입니다. 워크로드 요구사항에 맞게 적절한 컴퓨팅 리소스를 실시간으로 프로비저닝 하여 클러스터의 효율성과 비용 최적화를 동시에 달성합니다.Cluster Autoscaler vs KarpenterCluster Autoscaler?CAS(Cluster Autoscaler)는 클러스터에서 파드가 스케줄링되지 못하는 상황을 감지하고 클러스터의 노드 수를 자동으로 조정하는 도구입니다.EKS에서는 ASG(Auto Scaling group)을 이용하여 노드의 수를 조정하였습니다. 기존에는 노드 프로비저닝 자동화 도구로 CA(Cluster Autosca..
1. Grafana Alloy 개요Grafana Agent에 대해 알아보려던 중, 공식 문서에서 경고 문구를 발견하였다. Grafana Labs에서 Grafana Agent를 대체하는 새로운 솔루션인 Grafana Alloy를 발표했다는 내용이었다. 이에 따라 자연스럽게 Grafana Alloy에 대해 알아보기로 하였다. Grafana Alloy는 다음과 같은 특징을 가지고 있다고 한다.Grafana Agent의 후속 제품으로, 기존 Agent의 기능을 개선하고 확장Istio와 같은 서비스에서 발생하는 방대한 커스텀 메트릭을 효율적으로 필터링하여 필요한 메트릭만 수집할 수 있다.기존 Grafana Agent에서 Alloy로의 마이그레이션 방법을 공식적으로 제공하고 있어 기존 사용자들의 전환이 용이하다.그..
CSI(Container Storage Interface)란?CSI(Container Storage Interface)는 쿠버네티스가 다양한 스토리지 시스템과 쉽게 연결될 수 있도록 만든 표준 인터페이스이다. 예전에는 AWS EBS 같은 스토리지 기능이 쿠버네티스 코드 안에 직접 포함되어 있어서, 스토리지 기능을 업데이트하려면 쿠버네티스 전체를 업그레이드해야 했다. 이런 불편함을 해결하기 위해 스토리지 관련 코드를 외부로 분리한 것이 바로 CSI이며, 이를 통해 스토리지 기능을 필요할 때마다 독립적으로 추가하고 업데이트할 수 있게 되었다. 다양한 벤더사의 CSI Driver가 존재하지만, AWS EBS CSI Driver로 예를 들면, csi-controller 파드(Statefulset or Deplo..