Search

4. K8s namespace

네임스페이스는 단일 클러스터 내의 리소스 그룹을 격리하는 메커니즘을 제공합니다.
namespace
클러스터 하느를 여러개의 논리 적인 단위로 나눠서 사용
쿠버네티스 클러스터 하나를 여러 팀이나 사용자가 함께 공유
용도에 따라 실행해야 하는 앱을 구분할 때 사용

초기 namespace

namespace
설명
default
Kubernetes에는 이 네임스페이스가 포함되어 있으므로 먼저 네임스페이스를 만들지 않고도 새 클러스터를 사용할 수 있습니다.
kube-node-lease
이 네임스페이스는 각 노드와 관련된 임대 객체를 보관합니다.
kube-public
이 네임스페이스는 모든 클라이언트(인증되지 않은 클라이언트 포함) 가 읽을 수 있습니다 .
kube-system
Kubernetes 시스템에서 생성된 객체의 네임스페이스입니다.

namespace 작업

namespace 조회

kubectl get namespace
Shell
복사

namespace 생성

# CLI를 활용해 생성 kubectl run nginx --image=nginx --namespace=<insert-namespace-name-here> # or kubectl create namespace <insert-namespace-name-here> # YAML 파일을 활용해 생성 kubectl create namespace <insert-namespace-name-here> --dry-run -o yaml > <insert-namespace-name-here>.yaml vi <insert-namespace-name-here>.yaml kubectl create -f <insert-namespace-name-here>.yaml
Shell
복사

namespace 삭제

kubectl delete namespace
Shell
복사

namespace switch

기본으로 사용하는 namespace를 default가 아닌 다른 이름의 namespace로 switch
kubectl config set-context --current --namespace=<insert-namespace-name-here> # Validate it kubectl config view --minify | grep namespace: # namespace를 포함한 context 등록 kubectl config --help kubectl config set-context <insert-namespace-name-here> kubectl config view # 등록된 namespace로 context 변경 kubectl config use-context <insert-namespace-name-here>
Shell
복사

API

yaml 파일을 들여다보면 apiVersion이 존재합니다.
이는 kubernetex가 update하는 api가 존재할 때마다 새로운 API 가 생성됩니다.
각 Object 의 종류마다 버전이 다르기 때문에 주의해야합니다.
아래의 명령어를 활용하면 해당 명령어의 apiVersion을 확인할 수 있습니다.
kubectl explain <object-api>
Shell
복사