쿠버네티스에서 네임스페이스(Namespace)는 클러스터 내의 리소스를 논리적으로 분리하여 관리하는 방법을 제공합니다. 네임스페이스를 사용하면 팀, 프로젝트, 환경(예: dev, qa, prod) 등에 따라 리소스를 분리할 수 있습니다.
다음은 myapp-pod
이라는 이름의 Pod를 생성하는 두 가지 YAML 파일입니다. 첫 번째 파일에서는 Pod가 development
네임스페이스에 생성되도록 지정하였습니다. 두 번째 파일에서는 네임스페이스를 지정하지 않았으므로, Pod는 기본적으로 default
네임스페이스에 생성됩니다.
# myapp-pod-ns.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
namespace: development
spec:
containers:
- name: myapp
image: ghcr.io/c1t1d0s7/go-myweb:alpine
ports:
- containerPort: 8080
protocol: TCP
# myapp-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: myapp-pod
spec:
containers:
- name: myapp
image: ghcr.io/c1t1d0s7/go-myweb:alpine
ports:
- containerPort: 8080
protocol: TCP
네임스페이스를 관리하는 방법은 다음과 같습니다:
모든 네임스페이스를 표시하려면 다음 명령어를 사용합니다:
kubectl get namespaces
특정 네임스페이스에 Pod를 생성하려면 -n
플래그를 사용합니다:
kubectl create -f myapp-pod.yaml -n kube-public
특정 네임스페이스의 Pod를 표시하려면 -n
플래그를 사용합니다:
kubectl get pod myapp-pod -n kube-public
특정 네임스페이스의 Pod를 삭제하려면 -n
플래그를 사용합니다:
kubectl delete -f myapp-pod.yaml -n kube-public
새 네임스페이스를 생성하려면 다음 명령어를 사용합니다:
kubectl create namespace development
네임스페이스를 지정하여 Pod를 생성하려면 다음 명령어를 사용합니다:
kubectl create -f myapp-pod-ns.yaml
네임스페이스를 지정하여 Pod를 삭제하려면 다음 명령어를 사용합니다:
kubectl delete -f myapp-pod-ns.yaml
네임스페이스를 생성하려면 다음 명령어를 사용합니다:
kubectl create -f qa-ns.yaml
네임스페이스를 삭제하려면 다음 명령어를 사용합니다:
kubectl delete -f qa-ns.yaml
이렇게 네임스페이스를 사용하면 쿠버네티스 리소스를 효과적으로 분리하고 관리할 수 있습니다.