본문 바로가기

Infra/Kubernetes20

NFS 와 CSI NFS 는 스토리지 기술이고, CSI 는 k8s 가 해당 스토리지를 연동하는 표준 방식즉, NFS 를 k8s 에서 사용하기 위해 CSI 드라이버를 설치 쿠버네티스에서 애플리케이션을 운영하다 보면 데이터 영속성과 스토리지 관리가 중요한 과제로 대두됩니다. 특히 여러 Pod 간 데이터 공유가 필요하거나 외부 스토리지 시스템과의 연동이 필요한 경우, NFS(Network File System)와 CSI(Container Storage Interface)에 대한 이해가 필수적입니다. 1. NFS란?NFS는 Network File System의 약자로, 네트워크를 통해 파일 시스템을 공유하는 분산 파일 시스템 프로토콜입니다. 즉, 여러 서버(혹은 컨테이너)가 동일한 스토리지 디렉토리를 마치 로컬 디렉토리처럼 공유.. 2025. 6. 5.
애플리케이션 배포 전략 데이터를 기억해야 하는가?, 아닌가? 웹 서버 처럼 요청을 처리하고 잊어버리는 무상태(stateless) 애플리케이션에는 Deployment 를, 데이터베이스처럼 상태를 지속적으로 유지해야하는 유상태(stateful) 애플리케이션에는 StatefulSet 을 사용합니다.Stateless Deployment란?Deployment 란 쿠버네티스에서 상태가 없는 애플리케이션을 배포할 때 사용하는 가장 기본적인 컨트롤러입니다. Pod 와 ReplicaSet 에 대한 선언적 업데이트를 제공하며, 애플리케이션의 배포, 스케일링, 롤링 업데이트, 롤백을 자동화합니다. Deployment 는 ReplicaSet 의 상위 개념으로, Pod 의 개수 유지 뿐만 아니라 버전 관리 기능을 추가했습니다. Stateless(상태.. 2025. 6. 4.
kube-apiserver 설정 기본 구조 kube-apiserver 설정 기본 구조kube-apiserver는 일반적으로 다음 두 방식으로 설정할 수 있습니다.kubeadm 설치 환경 → /etc/kubernetes/manifests/kube-apiserver.yaml 수정kubeadm은 Kubernetes를 간편하게 설치하는 도구입니다.kubeadm으로 k8s를 설치하게 되면 kube-apiserver는 "Static Pod" 방식으로 실행됩니다.Static Pod이란?특정 경로(/etc/kubernetes/manifests/)에 있는 YAML 파일을 kubelet이 자동으로 감지해서 실행하는 방식입니다.설정 위치:/etc/kubernetes/manifests/kube-apiserver.yaml→ 이 파일을 수정하면 kube-apiserver.. 2025. 5. 20.
Kube-ApiServer 요청 처리 흐름 Kube-apiserver 는 Kubernetes 컨트롤 플레인의 프론트엔드로 모든 요청의 관문입니다. kubectl, client-go, Controller 등 모든 컴포넌트는 kube-apiserver 와 통신하여 리소스를 생성, 조회, 변경, 삭제할 뿐만 아니라 모든 리소스 또한 kube-apiserver 를 통해 처리됩니다.client-go 란, 쿠버네티스(Kubernetes) 공식 프로젝트에서 제공하는 Go 언어용 클라이언트 라이브러리입니다. kube-apiserver 요청 처리 흐름Client(kubectl, controller 등) ↓ REST 요청[kube-apiserver] ├─ ① 인증(Authentication) ├─ ② 권한 확인(Authorization) ├─ ③ 어드.. 2025. 4. 25.
RBAC RBAC 란, "누가", "무엇을", "어디서" 할 수 있는지 설정하는 제어 시스템쿠버네티스 RBAC쿠버네티스(Kubernetes)에서 보안은 매우 중요한 요소입니다. 특히 여러 팀이 같은 클러스터를 사용하는 환경에서는 적절한 접근 제어가 필수적입니다. 이를 위해 쿠버네티스는 RBAC(Role-Based Access Control)을 제공하여 사용자와 서비스 계정에 대한 세밀한 권한 관리를 가능하게 합니다. Role + RoleBinding → 네임스페이스 범위 권한ClusterRole + ClusterRoleBinding → 클러스터 전역 권한ClusterRole + RoleBinding → 네임스페이스에서 클러스터 역할 재사용 가능 쿠버네티스 접근 제어 체계쿠버네티스의 접근 제어 체계는 크게 세 단계.. 2025. 4. 25.
StorageClass 쿠버네티스 환경에서 스토리지 클래스(StorageClass)는 동적 프로비저닝의 핵심 메커니즘으로, PersistentVolume(PV)의 생성 방식을 추상화합니다. PV 프로비저닝 방식 비교1. 정적 프로비저닝직접 pv 를 정의하고 mount 해야한다.수동 PV 생성: 관리자가 직접 PV를 정의하고 NFS 서버 경로 등 세부정보를 지정PVC와 PV 바인딩: 사용자가 PVC 생성 시 storageClassName을 생략하거나 "" 지정사용 사례: 고정된 스토리지 인프라가 이미 구성된 환경에 적합# 정적 PV 예시 (수동 생성 필요)apiVersion: v1kind: PersistentVolumemetadata: name: pv-nfs-staticspec: capacity: storage: 10G.. 2025. 3. 26.