1. MetalLB 개요MetalLB는 베어메탈 환경 또는 가상화된 온프레미스 환경에서 Kubernetes의 LoadBalancer 타입 서비스를 사용할 수 있도록 지원하는 네트워크 로드밸런서입니다. 클라우드 환경(AWS, GCP, Azure)에서는 LoadBalancer 타입 서비스가 자동으로 외부 IP를 할당받지만, 베어메탈 환경에서는 이를 지원하지 않으므로 MetalLB를 통해 외부 접근이 가능한 IP를 수동으로 할당할 수 있습니다.2. MetalLB 운영 모드MetalLB는 두 가지 주요 모드를 제공합니다.Layer 2 모드ARP(IPv4) 또는 NDP(IPv6) 프로토콜을 사용하여 하나의 노드가 외부 IP를 광고합니다.설정이 간단하며, 소규모 클러스터에 적합합니다.외부 네트워크 장비(라우터/스위..

🌐 쿠버네티스 클라우드 네이티브 오토스케일링 방법클라우드 네이티브 환경에서는 애플리케이션 부하에 따라 Pod 수를 자동으로 조정(오토스케일링) 하는 것이 필수적입니다.특히, 다양한 언어/런타임으로 개발된 서비스를 통합 관리해야 할 때,Prometheus 기반 메트릭 수집과 Custom Metrics 기반 Horizontal Pod Autoscaler (HPA) 조합은 가장 강력한 패턴입니다.이번 글에서는 GitOps, Prometheus, Prometheus Adapter, HPA를 활용한클라우드 네이티브 오토스케일링 방법을 소개합니다.1. 오토스케일링 전체 흐름클라우드 네이티브 오토스케일링의 핵심 구성은 다음과 같습니다:Git에 deployment.yaml, hpa.yaml 등을 작성하여 소스 관리A..
🍯 ConfigMap 유용한 응용 팁1. 서버 설정 파일 관리Spring Boot, Nginx, Node.js 같은 앱의 설정파일 (application.yml, nginx.conf, .env)을이미지에 집어넣지 않고, ConfigMap으로 외부 주입하면 좋아요.장점:코드/이미지와 설정 분리설정만 바꿔서 롤링 업데이트 가능여러 환경(dev, staging, prod) 별로 ConfigMap 분리 가능예시apiVersion: v1kind: ConfigMapmetadata: name: spring-configdata: application.yml: | server: port: 8080 spring: profiles: active: dev/config/applic..
1. ConfigMap이란?ConfigMap은 쿠버네티스에서 애플리케이션이 사용하는 설정 파일이나 환경 변수를 외부로 분리해서 관리할 수 있게 해주는 리소스.애플리케이션 이미지를 수정하지 않고도 설정만 바꿔서 동작을 변경.2. ConfigMap 만들기예를 들어, 아래처럼 간단한 설정파일이 있다고 해볼게요.my-config.txtkey1=value1key2=value2이 파일을 ConfigMap으로 만들려면:kubectl create configmap my-config --from-file=my-config.txt또는 직접 yaml로 정의할 수도 있어요:# configmap.yamlapiVersion: v1kind: ConfigMapmetadata: name: my-configdata: my-confi..
1. 시크릿(Secret) 직접 관리 자동화스크립트나 CI 파이프라인으로 Secret을 업데이트하는 방법입니다.예를 들어 GitLab CI, Jenkins 등을 통해 새로운 인증 정보(비밀번호, 토큰 등)가 생기면 kubectl apply로 Secret을 덮어씌우는 방식.이 방법은 간단하지만, Pod 재시작이 따르지 않으면 컨테이너는 변경된 Secret을 읽지 못합니다. 그래서 Rolling Restart까지 같이 걸어야 합니다.kubectl create secret generic my-secret --from-literal=password=newpassword --dry-run=client -o yaml | kubectl apply -f -kubectl rollout restart deployment/..