• ABOUT
  • PORTFOLIO
  • POSTS
  • GUESTBOOK

Β© 2025-2026 BlueCool12 All rights reserved.

2026.07.12Kubernetes

🏘️ λ„€μž„μŠ€νŽ˜μ΄μŠ€: ν΄λŸ¬μŠ€ν„° λ¦¬μ†ŒμŠ€μ˜ 논리적 λ‹¨μœ„

1. λ„€μž„μŠ€νŽ˜μ΄μŠ€(Namespace)

λ„μ»€λ‚˜ 도컀 μŠ€μ›œ λͺ¨λ“œμ—λŠ” μ»¨ν…Œμ΄λ„ˆλ₯Ό λ…Όλ¦¬μ μœΌλ‘œ λ‚˜λˆ  κ΄€λ¦¬ν•˜λŠ” κ°œλ…μ΄ μ—†λ‹€. docker psλ₯Ό μ‹€ν–‰ν•˜λ©΄ ν˜ΈμŠ€νŠΈμ— λ–  μžˆλŠ” λͺ¨λ“  μ»¨ν…Œμ΄λ„ˆκ°€ ν•œ λͺ©λ‘μ— λ’€μ„žμ—¬ λ‚˜μ˜¨λ‹€. μ»¨ν…Œμ΄λ„ˆ μˆ˜κ°€ λŠ˜μ–΄λ‚ μˆ˜λ‘ μ–΄λ–€ 것이 μ–΄λ–€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— μ†ν•˜λŠ”μ§€ κ΅¬λΆ„ν•˜κΈ°κ°€ μ–΄λ €μ›Œμ§„λ‹€.

μΏ λ²„λ„€ν‹°μŠ€λŠ” 이 문제λ₯Ό λ„€μž„μŠ€νŽ˜μ΄μŠ€(Namespace)λΌλŠ” 였브젝트둜 ν•΄κ²°ν•œλ‹€. λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” νŒŒλ“œ, λ ˆν”Œλ¦¬μΉ΄μ…‹, λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ, μ„œλΉ„μŠ€ 같은 λ¦¬μ†ŒμŠ€λ“€μ΄ λ¬Άμ—¬ μžˆλŠ” ν•˜λ‚˜μ˜ 가상 곡간이닀.

λ¦¬μ†ŒμŠ€λ₯Ό μš©λ„λ³„λ‘œ λ¬Άμ–΄ 두면, μ„œλ‘œ λ‹€λ₯Έ λͺ©μ μ˜ λ¦¬μ†ŒμŠ€κ°€ ν•œ ν΄λŸ¬μŠ€ν„° μ•ˆμ—μ„œ λ’€μ„žμ΄μ§€ μ•Šκ³  λ…Όλ¦¬μ μœΌλ‘œ λΆ„λ¦¬λœ 채 μš΄μ˜λœλ‹€.


2. 기본으둜 μ‘΄μž¬ν•˜λŠ” λ„€μž„μŠ€νŽ˜μ΄μŠ€

λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” namespace λ˜λŠ” μΆ•μ•½ν˜• ns둜 닀룬닀. ν˜„μž¬ ν΄λŸ¬μŠ€ν„°μ˜ λ„€μž„μŠ€νŽ˜μ΄μŠ€ λͺ©λ‘μ€ λ‹€μŒ λͺ…λ Ήμ–΄λ‘œ ν™•μΈν•œλ‹€.

kubectl get namespaces
kubectl get ns

λ³„λ„λ‘œ λ§Œλ“€μ§€ μ•Šμ•„λ„ ν΄λŸ¬μŠ€ν„°μ—λŠ” κΈ°λ³Έ λ„€μž„μŠ€νŽ˜μ΄μŠ€ λͺ‡ κ°œκ°€ 이미 μ‘΄μž¬ν•œλ‹€. κ·Έ 쀑 κ°€μž₯ 자주 μ“°λŠ” 것이 default이닀. μΏ λ²„λ„€ν‹°μŠ€ μ„€μΉ˜ μ‹œ μžλ™μœΌλ‘œ μ„€μ •λ˜λ©°, kubectl λͺ…령에 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ 이 defaultκ°€ λŒ€μƒμ΄ λœλ‹€.

kubectl get pods --namespace default

