
✅ Kafka Connect 커스텀 SMT 배포 방식 3종 비교표 항목 🔧 ConfigMap📦 PVC (PersistentVolumeClaim) 🚀 InitContainer파일 크기 제한⚠️ 있음 (1MB 이하 권장)✅ 제한 없음 (스토리지 크기만큼)✅ 제한 없음 (네트워크 전송 한계만)JAR 포함 수량소수 (1~2개 적당)다수 가능다수 가능복잡도⭐ 낮음 (가장 간단함)⭐⭐ 중간 (PVC 설정/복사 필요)⭐⭐ 중간 (Init 스크립트 필요)SMT 교체 방식ConfigMap 재생성 + 재배포JAR 복사 + 재시작URL 변경 + 재배포GitOps 통합✅ 매우 쉬움 (kubectl apply)🔧 수동 복사 + CI 필요✅ URL로 버전 제어, Git 관리에 유리스토리지 의존성❌ 없음✅ 필요 (RW..
initContainer는 Pod의 메인 컨테이너가 시작되기 전에 실행되는 준비용 컨테이너입니다.즉, Kafka Connect가 실행되기 전에 SMT JAR을 다운로드하거나, 초기화 작업을 처리할 수 있습니다.🎯 InitContainer 활용 목적 (Kafka Connect SMT에 적용 시)사용이유 설명📥 SMT JAR 원격 다운로드S3, GitHub, HTTP 서버 등에서 jar 파일 다운로드🔁 동적 SMT 교체 가능CI에서 JAR을 올려두고, initContainer가 다운📦 Docker 이미지에 SMT 포함 안 해도 됨이미지 관리 간편화🔧 CI/CD 연동 가능버전 태그로 URL만 바꾸면 자동 배포 가능📁 예제 구조kafka-connect-gitops/├── helm/│ └── kaf..
🎯 목적: 커스텀 SMT JAR을 PVC(영속 볼륨)에 저장하여 Kafka Connect에서 플러그인으로 자동 로딩 🗂️ 전체 디렉토리 구성 예시kafka-connect-gitops/├── helm/│ └── kafka-connect-values.yaml├── connectors/│ ├── my-source.json│ └── ...├── smt/│ └── custom-smt/│ └── src/main/java/com/example/CustomSMT.java├── plugins/│ └── kafka-connect-custom-smt.jar ← 여기서 빌드됨├── scripts/│ ├── build-smt.sh│ └── copy-jar-to-pvc.sh ..
목표커넥터 설정(JSON) GitOps화Kafka Connect 인프라 Helm 배포커스텀 SMT 빌드, 배포, 반영 자동화전체 흐름을 Git + CI/CD + Helm + REST로 통합 관리📁 1. GitOps 디렉토리 구조 예시kafka-connect-gitops/├── helm/│ └── kafka-connect-values.yaml # Helm 설정├── connectors/│ ├── mongo-source.json│ ├── s3-sink.json│ └── ...├── smt/│ ├── build.gradle│ ├── settings.gradle│ └── custom-smt/│ └── src/main/java/com/example/smt/Cu..
Kafka Connect SMT 멀티레포를 Git Submodule로 관리하면서,각 모듈을 개별로 개발 및 빌드 가능하게 유지하고,전체 통합(fat-jar) 빌드와 자동 배포까지 가능한 구조📦 전체 구조 요약📁 smt-core.git ← 공통 유틸 (JSON, logging 등)📁 smt-mask-email.git ← SMT 기능 A (email 마스킹)📁 smt-http-lookup.git ← SMT 기능 B (HTTP enrich)📁 smt-all.git ← 통합 레포 (submodule로 모든 모듈 포함 + fat-jar 빌드)🧱 1. 레포 연결 (Git Submodule 구성)smt-all 레포에서 아래처럼 설정:g..
🐳 containerd란?containerd는 CNCF(Cloud Native Computing Foundation)가 관리하는 고성능 컨테이너 런타임입니다.한 줄 정의🧩 "컨테이너를 다운로드하고, 실행하고, 멈추고, 삭제하는 역할만 하는 경량화된 런타임"📦 containerd의 역할기능 설명기능설명이미지 관리Docker 이미지 pull/push, 저장소 관리컨테이너 실행컨테이너 생성, 시작, 중지, 삭제스냅샷 관리overlayfs 등으로 컨테이너 계층 관리네임스페이스 관리격리된 컨테이너 그룹 구성이벤트 처리컨테이너 상태 이벤트 제공OCI 준수OCI 표준을 따름🧱 containerd는 어디서 쓰일까? 플랫폼/도구 containerd 사용 여부Docker (20.10+)✅ 내부에서 container..
🚀 Jenkins 설치 방법 (Ubuntu 기준)✅ 1. Java 설치 (필수)젠킨스는 Java로 작성된 앱이므로 Java가 먼저 필요합니다.sudo apt updatesudo apt install -y openjdk-11-jdkjava -version✅ 2. Jenkins 공식 저장소 추가 및 설치curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \ /usr/share/keyrings/jenkins-keyring.asc > /dev/nullecho deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \ https://pkg.jenkins.io/debian-st..
🚀 Kaniko란Docker 데몬 없이 컨테이너 이미지를 빌드하고, 레지스트리에 푸시할 수 있는 도구즉, Kubernetes 환경에서 안전한 빌드 도구✅ Kaniko 설치 방법 (Kubernetes 환경 기준)Kaniko는 Go 프로그램 + 컨테이너 이미지 형태로 배포되며, 일반적으로 Pod로 실행하여 사용합니다. 설치보다는 "Kaniko를 이용한 빌드 작업 정의"가 핵심입니다.📦 1. Kaniko 공식 이미지gcr.io/kaniko-project/executor:latest현재는 [gcr.io → gcr.io/kaniko-project → registry.k8s.io로 이전 중]이며, 최신 위치:registry.k8s.io/kaniko-project/executor:latest🛠️ 2. Kanik..
🧰 1. 사전 준비운영체제: Ubuntu 20.04 이상 권장하드웨어 요구사항 (최소):CPU: 2 core 이상RAM: 4GB 이상디스크: 20GB 이상루트 권한 (sudo)🚀 2. GitLab 설치 (Omnibus 방식)① 필요한 패키지 설치sudo apt updatesudo apt install -y curl openssh-server ca-certificates tzdata perl② GitLab 패키지 저장소 추가curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash③ GitLab 설치 (도메인 설정 포함)sudo EXTERNAL_URL="http://gitlab.exampl..