본문 바로가기

전체 글

(69)
쿠버네티스 StorageClass란?|Dynamic Provisioning과 동적 PV 생성 원리 StorageClassStorageClass는 이름 그대로 Kubernetes에서 Storage를 어떤 방식으로 제공할 것인지 정의하는 리소스입니다.StorageClass는 쉽게 말하면“이 Storage 요청은 어떤 Storage Driver를 사용하고, 어떤 정책으로 생성할 것인가?”를 정의하는 Storage 정책필자는 DB 관련 게시글에서 여러 차례 "Disk I/O는 시스템 성능을 결정하는 중요한 요소 중 하나"라고 설명했습니다.물론 가장 좋은 방법은 불필요한 Disk I/O 자체를 줄이는 것입니다. 하지만 동일한 I/O가 발생하더라도 어떤 스토리지를 사용하느냐에 따라 처리 성능과 응답시간에는 큰 차이가 발생할 수 있습니다. 따라서 실무에서는 모든 시스템에 동일한 스토리지를 제공하는 것이 아니라, ..
쿠버네티스 PV·PVC란?|Volume과 PersistentVolume 차이 쉽게 이해하기 쿠버네티스에서 Volume이 필요한 이유?컨테이너의 기본 파일 시스템은 컨테이너의 생명주기와 함께 관리됩니다. 따라서 컨테이너가 제거되고 새롭게 생성되는 경우, 기존 컨테이너의 Writable Layer에 기록되어 있던 데이터는 그대로 승계되지 않습니다.쿠버네티스 역시 장애 복구나 재배포 과정에서 기존 컨테이너 환경 자체를 복원하는 방식이 아니라, 불변 이미지(Immutable Image)를 기반으로 새로운 컨테이너를 생성하는 방식을 사용합니다. 따라서 별도의 저장 공간을 사용하지 않는다면 새롭게 생성된 컨테이너는 이미지에 정의된 초기 상태에서 다시 시작하게 됩니다.이러한 특성은 Stateless 애플리케이션에는 적합하지만, 데이터베이스의 데이터 파일이나 애플리케이션 로그처럼 컨테이너가 재생성된 이후에도..
Kubernetes Gateway API란?|Ingress와 차이·Gateway·HTTPRoute 구조 Gateway API 구분1세대: 인그레스(Ingress) 생태계2세대: 게이트웨이(Gateway) 생태계대표 리소스IngressClass, IngressGatewayClass, Gateway, HTTPRoute (및 GRPCRoute, TCPRoute 등) 트래픽 정의 단일 Ingress 객체 안에 엔트리포인트와 라우팅 규칙을 모두 작성 Gateway(외부 엔트리)와 Route(라우팅 규칙)로 역할 분리하여 작성 제어/구현체Ingress Controller(예: NGINX Ingress Controller) Gateway Controller(예: Envoy Gateway, NGINX Gateway Fabric, Cilium) 설정 확장 방식표준 스펙의 한계로 Annotation 및 특정 컨트롤러..
쿠버네티스 LoadBalancer Service란?|외부 IP와 트래픽 유입 원리 LoadBanlancer저번 시간에는 Ingress Controller 구현체에 대해 알아보았습니다.Ingress는 Host와 Path를 기준으로 요청을 어떤 Service에 전달할지 정의하고, 대표적인 NGINX / Traefik / HAProxy와 같은 Ingress Controller 구현체가 해당 규칙을 실제 HTTP/HTTPS 라우팅으로 구현합니다.그렇다면 여기서 한 가지 의문이 생깁니다.외부 사용자의 요청은 처음부터 어떻게 Ingress Controller까지 유입 될까? NGINX Ingress Controller를 설치했다고 해서 외부 네트워크의 패킷이 자동으로 해당 Pod까지 전달되는 것은 아닙니다. 외부에서 접근할 수 있는 IP 주소와 클러스터로 진입하는 네트워크 경로가 먼저 구성되어..
쿠버네티스 Ingress Controller란?|Ingress와 Controller 역할·구현체 비교 Ingress Controller 구현체Ingress는 외부에서 유입되는 HTTP/HTTPS 요청을 어떤 Service로 전달할지 정의하는 라우팅 규칙입니다. 앞서 설명드린 것처럼 Ingress 리소스 자체는 실제 네트워크 패킷을 전달하거나 사용자 요청을 처리하는 엔진 역할을 수행하지 않습니다.따라서 Ingress의 성능과 안정성은 어떤 Ingress Controller 구현체를 선택하느냐에 따라 크게 달라질 수 있습니다. 인프라 환경, 트래픽 규모, 운영 정책, 확장성, 보안 요구사항, 비용 등을 종합적으로 고려하여 서비스에 적합한 구현체를 선택하는 것이 안정적인 Kubernetes 운영의 핵심입니다."구현체"는 정확히 무엇을 의미할까?Kubernetes를 처음 접하는 분들에게는 Ingress Cont..
정보보안기사 실기 합격 후기|직장인 공부 방법·준비 기간 정리 취득을 결심한 이유 엔지니어로서 현장에서 다양한 문제를 경험하고 해결해 왔지만, 실무 경험만으로는 전문성을 체계적으로 정립하고 설명하는 데 한계가 있다고 느꼈습니다. 단순히 기술을 다루는 엔지니어를 넘어, 실무 경험과 이론적 전문성을 함께 갖춘 정보시스템 전문가로 성장하고 싶었습니다. 정보보안기사 시험 체계정보보안기사는 필기시험과 실기시험으로 구성되어 있으며, 필기 합격 후 실기에 응시할 수 있습니다. 1. 필기시험 시험 방식객관식 4지선다문항 수과목당 20문항 (총 100문항)시험 시간과목당 30분 (총 150분)합격 기준과목별 40점 이상 + 평균 60점 이상 필기 과목 (5과목)시스템 보안네트워크 보안애플리케이션 보안정보보안 일반정보보안 관리 및 법규 개인적으로는 정보보안기사 필기시험은 실기시험에 ..
쿠버네티스 Service 외부 접근 방법|NodePort·LoadBalancer·Ingress 차이 LoadBanlancer저번 장에서 살펴본 것처럼, 외부 사용자가 Kubernetes 클러스터에 접근하려면 실제로 접속 가능한 공인 IP가 필요합니다. 일반적인 호스팅 환경에서는 방화벽 또는 L3 NAT(Network Address Translation) 장비를 이용해 공인 IP를 내부 Node의 IP로 매핑합니다. 이처럼 NAT가 구성되면 외부 사용자는 공인 IP를 통해 Private Network의 Kubernetes 서비스에 접근할 수 있습니다.다만 실무에서는 NodePort를 외부에 직접 노출하기보다는, 앞단에 Load Balancer를 두거나 LoadBalancer 타입 Service, Ingress, Gateway API 등을 사용하는 것이 일반적입니다.만약 공인 IP를 특정 Node의 N..
쿠버네티스 Service란?|ClusterIP와 Pod 네트워크 동작 원리 Service앞서 살펴본 것처럼 Kubernetes의 Pod는 영구적으로 유지되는 서버가 아닙니다.Deployment, StatefulSet, DaemonSet과 같은 워크로드 리소스에 의해 생성된 Pod는 장애, 재배포, 스케일링 등의 이유로 언제든 종료되고 새로 생성될 수 있습니다.이러한 쿠버네티스의 오케스트레이션 방식은 기존 엔터프라이즈 환경과는 운영 방식에서 큰 차이를 보입니다. 네트워크 역시 마찬가지입니다.$ kubectl get pods -o wideNAME READY STATUS RESTARTS AGE IP NODEapp-pod-a 1/1 Running 0 10m 10.244.1.10 worker-node-..