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