Kubernetes/Kubernetes Advanced

Kubernetes 리소스 정리: 개념과 종류

ygtoken 2025. 3. 4. 23:32
728x90

Kubernetes(쿠버네티스)는 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 운영하는 오픈소스 플랫폼입니다. Kubernetes의 핵심 개념 중 하나는 **리소스(Resource)**입니다. 클러스터 내에서 애플리케이션을 실행하고 관리하기 위해 다양한 리소스를 활용하며, 이를 이해하면 Kubernetes를 효과적으로 운영할 수 있습니다.

 

이번 글에서는 Kubernetes의 주요 리소스를 워크로드, 네트워크, 구성 및 스토리지, 클러스터, 정책, 모니터링 및 오토스케일링, 확장 및 기타 리소스로 분류하여 살펴보겠습니다.


1. 워크로드 리소스 (Workload Resources)

워크로드 리소스는 Kubernetes에서 실행되는 애플리케이션을 정의하고 관리하는 역할을 합니다.

리소스 설명

Pod Kubernetes에서 배포할 수 있는 가장 작은 실행 단위로, 하나 이상의 컨테이너를 포함함
ReplicaSet 동일한 Pod를 일정 개수 유지하도록 관리하는 리소스
Deployment 애플리케이션을 선언적으로 업데이트하는 리소스
StatefulSet 상태를 유지해야 하는 애플리케이션(Persistent Volume을 사용) 배포에 적합한 리소스
DaemonSet 클러스터 내 모든 노드에서 동일한 Pod를 실행하도록 보장하는 리소스
Job 한 번 실행되고 완료되는 작업을 관리하는 리소스
CronJob 일정한 주기마다 Job을 실행하는 리소스 (예: 예약 작업)

2. 서비스 및 네트워크 리소스 (Service & Networking Resources)

네트워크 리소스는 Pod 간 통신을 설정하고 외부에서 접근할 수 있도록 구성하는 역할을 합니다.

리소스 설명

Service Pod에 대한 네트워크 서비스를 제공하는 리소스 (ClusterIP, NodePort, LoadBalancer 지원)
Ingress HTTP 및 HTTPS 트래픽을 특정 Service로 라우팅하는 API Gateway 역할
NetworkPolicy Pod 간 네트워크 트래픽을 제한하는 네트워크 보안 정책을 정의하는 리소스

3. 구성 및 스토리지 리소스 (Configuration & Storage Resources)

애플리케이션의 구성 데이터를 설정하고, 스토리지를 관리하는 리소스입니다.

리소스 설명

ConfigMap 환경 변수 또는 설정 파일을 Kubernetes 리소스로 관리
Secret 암호, API 키 등의 민감한 데이터를 저장하는 리소스
PersistentVolume (PV) 클러스터에서 사용할 수 있는 저장소 리소스를 정의
PersistentVolumeClaim (PVC) Pod가 요청하는 스토리지 용량을 선언하는 리소스
StorageClass 동적 볼륨 프로비저닝을 제공하는 스토리지 리소스

4. 클러스터 리소스 (Cluster Resources)

클러스터의 상태를 관리하고, 네임스페이스를 통해 리소스를 분리하는 역할을 합니다.

리소스 설명

Node 클러스터에서 워크로드를 실행하는 물리적 또는 가상 서버
Namespace 리소스를 논리적으로 격리하여 분리하는 단위
ResourceQuota 네임스페이스별로 리소스 사용량을 제한하는 정책
LimitRange Pod 또는 컨테이너의 리소스 사용 제한을 설정하는 정책

5. 정책 및 접근 제어 리소스 (Policy & Access Control Resources)

Kubernetes 내에서 보안 및 접근 제어를 관리하는 리소스입니다.

리소스 설명

Role & RoleBinding 네임스페이스 내에서 특정 리소스에 대한 권한을 설정하는 리소스
ClusterRole & ClusterRoleBinding 클러스터 전체에서 특정 리소스에 대한 권한을 설정하는 리소스
ServiceAccount Pod가 Kubernetes API에 접근할 때 사용하는 계정
PodSecurityPolicy (PSP) (Deprecated) Pod의 보안 정책을 정의하는 리소스 (대체: Pod Security Admission)

6. 오토스케일링 및 모니터링 리소스 (Autoscaling & Monitoring Resources)

애플리케이션과 클러스터의 리소스 사용량을 측정하고, 필요에 따라 자동으로 조정하는 역할을 합니다.

리소스 설명

HorizontalPodAutoscaler (HPA) Pod의 CPU, 메모리 사용량을 기반으로 Pod 개수를 자동 조정
VerticalPodAutoscaler (VPA) Pod의 리소스 요청 및 제한을 자동으로 조정
ClusterAutoscaler 클러스터의 노드 개수를 자동으로 조정
MetricsServer 리소스 사용량을 수집하는 서비스

7. 확장 및 기타 리소스 (Custom Resources & Extensions)

Kubernetes의 기본 리소스 외에도, 사용자가 필요에 따라 확장할 수 있는 리소스입니다.

리소스 설명

CustomResourceDefinition (CRD) Kubernetes에서 사용자 정의 리소스를 생성할 수 있도록 지원하는 리소스
Operator 애플리케이션의 배포 및 운영을 자동화하는 컨트롤러

 

728x90