νŠΉμ • λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ§€μ •ν•  λ•ŒλŠ” --namespace λŒ€μ‹  μΆ•μ•½ν˜• -n을 μ“Έ 수 μžˆλ‹€. λ‹€μŒμ€ kube-system λ„€μž„μŠ€νŽ˜μ΄μŠ€μ˜ νŒŒλ“œλ₯Ό μ‘°νšŒν•˜λŠ” λͺ…령이닀.

kubectl get pods -n kube-system

kubectl이 기본으둜 μ‚¬μš©ν•˜λŠ” λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” defaultμ΄μ§€λ§Œ, 이 값은 κ³ μ •λœ 것이 μ•„λ‹ˆλ‹€. kubeconfig 파일의 μ»¨ν…μŠ€νŠΈ 섀정을 μˆ˜μ •ν•˜λ©΄ κΈ°λ³Έ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ›ν•˜λŠ” κ²ƒμœΌλ‘œ λ°”κΏ€ 수 μžˆλ‹€.

νŠΉμ • λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ 주둜 μž‘μ—…ν•œλ‹€λ©΄ 기본값을 λ°”κΏ” 두어 맀번 -n μ˜΅μ…˜μ„ λΆ™μ΄λŠ” λ²ˆκ±°λ‘œμ›€μ„ 쀄일 수 μžˆλ‹€.


3. 가상 ν΄λŸ¬μŠ€ν„°λ‘œ λ‚˜λˆ  μ“°λŠ” λ„€μž„μŠ€νŽ˜μ΄μŠ€

이처럼 λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” λ¦¬μ†ŒμŠ€λ₯Ό λ…Όλ¦¬μ μœΌλ‘œ λ¬Άμ–΄ ν•˜λ‚˜μ˜ 가상 ν΄λŸ¬μŠ€ν„°μ²˜λŸΌ λ‹€λ£° 수 있게 ν•΄μ€€λ‹€. ν•˜λ‚˜μ˜ ν΄λŸ¬μŠ€ν„°λ₯Ό μ—¬λŸ¬ λͺ…이 ν•¨κ»˜ μ‚¬μš©ν•œλ‹€λ©΄ μ‚¬μš©μžλ§ˆλ‹€ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό λ”°λ‘œ 두어 μ„œλ‘œμ˜ λ¦¬μ†ŒμŠ€κ°€ μ„žμ΄μ§€ μ•Šκ²Œ ν•  수 μžˆλ‹€.

μš©λ„μ— 따라 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό λ‚˜λˆ„λŠ” 방식도 ν”ν•˜λ‹€. νŠΉμ • λͺ©μ μ˜ λ””ν”Œλ‘œμ΄λ¨ΌνŠΈμ™€ μ„œλΉ„μŠ€κ°€ μ§€μ •ν•œ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œλ§Œ μ‘΄μž¬ν•˜λ„λ‘ λ‘λŠ” κ²ƒμœΌλ‘œ, 보톡 λͺ¨λ‹ˆν„°λ§, λ‘œλ“œ λ°ΈλŸ°μ‹±, 인그레슀처럼 성격이 λšœλ ·ν•œ μ»΄ν¬λ„ŒνŠΈλ₯Ό λ¬ΆλŠ” 데 μ‚¬μš©ν•œλ‹€.

λ‹€λ§Œ λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” μ–΄λ””κΉŒμ§€λ‚˜ 논리적 ꡬ뢄일 뿐, 물리적으둜 격리된 곡간은 μ•„λ‹ˆλ‹€. μ„œλ‘œ λ‹€λ₯Έ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ μƒμ„±λœ νŒŒλ“œκ°€ 같은 λ…Έλ“œ μœ„μ— ν•¨κ»˜ λ–  μžˆμ„ 수 μžˆλ‹€. λ„€μž„μŠ€νŽ˜μ΄μŠ€κ°€ λ‚˜λˆ„λŠ” 것은 λ¦¬μ†ŒμŠ€λ₯Ό 바라보고 κ΄€λ¦¬ν•˜λŠ” λ‹¨μœ„μ΄μ§€, νŒŒλ“œκ°€ μ‹€μ œλ‘œ λ°°μΉ˜λ˜λŠ” 물리적 μœ„μΉ˜κ°€ μ•„λ‹ˆκ°€.

