DevOps 16

Docker Registry 간 이미지 이전하기: 모든 태그 자동 복사 스크립트 활용기

개발 및 운영 환경에서는 한 Registry에 저장된 이미지들을 다른 Registry로 이전해야 하는 경우가 자주 발생합니다. 특히 하나의 이미지에 여러 태그가 달려 있다면 수작업으로 하나씩 이전하기 어려울 수 있습니다. 이번 글에서는 소스 Registry에서 모든 태그의 이미지를 자동으로 가져와서, 대상 Registry로 복사하는 방법과 이를 위한 스크립트를 소개합니다.작업 환경 구성출발지 Registry (Source):SRC_REGISTRY="source-registry.example.com:5000"출발지 Registry는 내부 네트워크 또는 사설 DNS를 통해 접근할 수 있는 도메인 이름을 사용합니다.목적지 Registry (Destination):DEST_REGISTRY="destination..

DevOps/Docker 2025.04.21

Node.js 애플리케이션을 Kubernetes에 Ingress로 배포하

Kubernetes 환경에서 Node.js 애플리케이션을 배포할 때, 클러스터 외부에서 접근 가능한 구조를 만드는 건 매우 중요한 작업입니다. 이번 글에서는 Helm 기반의 ingress-nginx 컨트롤러를 사용하고, 외부에서 들어오는 트래픽을 NGINX와 NodePort를 통해 내부 Ingress로 전달하는 구조를 소개합니다.이 구조는 테스트 환경이나, 직접 클라우드 LoadBalancer를 사용하지 못하는 온프레미스 환경에서 특히 유용합니다.📦 배포 시나리오 개요외부 NGINX가 NodePort 포트로 요청을 프록시합니다.각 노드는 Ingress-NGINX 컨트롤러를 NodePort로 노출합니다.내부 애플리케이션은 Ingress 리소스를 통해 라우팅됩니다.외부 클라이언트는 도메인 또는 IP로 접속..

DevOps/Kubernetes 2025.04.18

NodePort 기반 Kafka 외부 접속 구성과 NGINX 연동 가이드

Kafka를 Kubernetes 환경에서 운영할 때 흔히 맞닥뜨리는 과제 중 하나는 바로 외부에서 Kafka 브로커에 안전하게 접근하는 방식입니다. Helm Chart를 이용해 Kafka 클러스터를 구성하는 것만으로는 외부 애플리케이션에서 브로커에 연결하는 데에 필요한 네트워크 접근이 보장되지 않습니다.이 글에서는 Helm Chart 기반 Kafka 설치 후 외부 접근을 NodePort와 NGINX를 통해 구성하는 전략을 정리해 봅니다. 운영 환경은 물론 테스트 환경에서도 유용하게 적용할 수 있어요.1. 왜 외부 접근 설정이 필요할까?Kafka는 기본적으로 클러스터 내부에서의 통신을 염두에 두고 설계되어 있습니다. 하지만 다음과 같은 상황에서는 외부 연결이 필수적입니다:외부에서 Kafka 메시지를 생산하..

DevOps/Kafka 2025.04.16

Helm을 활용한 Kafka 클러스터 설치 자동화

안녕하세요! 오늘은 Kubernetes 환경에서 Kafka 클러스터를 반복 가능하고 자동화된 방식으로 설치하는 방법을 소개하려 합니다. 특히 Helm Chart와 간단한 스크립트를 활용해서 Kafka를 손쉽게 배포하는 전략을 정리해보았어요. 😎1. Kafka 설치를 위한 Helm Chart 준비하기Kafka를 설치하기 위해 Helm 저장소를 먼저 등록하고 최신 차트를 가져옵니다:helm repo add bitnami https://charts.bitnami.com/bitnamihelm repo updatehelm pull bitnami/kafka --untarbitnami/kafka 차트를 기반으로 커스터마이징이 가능한 Helm Chart 디렉토리를 준비한 다음, 필요한 설정을 적용합니다.2. 왜 He..

DevOps/Kubernetes 2025.04.14

ISCSI 설정 가이드 (Ubuntu)💾

iSCSI(Initiator)는 네트워크를 통해 원격 디스크에 접근할 수 있도록 해주는 스토리지 프로토콜입니다. 이 가이드는 Ubuntu에서 iSCSI를 설정하는 방법을 소개합니다.📦 1. ISCSI 패키지 설치sudo apt-get updatesudo apt-get install open-iscsi설치 후, iscsi 서비스를 데몬으로 등록합니다.sudo systemctl enable --now iscsi⚙️ 2. 자동 로그인 설정 변경iSCSI 기본 설정은 수동 시작입니다. 이를 자동 시작으로 변경하려면 아래 설정 파일을 수정합니다.sudo nano /etc/iscsi/iscsid.conf아래 항목을 찾아 node.startup = automatic 의 주석을 해제하고 node.startup = m..

DevOps/ICSIS 2025.04.11

Kubernetes Master(Node)에서 Pod 스케줄링 방지하기

