YUMSERV
기존 멀티클러스터 배포 방식을 App of Apps 패턴으로 전환한 이유
DEV/CI CD 2025. 11. 27. 09:25

변경 배경기존 회사에서는 인프라 환경용 Application들을 모두 단일 배포로 묶어서 관리하고 있었습니다.또한 멀티 클러스터 환경임에도 불구하고 각 클러스터마다 별도의 Argo CD 인스턴스를 운영했기 때문에,환경 관리와 배포 작업이 반복되고, 변경 사항을 모든 클러스터에 동일하게 적용하는 데 많은 시간이 소요되었습니다.이러한 구조는 다음과 같은 불편함을 만들었습니다.동일한 인프라 리소스를 클러스터별로 반복 등록 및 배포공통 구성 버전 관리가 어렵고, 환경별 차이로 인한 누락 발생신규 클러스터 추가 시 배포 작업량이 기하급수적으로 증가해결 방향운영 효율성을 높이기 위해 개발자가 사용하는 Argo CD는 그대로 유지하면서,인프라 전용 Argo CD를 별도로 구축하여 모든 클러스터를 하나로 연결하는 방식..

article thumbnail
[Kafka] KRaft 에 대해 알아보자.
DEV/Kafka 2025. 11. 27. 09:16

Apache Kafka 4.0 버전부터는 클라우드 네이티브 환경 최적화를 주요 목표로 하고 있습니다. 가장 큰 변화는 ZooKeeper 의존성을 완전히 제거하고 KRaft(Kafka Raft) 모드로 전환하는 것입니다.이 글에서는 기존 ZooKeeper 기반 아키텍처와 KRaft 아키텍처의 차이점, 장점, 그리고 전환 과정에서 고려해야 할 점들을 정리해 보겠습니다.---1. 기존 ZooKeeper 기반 아키텍처의 한계Kafka는 오랫동안 클러스터 메타데이터 관리를 위해 외부 시스템인 ZooKeeper에 의존해왔습니다. #### 역할- ZooKeeper: 모든 메타데이터를 저장하고 관리하는 중앙 시스템- Kafka 브로커 중 하나가 컨트롤러로 선출되어 ZooKeeper와 통신, 메타데이터 전파#### 한..

ArgoCD Multi Cluster Setting
DEV/CI CD 2024. 4. 10. 14:18

대규모 조직이나 여러 환경(Dev/Prod)을 운영하는 경우, 각각의 Kubernetes 클러스터에 Argo CD를 설치하는 것은 관리 포인트가 많아지고 운영이 복잡해질 수 있습니다.이 글에서는 하나의 중앙 Argo CD 인스턴스로 여러 Kubernetes 클러스터를 관리하는 Multi-Cluster GitOps 환경 구성 방법을 소개합니다.목적Infra 전용 Argo CD 인스턴스를 통해 여러 환경(EKS Dev/Prod 등)의 리소스를 통합 관리Argo CD의 cluster add 기능을 활용해 멀티 클러스터로 애플리케이션 배포동일한 GitOps Workflow를 모든 클러스터에 일관성 있게 적용ArgoCD Multi-Cluster Setting1. 네트워크 연결 확인멀티 클러스터 구성을 위해서는 A..

Keycloak + ArgoCD 연동
DEV/CI CD 2024. 1. 29. 06:18