*λ¦¬λˆ…μŠ€ λ„€μž„μŠ€νŽ˜μ΄μŠ€
이름은 κ°™μ§€λ§Œ λ³„κ°œμ˜ κ°œλ…μ΄λ‹€. λ¦¬λˆ…μŠ€ λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” μ»¨ν…Œμ΄λ„ˆμ— 격리된 곡간을 λ§Œλ“€κΈ° μœ„ν•΄ λ¦¬λˆ…μŠ€ 컀널이 μ œκ³΅ν•˜λŠ” 자체 κΈ°λŠ₯으둜, λ„€νŠΈμ›Œν¬ / 마운트 / ν”„λ‘œμ„ΈμŠ€ λ„€μž„μŠ€νŽ˜μ΄μŠ€ 등을 가리킨닀. μΏ λ²„λ„€ν‹°μŠ€μ˜ λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” ν΄λŸ¬μŠ€ν„° λ¦¬μ†ŒμŠ€λ₯Ό λ¬ΆλŠ” 논리적 λ‹¨μœ„λΌλŠ” μ μ—μ„œ μΈ΅μœ„κ°€ λ‹€λ₯΄λ‹€.


4. 라벨과의 차이

λ¦¬μ†ŒμŠ€λ₯Ό λ¬ΆλŠ”λ‹€λŠ” μ μ—μ„œ λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” 라벨(Label)κ³Ό λΉ„μŠ·ν•΄ 보인닀. 라벨도 λ‹€μŒμ²˜λŸΌ νŠΉμ • 쑰건의 νŒŒλ“œλ§Œ 골라낼 수 있기 λ•Œλ¬Έμ΄λ‹€.

kubectl get pods -l app=webserver

κ·ΈλŸ¬λ‚˜ λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” 라벨보닀 넓은 μš©λ„λ‘œ 쓰인닀. 라벨이 λ¦¬μ†ŒμŠ€λ₯Ό μ„ νƒν•˜κ³  λ¬ΆλŠ” μˆ˜μ€€μ— κ·ΈμΉœλ‹€λ©΄, λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” κ·Έ 경계λ₯Ό κΈ°μ€€μœΌλ‘œ 정책을 μ μš©ν•˜λŠ” λ‹¨μœ„κ°€ λœλ‹€.

예λ₯Ό λ“€μ–΄ ResourceQuota 였브젝트둜 νŠΉμ • λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ μƒμ„±λ˜λŠ” νŒŒλ“œμ˜ μžμ› μ‚¬μš©λŸ‰μ„ μ œν•œν•˜κ±°λ‚˜, μ• λ“œλ―Έμ…˜ 컨트둀러(Admission Controller)λ₯Ό μ΄μš©ν•΄ νŠΉμ • λ„€μž„μŠ€νŽ˜μ΄μŠ€μ˜ νŒŒλ“œμ—λŠ” 항상 μ‚¬μ΄λ“œμΉ΄ μ»¨ν…Œμ΄λ„ˆκ°€ 뢙도둝 κ°•μ œν•  수 μžˆλ‹€.

무엇보닀 λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” μ‚¬μš© λͺ©μ μ— 따라 νŒŒλ“œ, μ„œλΉ„μŠ€ 같은 λ¦¬μ†ŒμŠ€λ₯Ό 경계 λ‹¨μœ„λ‘œ 격리해, 관리 λŒ€μƒμ„ νŽΈλ¦¬ν•˜κ²Œ κ΅¬λΆ„ν•˜κ²Œ ν•΄ μ€€λ‹€.


5. YAML둜 λ„€μž„μŠ€νŽ˜μ΄μŠ€ 생성 및 λ¦¬μ†ŒμŠ€ 배치

λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” λͺ…λ Ή ν•œ μ€„λ‘œλ„, YAML λ§€λ‹ˆνŽ˜μŠ€νŠΈλ‘œλ„ λ§Œλ“€ 수 μžˆλ‹€.

kubectl create namespace <name>
kubectl apply -f namespace.yml

생성 μ—¬λΆ€λŠ” λͺ©λ‘μ—μ„œ μ΄λ¦„μœΌλ‘œ 걸러 ν™•μΈν•œλ‹€.

kubectl get ns | grep <name>