Kubernetes에서 Master Node(Control Plane)는 클러스터의 중심 역할을 수행합니다. 통상적으로 이 노드에는 일반 워크로드(Pod)를 배치하지 않지만, 특별한 설정이 없다면 스케줄될 수 있습니다. 이 포스트에서는 Master Node에서 일반 Pod가 실행되지 않도록 설정하는 방법을 안내합니다.🧱 핵심 개념: TaintKubernetes는 특정 노드에 "Taint"(오염값)를 부여해, 조건을 만족하지 않는 Pod가 해당 노드에 스케줄되지 않도록 합니다.Master Node는 아래와 같은 Taint가 기본적으로 설정되어 있습니다:kubectl describe node 예시:Taints: node-role.kubernetes.io/control-plane:NoSchedule이 설정이..

DevOps/Kubernetes 2025.04.09

입문자를 위한 Helm 기초 중심 가이드

✨ Helm: Kubernetes 패키지 관리 도구 설치 및 사용법 🎉Helm은 Kubernetes 환경에서 애플리케이션 배포와 관리를 쉽게 해주는 패키지 관리자입니다. Helm을 통해 복잡한 Kubernetes 매니페스트를 템플릿화하고, 재사용 가능한 차트(Chart)로 패키징하여 배포할 수 있어요. 이번 글에서는 Helm의 기본 개념부터 설치 및 주요 사용법까지 단계별로 알아보겠습니다. 🚀1. Helm이란? 🤔Helm은 Kubernetes 클러스터에 애플리케이션을 설치, 업그레이드, 롤백 및 삭제하는 작업을 간편하게 만들어줍니다. 주요 기능은 다음과 같습니다:차트(Chart): Kubernetes 애플리케이션을 패키징하는 단위 📦릴리즈(Release): 차트를 클러스터에 배포한 인스턴스 🎯템..

DevOps/Helm 2025.04.07

Kubernetes CNI 비교: Calico vs Flannel - 당신의 클러스터에 더 적합한 선택은?

Kubernetes 클러스터를 구성할 때 가장 먼저 마주하게 되는 선택 중 하나는 어떤 네트워크 플러그인을 사용할 것인가입니다.바로 이 지점에서 많은 개발자와 운영자들이 고민하게 됩니다.그중에서도 가장 많이 사용되는 CNI(Container Network Interface) 플러그인은 Calico와 Flannel입니다.하지만 이 둘은 단순히 기능의 차이만 있는 것이 아니라, 철학, 성능, 확장성, 보안 정책 적용 방식에서도 꽤나 다른 노선을 택하고 있습니다.이 글에서는 두 CNI의 개념, 작동 방식, 실무 사용성까지 상세히 비교하며, 여러분의 클러스터에 어떤 선택이 더 적합할지 고민해보면 좋겠습니다.🧠 먼저, CNI란?Kubernetes는 기본적으로 Pod 네트워킹 기능을 직접 제공하지 않습니다.따라서..

DevOps/Kubernetes 2025.04.06

Kubernetes 환경에서 InfluxDB를 자동화된 방식으로 배포하기

이 글에서는 Kubernetes 클러스터에서 InfluxDB를 NFS 기반 퍼시스턴트 스토리지를 활용하여 자동화된 방식으로 배포하고 초기 설정까지 완료하는 방법을 다룹니다. 특히 NFS 서버를 활용해 데이터를 외부에 안전하게 저장하는 구성하는 것이 핵심입니다~!📌 기본 구성 정보NFS Server: 192.168.0.99스토리지 경로: /mnt/influxdb📁 1. PersistentVolume & PersistentVolumeClaim 구성InfluxDB 데이터를 저장할 볼륨을 NFS를 통해 구성합니다.apiVersion: v1kind: PersistentVolumemetadata: name: db-influxdb-pv labels: type: nfsspec: capacity: s..

DevOps/Kubernetes 2025.04.05

Ubuntu 환경에서 Kubernetes 설치 및 클러스터 구성 가이드

서비스가 확장되다 보면 자연스럽게 분산 시스템에 대한 고민이 시작되고, Kubernetes(쿠버네티스) 같은 오케스트레이션 도구에 대한 필요성을 느끼게 됩니다. 이 글에서는 Ubuntu 환경에서 Kubernetes를 설치하고 클러스터를 구성하는 전체 과정을 정리합니다.🧰 사전 준비: 하드웨어 및 시스템 요구사항Kubernetes 공식 문서 기준, 노드별 권장 사양은 다음과 같습니다.마스터 노드 권장 사양CPU: 멀티코어RAM: 8GB 이상스토리지: SSD 또는 NVMe네트워크: 기가비트 이더넷 이상워커 노드 권장 사양CPU: 멀티코어RAM: 4GB 이상운영 체제는 Ubuntu 20.04 LTS 이상을 권장합니다.🔥 1. 방화벽 설정 및 필수 패키지 설치sudo apt updatesudo apt ins..

DevOps/Kubernetes 2025.04.04