Kubernetes namespace
20 Apr 2019
-
많은 구성 요소를 포함하는 복잡한 시스템을 더 작은 그룹으로 분할할 수 있습니다.
-
리눅스 네임스페이스가 아니며 서로 프로세스를 격리시키는 데 사용합니다.
- 리소스 이름은 네임스페이스 내에서만 고유해야 합니다. 두개의 네임스페이스는 동일한 이름의 리소스를 포함할 수 있습니다.
- 네임스페이스는 특정 사용자에게만 특정 리소스 접근을 허용하고 개별 사용자가 사용할 수 있는 컴퓨팅 리소스의 양을 제한하는 데에도 사용할 수 있습니다.
namespace 확인
kubectl get ns # 네임스페이스 확인
kubectl get pods --namespace kube-system # 네임스페이스에 속하는 pod 확인
=> kubectl get pods --n kube-system
기본으로 설정되어 있는 namespace
NAME STATUS AGE
default Active 4d
kube-public Active 4d
kube-system Active 4d
Kube-system namespace는 쿠버네티스 시스템과 관련된 리소스입니다.
namespace 생성
yaml 파일로 namespace 생성
# custom-namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: custom-namespace # namespace의 이름
kubectl create -f custom-namespace.yaml
kubectl로 namespace 생성
kubectl create namespace custom-namespace # 새로운 namespace 생성
kubectl create -f kubia-manual.yaml -n custom-namespace # 리소스를 생성할 때 namespace를 지정
다른 네임스페이스의 객체를 나열, 설명, 수정, 삭제할 때 –namespace 플래그를 전달해야 합니다. 네임스페이스를 지정하지 않으면 현재 컨텍스트에 구성된 기본 네임스페이스에서 작업을 수행합니다.
namespace 삭제
namespace를 삭제해 포드 삭제
kubectl delete ns custom-namespace # 포드는 네임스페이스와 함께 자동으로 삭제