Docker Registry 간 이미지 이전하기: 모든 태그 자동 복사 방법

개발 환경이 확장됨에 따라, 한 Registry에 저장된 여러 이미지들을 다른 Registry로 이전해야 하는 경우가 있습니다. 이번 글에서는 단일 태그뿐 아니라, 여러 태그가 있는 이미지까지 자동으로 복사하는 스크립트를 작성하고 실행하는 과정을 소개합니다. 작업 환경 참고: 스크립트를 실행하는 호스트는 두 Registry 모두 네트워크로 접근 가능한 환경이어야 합니다. 스크립트 설명 이 스크립트는 다음 단계로 구성되어 있습니다. 전체 스크립트는 … Read more

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

Kubernetes에 Node.js 백엔드 애플리케이션을 배포할 때, 단순히 서비스(Service)와 디플로이먼트(Deployment)만 구성해서는 외부에서 접근하기 어렵습니다. 특히 프로덕션 환경에서는 Ingress Controller를 활용해 도메인 기반 라우팅, TLS 인증서 연동, 접근 제어까지 구성하는 것이 일반적입니다. 이번 글에서는 Helm으로 Ingress-NGINX를 설치하고, Node.js 애플리케이션을 Ingress 리소스를 통해 외부 노출하는 전략을 단계별로 소개합니다. 외부에서는 NGINX로 들어온 요청이 Kubernetes의 Ingress를 거쳐 NodePort에 연결되는 구조이며, … Read more

NodePort 기반 Kafka 외부 접속 구성과 NGINX 연동 전략

Kafka를 Kubernetes 위에서 운영할 때 가장 자주 부딪히는 문제 중 하나는 외부에서 Kafka 브로커에 접근하는 방법입니다. Helm Chart로 클러스터를 구성하는 건 좋은 시작이지만, 클러스터 외부의 Producer나 Consumer가 Kafka와 통신하려면 몇 가지 추가 설정이 필요하죠. 이번 글에서는 Helm Chart 기반 Kafka 환경에서 NodePort를 활용해 외부 접속을 구성하고, NGINX를 통해 이를 안정적으로 라우팅하는 전략을 소개합니다. 1. 왜 … Read more

Helm으로 Kafka 클러스터 설치 자동화하기

이번 글에서는 Helm Chart를 활용하여 Kafka 클러스터를 자동으로 설치하고 구성하는 방법을 정리해보려 합니다. Kubernetes 환경에서 Kafka를 안정적으로 운영하기 위해 반복 가능한 설치 환경이 중요하다는 점, 다들 공감하시죠? 😎 1. Helm으로 Kafka 설치 준비 Kafka를 설치하기 위해 먼저 Helm Chart 저장소를 추가하고 최신 차트를 가져옵니다: bitnami/kafka 차트를 기반으로 Helm Chart 디렉토리가 생성되며, 여기에 필요한 커스터마이징을 적용해 … Read more

Kubernetes에서 Master Node에 Pod가 생성되지 않도록 설정하는 방법🚫

Kubernetes에서 Master Node(Control Plane)는 클러스터 제어를 담당하는 핵심 노드입니다. 일반적으로 Master Node에는 Pod를 배치하지 않지만, 설정에 따라 워커처럼 동작할 수 있습니다. 이 글에서는 Master(Node)에서 일반 워크로드가 실행되지 않도록 설정하는 방법을 소개합니다. 📌 기본 원리: Taint Kubernetes는 노드에 “taint(오염)”을 부여하고, 해당 taint를 허용하지 않는 일반 Pod는 해당 노드에 스케줄되지 않습니다. 기본적으로 Master Node에는 다음과 같은 taint가 … Read more

Helm 설치: Kubernetes 패키지 관리 도구

✨ Helm: Kubernetes 패키지 관리 도구 / Package Manager 설치 및 사용법 🎉 Helm은 Kubernetes 환경에서 애플리케이션 배포와 관리를 간편하게 만들어주는 패키지 관리자입니다.Helm is a powerful package manager for Kubernetes that helps you deploy and manage applications effortlessly.이번 글에서는 Helm의 기본 개념부터 설치 및 주요 사용법까지 단계별로 알아보겠습니다. 🚀 1. Helm이란? / What is Helm? … Read more

Kubernetes 네트워크 CNI 비교: Calico vs Flannel

Kubernetes 클러스터에서 Pod 간 네트워크 통신을 가능하게 해주는 CNI 플러그인 중 가장 널리 사용되는 Calico와 Flannel의 차이점에 대해 자세히 살펴봅니다. 🌐 Flannel: Simple, Lightweight ✅ 특징 🎯 적합한 상황 🔐 Calico: 고성능 + 보안 중심 ✅ 특징 🎯 적합한 상황 ⚖️ 비교표 항목 Flannel Calico 네트워크 방식 VXLAN (오버레이) BGP, IP-in-IP, eBPF 성능 보통 높음 … Read more

Cephadm Add OSDCeph에서 OSD 추가하는 방법Cephadm Add OSD

Ceph 스토리지 클러스터를 운영하다 보면 스토리지 용량을 늘리거나 성능을 개선하기 위해 OSD(Object Storage Daemon)를 추가할 필요가 생긴다. 이번 포스트에서는 Ceph에서 마스터 역할을 담당하는 Mon(Monitor) 노드에 OSD를 추가하는 방법에 대해 설명한다. 사전 준비 사항 Ceph에서 Mon에 OSD를 추가하려면 우선 Host 추가 과정이 선행되어야 한다. Host 추가 방법에 대한 내용은 이전 포스트에서 상세히 다루었으므로, 여기서는 이미 Host가 … Read more

Cephadm을 활용한 Ceph 클러스터 Mon 노드 추가 가이드

Ceph 스토리지 클러스터를 효율적으로 관리하기 위해서는 모니터(Monitor, 이하 Mon) 노드를 적절히 구성하는 것이 매우 중요합니다. 본 가이드에서는 Cephadm 환경에서 Ceph 클러스터에 Mon 노드를 새롭게 추가하는 방법을 쉽고 간단하게 안내합니다. Mon 노드 추가 전 필수 조건 새로운 Mon 노드를 추가하기 위해서는 우선 클러스터에 호스트(Host)가 추가되어 있어야 합니다. 만약 호스트 추가가 아직 진행되지 않았다면, 관련 포스트를 참고하여 … Read more

Cephadm으로 클러스터 초기화와 Host 추가

Cephadm 환경에서 클러스터 초기화하기 Cephadm 환경에서 Ceph 클러스터를 구축할 때 가장 먼저 진행해야 하는 과정이 클러스터 초기화입니다. 초기화 과정을 통해 첫 번째 Monitor(Mon) 노드를 설정하고, 클러스터 운영의 기초를 마련하게 됩니다. 클러스터 초기화 방법 클러스터를 초기화할 Mon 노드에서 아래의 명령어를 사용하여 초기화를 진행합니다. cephadm bootstrap –mon-ip {IP} –initial-dashboard-user bioline –initial-dashboard-password {초기비밀번호} SSH 공개 키(Public Key) 복사하기 … Read more