μλ μμΈν λ΄μ©μ νμΈνμ¬, λ¨μν Containerλ₯Ό λ°°ν¬νλ μμ€μ λμ΄,
νλ‘λμ
κΈ μ΄μ μλμ κ°μΆλ €λ©΄ Kubernetes κ°μ²΄(Object) μ΄ν΄λ μ νμ΄ μλ νμμ
λλ€!
[μΆμ²] Engineers Donβt Fully Understand Kubernetes Objects | by Ray Sainiz | Sep, 2025
λ°λμ μ΅νμΌ ν Kubernetes κ°μ²΄λ€:
- Namespace, Pod, ReplicaSet, Deployment, Service, Ingress, Secret, ConfigMap, LimitRange, ResourceQuota, HorizontalPodAutoscaler, RBAC (Role/RoleBinding, ClusterRole/ClusterRoleBinding), StorageClass, PersistentVolumeClaim (PVC), PersistentVolume(PV), NetworkPolicy, Job, CronJob, StatefulSet, DaemonSet)
1- Namespace
ν΄λ¬μ€ν° μμμ μμμ λ
Όλ¦¬μ μΌλ‘ λΆλ¦¬νκ³ μ²΄κ³μ μΌλ‘ κ΄λ¦¬ν μ μλλ‘ ν΄μ€λλ€.
## Command
$ kubectl get ns
## Output
NAME STATUS AGE
default Active 30d
dev Active 10d
prod Active 30d
2- Pod
κ°μ₯ μμ λ°°ν¬ λ¨μλ‘, νλ μ΄μμ λ°μ νκ² μ°κ΄λ 컨ν
μ΄λλ₯Ό μ€νν©λλ€.
kubectl get pods
NAME READY STATUS RESTARTS AGE
web-app-abc123 1/1 Running 0 3h
3- ReplicaSet
λ‘€λ§ μ
λ°μ΄νΈμ νμ₯μ μν΄ ReplicaSetμ μ μΈμ μΌλ‘ κ΄λ¦¬ν©λλ€.
kubectl get rs
NAME DESIRED CURRENT READY
web-app-6f7b6c7d8 3 3 3
4- Deployment
ReplicaSetμ μ μΈμ μΌλ‘ κ΄λ¦¬νλ©°, λ‘€λ§ μ
λ°μ΄νΈμ νμ₯μ μμ½κ² ν μ μκ² ν΄μ€λλ€.
kubectl get rs
NAME DESIRED CURRENT READY
web-app-6f7b6c7d8 3 3 3
5- Service
Podμ μ κ·Όν μ μλ μμ μ μΈ IP/DNSλ₯Ό μ 곡νκ³ , λ‘λ λ°Έλ°μ± κΈ°λ₯λ μ§μν©λλ€.
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S)
web-svc ClusterIP 10.96.0.1 <none> 80/TCP
6- Ingress
μλΉμ€μ λν μΈλΆ μ κ·Όμ κ΄λ¦¬νλ©°, λΌμ°ν
κ³Ό TLS μ’
λ£λ₯Ό μ§μν©λλ€.
kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS
web-ingress nginx app.example.com 34.120.0.10 80,443
7- Secret
λΉλ°λ²νΈλ ν ν° κ°μ λ―Όκ°ν λ°μ΄ν°λ₯Ό μμ νκ² μ μ₯νλ©°, base64λ‘ μΈμ½λ©λ ννλ‘ κ΄λ¦¬ν©λλ€.
kubectl get secrets
NAME TYPE DATA AGE
db-credentials Opaque 2 7d
8- ConfigMap
λ―Όκ°νμ§ μμ μ ν리μΌμ΄μ
μ€μ κ°μ key-value ννλ‘ μ μ₯ν©λλ€. μ½λμ μ€μ μ λΆλ¦¬ν΄ κ΄λ¦¬ν μ μκ² ν΄μ€λλ€.
kubectl get configmaps
NAME DATA AGE
app-config 3 2d
9- LimitRange
Podκ³Ό 컨ν
μ΄λκ° μ¬μ©ν μ μλ μ΅μΒ·μ΅λ μμ νλλ₯Ό μ μν©λλ€. μ΄λ₯Ό ν΅ν΄ μμ λ¨μ©μ λ°©μ§ν μ μμ΅λλ€.
kubectl get limitrange -n dev
NAME AGE
container-limits 14d
10- ResourceQuota
Namespace μ 체μμ μ¬μ©ν μ μλ μμ μ΄λμ μ νν΄, μμμ΄ κ³΅μ νκ² λ°°λΆλλλ‘ ν©λλ€.
kubectl get resourcequota -n dev
NAME CPU(REQUEST) MEMORY(REQUEST) AGE
compute-quota 4 8Gi 14d
11- HorizontalPodAutoscaler
CPU, λ©λͺ¨λ¦¬, νΉμ μ¬μ©μ μ μ μ§νλ₯Ό κΈ°λ°μΌλ‘ Pod μλ₯Ό μλμΌλ‘ λ리거λ μ€μ
λλ€.
kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS AGE
web-app-hpa Deployment/web-app 50%/80% 2 5 7d
12- RBAC (Role/RoleBinding, ClusterRole/ClusterRoleBinding)
ν΄λ¬μ€ν° λ΄ μΈλ°ν κΆν κ΄λ¦¬λ₯Ό μ 곡νλ μν κΈ°λ° μ κ·Ό μ μ΄ λ°©μμ
λλ€.
kubectl get roles -n dev
NAME AGE
dev-reader 20d
13- StorageClass
μ€ν λ¦¬μ§ μ νμ μ μνκ³ λμ νλ‘λΉμ λμ μ§μν©λλ€. ν΄λΌμ°λ λ€μ΄ν°λΈ νκ²½μμ μ μ©νκ² μ°μ
λλ€.
kubectl get storageclass
NAME PROVISIONER AGE
gp2 (default) kubernetes.io/aws-ebs 30d
14- PersistentVolumeClaim (PVC)
Podμ΄ μ€ν 리μ§λ₯Ό μμ²ν μ μλλ‘ PersistentVolumeκ³Ό μ°κ²°ν΄μ€λλ€.
kubectl get pvc
NAME STATUS VOLUME CAPACITY AGE
db-storage Bound pv001 50Gi 12d
15- PersistentVolume (PV)
ν΄λ¬μ€ν° λ΄ μ€μ μ€ν 리μ§λ₯Ό μ 곡νλ©°, μλ νΉμ λμ μΌλ‘ νλ‘λΉμ λλ©λλ€.
kubectl get pv
NAME CAPACITY ACCESS MODES STATUS AGE
pv001 50Gi RWO Bound 12d
16- NetworkPolicy
Pod κ° λλ Podκ³Ό μλΉμ€ κ°μ ν΅μ μ μ μ΄ν©λλ€. λ€νΈμν¬ λ³΄μμ λ°λμ νμν μμμ
λλ€.
kubectl get networkpolicy
NAME POD-SELECTOR AGE
allow-frontend app=frontend 10d
17- Job
μμ
μ΄ μ±κ³΅ν λκΉμ§ Podμ μ€νν©λλ€. λ°μ΄ν°λ² μ΄μ€ λ§μ΄κ·Έλ μ΄μ
κ°μ μΌνμ± μμ
μ μ ν©ν©λλ€.
kubectl get jobs
NAME COMPLETIONS DURATION AGE
data-migration 1/1 30s 2h
18- CronJob
Jobμ μ ν΄μ§ μ£ΌκΈ°λ§λ€ μ€νν©λλ€. λ°±μ
μ΄λ μ κΈ° 리ν¬νΈ μμ±μ μ μ©ν©λλ€.
kubectl get cronjobs
NAME SCHEDULE SUSPEND ACTIVE LAST SCHEDULE
db-backup 0 2 * * * False 0 4h ago
19- StatefulSet
κ³ μ λ IDμ μꡬ μ€ν 리μ§λ₯Ό κ°λ Podμ κ΄λ¦¬ν©λλ€. λ°μ΄ν°λ² μ΄μ€ κ°μ μν κΈ°λ° μν¬λ‘λμ μ ν©ν©λλ€.
kubectl get statefulsets
NAME READY AGE
mysql-db 3/3 5d
20- DaemonSet
ν΄λ¬μ€ν°μ λͺ¨λ λ
Έλμμ Podμ΄ μ€νλλλ‘ λ³΄μ₯ν©λλ€. λ‘κΉ
μμ΄μ νΈ, λͺ¨λν°λ§, λ€νΈμνΉ λ±μ νμ©λ©λλ€.
kubectl get daemonsets -n kube-system
NAME DESIRED CURRENT READY
fluentd-logging 3 3 3
μ°Έκ³ : ν°λ―Έλ μμμ λ°λ‘ λ¬Έμλ₯Ό νμΈνκ³ μΆλ€λ©΄ μλ λͺ
λ Ήμ μ¬μ©ν μ μμ΅λλ€.
kubectl explain <object-name>
