📦 OpenFaaS란?OpenFaaS (Functions as a Service) 는 서버리스(Serverless) 애플리케이션을 컨테이너 기반으로 손쉽게 구축하고 배포할 수 있게 해주는 오픈소스 플랫폼입니다."Docker/Kubernetes 위에 서버리스" 를 구현하는 대표적인 솔루션이라고 할 수 있습니다.핵심 키워드:서버리스(Serverless) 아키텍처컨테이너(Container) 기반이벤트 기반 실행 (HTTP, Kafka, Cron 등 트리거 가능)멀티언어 지원 (Python, Java, Node.js, Go, Bash Script 등)자체 호스팅 가능 (완전한 On-Premise 가능)오픈소스 (Apache 2.0 라이선스)🎯 OpenFaaS 주요 특징컨테이너 기반 함수작성한 함수를 컨테이너..
📦 StorageClass 설치 방법Kubespray로 쿠버네티스 설치를 완료했지만,아직 기본 StorageClass가 없거나 불완전한 상태이제 동작하는 StorageClass를 추가/설정해야 ArgoCD 같은 것들도 문제없이 설치 가능2. 가장 많이 쓰는 선택지방법설명추천 상황NFS 서버 연결외부에 NFS 서버 띄우고, NFS StorageClass 설치개인 서버, 클라우드 아닌 환경Local Path Provisioner각 노드 로컬 디스크를 스토리지처럼 사용소규모, 실습/테스트Rook-Ceph자체 분산 스토리지 구축 (PVC 자동 프로비저닝)고가용성, 대규모 환경Cloud Provider StorageClassAWS EBS, GCP PD 같은거 사용퍼블릭 클라우드(Kubespray cloud 모드..
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/..
목적사용 이미지실행 명령어비고단순 파드 띄워서 셸 접속busyboxkubectl run test --image=busybox --restart=Never -- sleep 3600sh 셸. ping, wget 기본 가능네트워크 디버깅 전문툴 사용nicolaka/netshootkubectl run netshoot --rm -i --tty --image=nicolaka/netshoot -- bashtcpdump, dig, traceroute, curl 등 사용 가능curl 명령만 사용curlimages/curlkubectl run curl-pod --image=curlimages/curl --restart=Never -- sleep 3600작은 사이즈, curl 요청만 필요할 때 적합간단한 HTTP 서버 띄우..
1. 기본 정보 조회명령어설명kubectl get nodes클러스터 노드 목록 조회kubectl get pods현재 네임스페이스의 파드 목록 조회kubectl get pods -A모든 네임스페이스의 파드 목록 조회kubectl get svc서비스 목록 조회kubectl get deployments디플로이먼트 목록 조회kubectl describe pod [파드명]파드 상세 정보 조회kubectl describe svc [서비스명]서비스 상세 정보 조회 2. 리소스 생성/적용/삭제명령어설명kubectl apply -f [파일명].yaml리소스를 생성하거나 업데이트kubectl create -f [파일명].yaml리소스를 새로 생성kubectl delete -f [파일명].yaml리소스를 삭제kubectl ..
구분자동화 종류설명배포Rolling Update, Canary, Blue-Green새로운 버전 배포를 자동화스케일링HPA, VPA, CA부하에 따라 Pod/리소스를 자동 조절복구Self-healingPod 죽으면 자동 재생성 (ReplicaSet/Deployment)네트워크Ingress Controller트래픽 자동 라우팅, 인증 처리모니터링Metrics Server, Prometheus리소스 모니터링 및 알람 자동화설정 관리ConfigMap, Secret앱 설정 변경 자동 적용 가능인증/인가RBAC, OPA Gatekeeper권한 관리 자동화 및 정책 강제배치 작업CronJob주기적인 작업 자동 실행 (스케줄러)이벤트 대응Kubernetes Event, Operator이벤트 발생 시 커스텀 로직 자동 ..