물리적인 클러스터내에서 논리적으로 클러스터를 나누어서 사용 할 수 있도록 구분.
기본적으로 default Namespace 존재.
kube-로 시작하는 Namespace는 쿠버네티스 운영환경에 필요한 기본적인 Namespace.
CLI 을 이용한 Namespace 생성
kubectl create namespace [namespace명] --dry-run -o yaml > [yaml파일명 ]
--dry-run
: 실제로 생성하지 않고 생성가능한지 확인용
-o yaml
: 실행 결과를 yaml 파일로 출력
- yaml 내용물
apiVersion: v1
kind: Namespace
metadata:
name: [namespcae명]
yaml 파일을 통한 namespcae 생성 명령어
kubectl create -f [yaml파일]
kubectl create -f [yaml파일명] -n [실행될 네임스페이스]
<- 생략시 default namespace
쿠버네티스의 config 에 Switching 할 context를 생성해야한다.
kubectl config view
: 쿠버네티스 설정 정보 확인 (context 확인 가능)
context 를 이용한 default namespace 지정하여 파드 생성 등을 네임스페이스 지정없이 작업 가능.
kubectl config current-context
kubectl config get-contexts [컨택스트명]
kubectl config set-context [컨텍스트명] --cluster=[클러스터명] --user=[유저명] --namespace=[네임스페이스]
kubectl config use-context [컨텍스트명]
--> [컨텍스트명]의 namespace를 default namespace로 가지게 되며, 이후 -n [네임스페이스] 옵션 없이 사용가능.네임스페이스 내 pod 삭제
kubectl delete pods [pod] -n [namespace] --> 네임스페이스 생략시 , 현재 컨텍스트의 네임스페이스로...
네임스페이스 삭제 (안에 모든 pods 삭제)
kubectl delete namespaces [namespace]
네임스페이스 확인
kubectl get namespaces
API version
alpha -> beta -> stable 단계를 거쳐서 업데이트 되고있다.
kubectl explain pod
: resouce documentaion. API version 및 description 확인 가능.
Object명 | 버전 |
---|---|
Deployment | apps/v1 |
Pod | v1 |
ReplicaSet | apps/v1 |
ReplicationController | v1 |
Service | v1 |
PersistentVolume | v1 |