Kubernetes의 ConfigMap과 Secret은 애플리케이션 구성 정보를 외부에서 주입(injection)하기 위한 중요한 리소스입니다. 둘 다 환경 변수, 커맨드라인 인자, 볼륨을 통해 파드에 주입될 수 있으며, 애플리케이션 코드 수정 없이 환경 설정 변경이 가능하게 해줍니다.하지만 사용 목적과 보안 수준에서 중요한 차이점이 존재합니다. 🔍 ConfigMap vs Secret: 차이점 항목 ConfigMap Secret용도일반 설정값 저장 (예: DB 호스트, 포트 등)민감한 정보 저장 (예: 비밀번호, API 키, TLS 인증서 등)데이터 저장 방식일반 텍스트 (Base64 인코딩 없이 저장됨)Base64 인코딩된 문자열로 저장됨보안암호화 없이 저장됨 (노출 위험 높음)기본적으로 etcd에..
Kubespray는 Ansible 플레이북을 활용하여 다양한 환경에서 Kubernetes 클러스터를 자동으로 설치하고 관리할 수 있는 오픈 소스 프로젝트입니다. 1. 시스템 요구 사항 확인운영체제: Ubuntu, CentOS 등 주요 리눅스 배포판 지원소프트웨어:Python 3 및 pipAnsible v2.11 이상Jinja 2.11 이상Python netaddr 라이브러리하드웨어:마스터 노드: CPU 2개, 메모리 2GB 이상워커 노드: CPU 2개, 메모리 1GB 이상2. 사전 준비SSH 키 생성 및 배포: Kubespray를 실행할 컨트롤 노드에서 모든 대상 노드로 비밀번호 없이 SSH 접속이 가능하도록 설정합니다.ssh-keygen -t rsa ssh-copy-id user@노드_주소방화벽 및 ..
✅ Traefik의 주요 특징특징 설명자동 서비스 디스커버리Docker, Kubernetes 등에서 실행 중인 서비스들을 자동으로 감지하여 설정 없이도 라우팅 가능리버스 프록시 기능클라이언트 요청을 내부 서비스로 전달하고 응답을 반환로드 밸런싱여러 인스턴스 간에 트래픽을 분산시켜 안정성과 성능을 향상Let's Encrypt 자동 인증서 발급HTTPS를 위한 TLS 인증서를 자동으로 발급 및 갱신중앙 집중 라우팅 구성traefik.yml 혹은 동적 구성 파일로 라우팅 정의 가능Web UI 대시보드트래픽 흐름, 라우팅 상태 등을 시각적으로 확인 가능미들웨어 지원인증, Rate Limiting, 리디렉션 등 다양한 기능을 미들웨어 형태로 삽입 가능📦 Traefik 아키텍처 요약클라이언트 요청 ↓ [T..
Spring Boot Config Server를 쿠버네티스 환경에서 대체하려는 경우, 일반적으로 Kubernetes ConfigMap과 Secret, 또는 External Configuration 시스템을 활용합니다. 이를 통해 Config Server 없이도 중앙 집중형 설정 관리가 가능합니다. 아래에 대표적인 접근 방식들을 설명드릴게요.✅ 1. Kubernetes ConfigMap과 Secret 사용구성 방법 요약ConfigMap: 일반적인 설정 값 저장Secret: 민감한 정보 (DB 비밀번호 등) 저장애플리케이션에서 application.yaml 혹은 application.properties 파일을 생성하지 않고, 설정 값을 외부에서 주입예시: ConfigMap 생성apiVersion: v1kin..
✅ GitOps + HelmChart + k3s = 자동화된 GitOps 운영GitOps 스타일 운영이란:"모든 인프라/애플리케이션 설정을 Git에 선언적으로 관리하고, 변경사항이 자동으로 클러스터에 반영되도록 하는 방식"k3s는 HelmChart CRD를 지원하므로 GitOps 방식에 아주 잘 맞습니다.즉, HelmChart 리소스를 Git에 저장하고, 이를 k3s에 자동 반영되도록 구성하면 GitOps 스타일 운영이 완성됩니다.🧩 GitOps 구성 흐름[ Git 저장소 ] │ │ (HelmChart, HelmChartConfig YAML 파일) ▼[ GitOps Agent ] (예: Fleet, ArgoCD, FluxCD) │ ▼[ k3s 클러스터 ] (HelmChart CRD가..
✅ 1. "k3s에 Helm이 내장돼 있다"는 의미?✔️ k3s는 Helm CLI를 내장하지 않습니다.helm 명령어는 별도로 설치해야 합니다 (로컬에 Helm CLI 필요).✔️ 하지만 k3s는 다음을 지원합니다:Helm Chart 기반의 애드온 자동 설치/var/lib/rancher/k3s/server/manifests/ 디렉토리에 YAML/Helm 파일 넣으면 자동으로 배포✅ 2. k3s의 내장 애드온 설치 방식 (Helm 지원)k3s는 설치 후 다음 경로에 있는 모든 YAML 또는 Helm 관련 .yaml 파일을 자동으로 배포합니다:/var/lib/rancher/k3s/server/manifests/여기에 HelmChart 리소스를 넣으면, Helm Chart가 자동 배포됩니다.📄 예: Helm..
쿠버네티스에서 eBPF를 사용하는 이유: 관측성, 보안, 네트워크의 진화🧠 eBPF란?eBPF(extended Berkeley Packet Filter)는 리눅스 커널에서 샌드박스된 프로그램을 안전하게 실행할 수 있게 해주는 기술입니다.원래는 패킷 필터링 용도로 시작되었지만, 현재는 관측성(Observability), 보안(Security), 네트워킹(Networking) 등 다양한 분야에서 활용됩니다.✅ 쿠버네티스에서 eBPF를 사용하는 이유쿠버네티스는 복잡한 분산 시스템이며, 그 특성상 기존 방식으로는 정확하고 빠른 정보 수집과 정책 적용에 한계가 있었습니다.eBPF는 커널 수준에서 직접 데이터를 관찰하고 제어할 수 있어, 다음과 같은 강점을 제공합니다.1. 🔍 + 🔐 통합된 관측성과 보안 향상..
✅ 목표:고정된 Kubeconfig 없이 필요할 때만 생성하여 보안성 유지각 클러스터에서 자동으로 Kubeconfig 생성사용 후 일정 시간 뒤 자동 만료되도록 설정Vault, Cluster API, 또는 Kubeconfig 요청 API를 활용하여 자동화🚀 1. 왜 동적 Kubeconfig 생성이 필요한가?기존 방식(Kubeconfig 파일 직접 저장)은 다음과 같은 문제점이 있음🔴 보안 취약: 모든 클러스터의 Kubeconfig를 미리 저장하면 노출 위험이 있음🔴 관리 부담: 5000개 이상의 클러스터가 있을 경우, Kubeconfig를 개별 관리하기 어려움🔴 사용하지 않는 Kubeconfig 노출: 사용하지 않더라도 파일이 유지되면 해킹 가능성 증가✅ 해결 방법: "필요할 때만 동적으로 Kub..
쿠버네티스에서 오토 스케일링(Auto Scaling)은 워크로드의 변화에 따라 애플리케이션의 인스턴스(파드)를 자동으로 증가하거나 감소시켜 자원을 효율적으로 사용하는 기술입니다. 쿠버네티스 환경에서 오토 스케일링 방법은 크게 세 가지로 나눌 수 있습니다.Horizontal Pod Autoscaler (HPA): 파드 수를 자동으로 조정Vertical Pod Autoscaler (VPA): 파드의 CPU 및 메모리 리소스를 자동으로 조정Cluster Autoscaler (CA): 클러스터 내의 노드 수를 자동으로 확장/축소각각의 방법에 대해 상세하게 설명하겠습니다.✅ 1. Horizontal Pod Autoscaler (HPA)Horizontal Pod Autoscaler는 파드의 복제본(replica)의..
📌 1. 설치 및 제거🔹 설치기본 설치curl -sSLf https://get.k0s.sh | sudo sh특정 버전 설치curl -sSLf https://get.k0s.sh | sudo sh -s v1.29.2+k0s.0수동 설치wget https://github.com/k0sproject/k0s/releases/download/v1.29.2+k0s.0/k0s-v1.29.2+k0s.0-amd64sudo install k0s-v1.29.2+k0s.0-amd64 /usr/local/bin/k0s🔹 제거노드에서 k0s 제거 (서버/에이전트 모두 가능)sudo k0s reset📌 2. 서버 및 에이전트 실행🔹 서버(master) 시작기본 서버 실행sudo k0s server백그라운드에서 서버 실행su..