기본적으로 Git 리포지토리를 수정하여 상태를 동기화하는 것이 GitOps의 정석적인 방식이겠지만, 개발 환경 ArgoCD에서 Auto Sync를 활성화하고, API를 통해 버전 정보만 갱신하여 Parameter Override를 수행하는 방식을 해봤다. 1. 인증 토큰(JWT) 발급ArgoCD API를 호출하기 위해서는 먼저 세션 토큰을 발급받아야 한다. 관리자 또는 사용자 계정 정보를 사용하여 /api/v1/session 엔드포인트에 POST 요청을 보낸다.ARGOCD_TOKEN=$(curl -s -k -X POST \ -H "Content-Type: application/json" \ -d '{"username":"", "password":""}' \ https://${ARGOCD_SERVER..
전체 글
Airflow에서 DAG파일을 관리하고 배포하는 방식은 여러 가지가 있다. 이전에는 nfs를 pv로 활용해서 nfs스토리지에 DAG파일을 놓고 사용해봤고 더 효율적인 방법을 위해 gitsync를 설정해보자.1. SSH 키 생성 및 GitHub 등록Git 저장소에 안전하게 접근하기 위해 SSH 키 쌍을 생성한다.# SSH 키 생성 (RSA 4096bit)ssh-keygen -t rsa -b 4096 -C "your_email@example.com"생성 경로: /root/.ssh/id_rsa_airflowPassphrase: 입력하지 않고 엔터로 진행한다.생성된 공개키(id_rsa_airflow.pub)의 내용을 복사하여 GitHub Repository > Settings > Deploy keys에 등록한다..
Airflow 학습을 목적으로 Upbit API를 활용해 매시간 비트코인(KRW-BTC) 분봉 데이터를 수집하고 저장하는 파이프라인을 만들어보자. 데이터 저장소는 Kubernetes 환경에 Rook Ceph를 배포하여 구축한 S3 호환 Object Storage를 사용했다.데이터는 Raw 형태(JSON)로 먼저 저장한 후, 분석 효율을 위해 Parquet 포맷으로 변환하여 Processed 영역에 다시 저장한다.1. Airflow Connections 설정DAG 코드 내에서 인증 정보를 하드코딩하지 않고, Airflow의 Connection 기능을 활용해 안전하게 관리한다.1.1 S3 Connection (Rook Ceph)Rook Ceph로 생성한 S3 버킷에 접근하기 위한 설정이다. Connectio..
Rocky Linux 8.10이 설치된 가상머신(VM) 4대로 구성된 Kubernetes 클러스터 환경을 기준으로 Rook Ceph(v1.18.8)를 배포하고, Object Storage를 구성하는 과정을 기술한다. 각 VM은 Kubernetes 노드로 동작 중이며, Ceph 스토리지 구성을 위한 별도의 블록 디바이스가 할당된 상태를 전제로 한다.1. 사전 요구 사항 (Prerequisites)Rook Ceph를 설치하기 전, Rocky Linux 8.10 노드에서 스토리지 구성을 위한 사전 작업이 필수적이다. 특히 Ceph OSD(Object Storage Daemon)로 사용할 디스크는 어떠한 파일 시스템이나 파티션도 존재하지 않는 Raw Device 상태여야 한다. 나는 control-plane노드..