✔️

Namespace

namespace 생성

#CLI로 생성
kubectl create namespace product

#YAML로 생성
kubectl create namespace ecommence --dry-run -o yaml > ecommence-ns.yaml
vi ecommence-ns.yaml
kubectl create -f ecommence-ns.yaml

#namespace 조회
kubectl get namespaces
NAME              STATUS   AGE
default           Active   27d
ecommence         Active   5d16h
kube-node-lease   Active   27d
kube-public       Active   27d
kube-system       Active   27d
product           Active   41s

namespace에서 Pod 실행

cat > nginx.yaml
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - image: nginx:1.14
    name: nginx
    ports:
    - containerPort: 80
    - containerPort: 443

#namespace를 지정하지 않으면, default 네임스페이스를 사용한다
kubectl create -f nginx.yaml

#default namespace에서 pod 조회
kubectl get pods -n default

#이미 시스템에서 사용하고 있는 namespace인 kube-system
kubectl get pods -n kube-system

#모든 namespace에서 pod 조회
kubectl get pods --all-namespaces

default namespace 변경하기

#product를 default namespace로 바꾸기

#현재 context 정보 확인 해보고
kubectl config view

#user context를 하나 등록하는데, namespace를 product로 세팅한다
kubectl config set-context product-admin@kubernetes --cluster=kubernetes --user=kubernetes-admin --namespace product 
Context "product-admin@kubernetes" created

#추가된 context 정보 확인
kubectl config view 

#추가된 컨텍스트의 유저로 사용처리한다. 이때 유저가 가지고 있는 namespace가 default namespace가 된다.
kubectl config use-context product-admin@kubernetes 
Switched to context "product-admin@kubernetes".

#원복하려면 기존에 있던 kubernetes-admin@kubernetes 로 세팅
kubectl config use-context kubernetes-admin@kubernetes 
Switched to context "kubernetes-admin@kubernetes".