νŠΉμ • λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— λ¦¬μ†ŒμŠ€λ₯Ό λ§Œλ“œλŠ” 방법은 κ°„λ‹¨ν•˜λ‹€. λ¦¬μ†ŒμŠ€ YAML의 metadata.namespace ν•­λͺ©μ— λ„€μž„μŠ€νŽ˜μ΄μŠ€ 이름을 적으면 λœλ‹€.

apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
namespace: my-namespace
spec:
# ...

ν•˜λ‚˜μ˜ YAML 파일 μ•ˆμ— ---λ₯Ό κ΅¬λΆ„μžλ‘œ λ„£μœΌλ©΄ μ—¬λŸ¬ λ¦¬μ†ŒμŠ€λ₯Ό ν•œ λ²ˆμ— μ •μ˜ν•  μˆ˜λ„ μžˆλ‹€. λ„€μž„μŠ€νŽ˜μ΄μŠ€μ™€ κ·Έ μ•ˆμ— λ“€μ–΄κ°ˆ λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ, μ„œλΉ„μŠ€λ₯Ό ν•œ νŒŒμΌμ— λ‹΄μ•„ ν•¨κ»˜ μ μš©ν•˜λŠ” 식이닀.

kubectl apply -f deploy-svc-ns.yaml

νŠΉμ • λ„€μž„μŠ€νŽ˜μ΄μŠ€μ˜ λ¦¬μ†ŒμŠ€λ₯Ό μ‘°νšŒν•  λ•ŒλŠ” -n으둜 μ§€μ •ν•˜κ³ , λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— 상관없이 전체λ₯Ό 보렀면 --all-namespacesλ₯Ό μ“΄λ‹€.

kubectl get pods,services -n <name>
kubectl get pods --all-namespaces


6. λ‹€λ₯Έ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ˜ μ„œλΉ„μŠ€μ— μ ‘κ·Όν•˜κΈ°

μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„° μ•ˆμ—μ„œλŠ” μ„œλΉ„μŠ€ μ΄λ¦„λ§ŒμœΌλ‘œ κ·Έ μ„œλΉ„μŠ€μ— μ ‘κ·Όν•  수 있고, μ„œλΉ„μŠ€κ°€ νŠΈλž˜ν”½μ„ 뒀에 묢인 νŒŒλ“œλ‘œ λΌμš°νŒ…ν•œλ‹€. λ‹€λ§Œ μ΄λŠ” μ •ν™•νžˆλŠ” 같은 λ„€μž„μŠ€νŽ˜μ΄μŠ€ μ•ˆμ—μ„œλ§Œ μ„±λ¦½ν•œλ‹€. λ‹€λ₯Έ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— μžˆλŠ” μ„œλΉ„μŠ€λŠ” μ΄λ¦„λ§ŒμœΌλ‘œλŠ” μ ‘κ·Όν•  수 μ—†λ‹€.

λ‹€λ₯Έ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ˜ μ„œλΉ„μŠ€μ— μ ‘κ·Όν•˜λ €λ©΄ μ„œλΉ„μŠ€ 이름 뒀에 λ„€μž„μŠ€νŽ˜μ΄μŠ€ 이름을 뢙인닀.

<μ„œλΉ„μŠ€ 이름>.<λ„€μž„μŠ€νŽ˜μ΄μŠ€ 이름>

νŒŒλ“œ μ•ˆμ˜ DNS μ„€μ •(resolv.conf)에 svc.cluster.local 같은 검색 도메인이 등둝돼 μžˆμ–΄, μœ„μ²˜λŸΌ μ„œλΉ„μŠ€ 이름과 λ„€μž„μŠ€νŽ˜μ΄μŠ€λ§Œ 적어도 λ‚˜λ¨Έμ§€ κ²½λ‘œκ°€ μžλ™μœΌλ‘œ μ±„μ›Œμ Έ μ ‘κ·Όλœλ‹€.

이λ₯Ό λκΉŒμ§€ 펼친 μ„œλΉ„μŠ€μ˜ μ™„μ „ν•œ 도메인 이름(FQDN, Fully Qualified Domain Name)은 일반적으둜 λ‹€μŒ ν˜•μ‹μœΌλ‘œ κ΅¬μ„±λœλ‹€.

<μ„œλΉ„μŠ€ 이름>.<λ„€μž„μŠ€νŽ˜μ΄μŠ€ 이름>.svc.cluster.local