Argocd란?ArgoCD는 Kubernetes를 위한 GitOps 기반의 CD 도구 입니다. Git 저장소를 Source 저장소로 담고, ArgoCD를 통해 Kubernetes 리소스를 클러스터에 자동으로 배포하고 동기화합니다.Keycloak + Argocd 연동ArgoCD는 기본적으로 여러 인증 방식을 지원하며, 그중 OIDC(OpenID Connect)를 통해 외부 IdP(Keycloak 포함)와 쉽게 통합할 수 있습니다. 이 글에서는 Keycloak을 ArgoCD의 인증 공급자로 연동하는 방법을 알아보고자 합니다.연동 구성 개요Keycloak에서 ArgoCD용 클라이언트(Client) 생성Keycloak Realm 설정 (scope, mapper 포함)ArgoCD에 OIDC 설정 적용 (argoc..

article thumbnail
[Clickhouse] Clickhouse 정의
DEV/Clickhouse 2023. 5. 10. 22:08

Clickhouse https://github.com/clickhouse/clickhouse GitHub - ClickHouse/ClickHouse: ClickHouse® is a free analytics DBMS for big data ClickHouse® is a free analytics DBMS for big data. Contribute to ClickHouse/ClickHouse development by creating an account on GitHub. github.com 아래 내용글들은 kakaoif2020 에서 소개된 내용을 정리한것입니다. https://tv.kakao.com/channel/3693125/cliplink/414129353 clickhouse란 - Distribut..

RVM - RUBY 버전별 설치
DEV 2023. 1. 30. 23:16

RUBY RVM 으로 버전별 설치가 가능합니다. 1. 필수 패키지 설치 yum install curl gcc gcc-c++, readline-devel, zlib-devel, libyaml-devel, libffi-devel, openssl-devel, autoconf, automake, libtool, bison 2. RVM 설치 - RVM 설치 시, RUBY 최신버전도 같이 설치됩니다. curl -L https://get.rvm.io | bash -s stable --ruby source /usr/local/rvm/scripts/rvm rvm list =* ruby-3.0.0 [ x86_64 ] # => - current # =* - current && default # * - default 참고 더..

article thumbnail
무중단 배포
DEV/CI CD 2023. 1. 16. 23:16

롤링 배포(Rolling Deployment) 무중단 배포의 가장 기본적인 방식 사용 중인 인스턴스 내에서 새 버전을 점진적으로 교체하는 방식 서비스 중인 인스턴스 하나를 로드밸런서에서 제거한 뒤, 새 버전을 배포 후 다시 라우팅하도록 하는 과정을 반복하여 모든 인스턴스에 새 버전의 애플리케이션을 배포 인스턴스마다 차례로 배포를 진행하기 때문에 상황에 따라 손쉽게 롤백이 가능한 장점 새 버전을 배포할 때 로드 밸런싱에 연결된 인스턴스 수가 감소하기 때문에 서비스 처리 용량을 고려해야 함 또한 서버가 여러대일 경우 배포가 진행되는 동안 구버전과 신버전이 공존하기 때문에 호환성 문제가 발생할 수 있음 블루-그린 배포(Blue-Green Deployment) 블루를 구버전, 그린을 신버전으로 지칭 신규 서버가..

article thumbnail
NVM 설치
DEV 2022. 11. 4. 19:17

nvm을 사용하는 이유 ? 기존에 nodejs를 설치하게 되면, 구버전대가 설치가 됨. 최신버전으로 설치하기 위함도 있고, 프로젝트가 여러개일 경우, 여러개의 NODEJS를 사용하기 위함. nvm 설치 방법 wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash vi .bashrc export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_complet..

pip 버전업시 에러 def read(rel_path: str) -> str:^SyntaxError: invalid syntax
DEV 2022. 11. 4. 19:17

pip 버전을 업그레이드를 진행하려고 했으나, 에러메시지가 뜨면서 버전업이 진행이 되지 않았습니다. [문제 에러코드] pip install --upgrade pip Cache entry deserialization failed, entry ignored Collecting pip Downloading https://files.pythonhosted.org/packages/f8/08/7f92782ff571c7c7cb6c5eeb8ebbb1f68cb02bdb24e55c5de4dd9ce98bc3/pip-22.3.tar.gz (2.1MB) 100% |████████████████████████████████| 2.1MB 498kB/s Complete output from command python setup.py..

[Python] does not support timestamps before 1980
DEV 2022. 10. 23. 22:24

PYTHON으로 패키지를 설치중, 아래와 같은 에러가 발생하였습니다. File "/root/.pyenv/versions/3.5.3/lib/python3.5/zipfile.py", line 338, in __init__ raise ValueError('ZIP does not support timestamps before 1980') ValueError: ZIP does not support timestamps before 1980 현재 설치하고자 하는 패키지를 확인해보니, 파일의 시간대가 전부 1970년대로 변경이 되어있었습니다. # ls -al total 224 drwxr-xr-x 6 1001 121 4096 Oct 21 08:38 . drwxr-xr-x 9 root root 4096 Oct 21 08:..