네임스페이스는 단일 클러스터 내의 리소스 그룹을 격리하는 메커니즘을 제공합니다.
•
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
복사