같은 λ„€μž„μŠ€νŽ˜μ΄μŠ€ μ•ˆμ—μ„œλŠ” μ•žλΆ€λΆ„λ§ŒμœΌλ‘œ 접근이 κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— μ„œλΉ„μŠ€ μ΄λ¦„λ§Œ 써도 λ˜λŠ” 것이고, λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό λ„˜μ–΄μ„€ λ•ŒλŠ” λ’€μͺ½ 경둜λ₯Ό ν•¨κ»˜ λͺ…μ‹œν•΄μ•Ό ν•˜λŠ” 것이닀.


7. λ„€μž„μŠ€νŽ˜μ΄μŠ€ μ‚­μ œμ™€ ν•¨κ»˜ μ‚¬λΌμ§€λŠ” λ¦¬μ†ŒμŠ€

λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” λ§€λ‹ˆνŽ˜μŠ€νŠΈ νŒŒμΌμ΄λ‚˜ μ΄λ¦„μœΌλ‘œ μ‚­μ œν•œλ‹€.

kubectl delete -f <YAML>
kubectl delete namespace <name>

단, λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ‚­μ œν•˜λ©΄ κ·Έ μ•ˆμ— μ‘΄μž¬ν•˜λ˜ λͺ¨λ“  λ¦¬μ†ŒμŠ€κ°€ ν•¨κ»˜ μ‚­μ œλœλ‹€. νŒŒλ“œ, μ„œλΉ„μŠ€, λ””ν”Œλ‘œμ΄λ¨ΌνŠΈ 등이 ν•œκΊΌλ²ˆμ— μ‚¬λΌμ§€λ―€λ‘œ, μ‚­μ œ 전에 λŒ€μƒ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— μ–΄λ–€ λ¦¬μ†ŒμŠ€κ°€ λ“€μ–΄ μžˆλŠ”μ§€ λ°˜λ“œμ‹œ 확인해야 ν•œλ‹€.


8. λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— μ†ν•˜λŠ” 였브젝트

λͺ¨λ“  λ¦¬μ†ŒμŠ€κ°€ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ κ΅¬λΆ„λ˜λŠ” 것은 μ•„λ‹ˆλ‹€. AλΌλŠ” λ„€μž„μŠ€νŽ˜μ΄μŠ€μ—μ„œ νŒŒλ“œλ₯Ό λ§Œλ“€λ©΄ κ·Έ νŒŒλ“œλŠ” Aμ—μ„œλ§Œ 보인닀. μ΄λ ‡κ²Œ νŠΉμ • λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— μ†Œμ†λ˜λŠ” 경우λ₯Ό 두고 'μ˜€λΈŒμ νŠΈκ°€ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— μ†ν•œλ‹€(namespaced)'κ³  ν‘œν˜„ν•œλ‹€.

λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— μ†ν•˜λŠ” 였브젝트의 μ’…λ₯˜λŠ” λ‹€μŒ λͺ…λ ΉμœΌλ‘œ ν™•μΈν•œλ‹€.

kubectl api-resources --namespaced=true

λ°˜λŒ€λ‘œ λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— μ†ν•˜μ§€ μ•ŠλŠ” μ˜€λΈŒμ νŠΈλ„ μžˆλ‹€. λŒ€ν‘œμ μΈ μ˜ˆκ°€ λ…Έλ“œ(Node)λ‹€. λ…Έλ“œλŠ” μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°κ°€ μ‚¬μš©ν•˜λŠ” μ €μˆ˜μ€€ 였브젝트둜, λ„€μž„μŠ€νŽ˜μ΄μŠ€λ‘œ κ΅¬λΆ„λ˜μ§€ μ•ŠλŠ”λ‹€. λ”°λΌμ„œ λ…Έλ“œλ₯Ό μ‘°νšŒν•  λ•Œ --namespace μ˜΅μ…˜μ„ 뢙여도 μ˜λ―Έκ°€ μ—†λ‹€.

λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— μ†ν•˜μ§€ μ•ŠλŠ” 였브젝트의 μ’…λ₯˜λŠ” λ‹€μŒ λͺ…λ ΉμœΌλ‘œ 확인할 수 μžˆλ‹€.

kubectl api-resources --namespaced=false
Previous post
πŸ‡°πŸ‡· 2026λ…„ 2λΆ„κΈ° 회고
Next post
No next post ( Β· . Β·)
Decorative logo