네임스페이스는 단일 클러스터 내에서의 리소스 그룹 격리 메커니즘을 제공한다. 리소스의 이름은 네임스페이스 내에서 유일해야 한다. 다른 네임 스페이스에 같은 이름에 리소스가 존재하는 것은 가능하다.
my-namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: <insert-namespace-name-here>
namespace 설정 정보를 담은 yaml 파일을 생성한다.
kubectl create -f ./my-namespace.yaml
위 명령어를 통해 my-namespace의 이름의 네임스페이스를 생성한다. -f
플래그는 파일 이름을 뜻한다.
kubectl create namespace <insert-namespace-name-here>
kubectl delete namespaces <insert-some-namespace-name>
--namespace
플래그를 통해 요청에 대한 네임스페이스를 설정할 수 있다.
kubectl run nginx --image=nginx --namespace=<insert-namespace-name-here>
kubectl get pods --namespace=<insert-namespace-name-here>
네임스페이스가 존재하지 않는 오브젝트들은 default 네임스페이스를 갖게 된다. 만약 default 네임스페이스가 아니라 선호하는 네임스페이스를 기본값으로 사용하고 싶다면 다음 명령을 실행하면 된다.
kubectl config set-context --current --namespace=<insert-namespace-name-here>
# 확인하기
kubectl config view --minify | grep namespace:
모든 오브젝트가 네임스페이스에 속하지는 않는다. 대부분의 쿠버네티스 리소스는 네임스페이스에 속하지만, 네임스페이스 리소스 자체는 어떤 네임스페이스에도 속하지 않는다. 노드나 퍼시스턴트 볼륨과 같은 저수준 리소스는 어느 네임스페이스에도 속하지 않는다.