[따배쿠] 7. namespace

( 참고 : 따배쿠 https://www.youtube.com/watch?v=6n5obRKsCRQ&list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c )


Namespace

  • 클러스터는 “여러 팀/사용자가 함께 공유”함

  • 용도에 따라, 실행해야 하는 앱을 구분할때…

    \(\rightarrow\) 클러스터 하나를 “여러 개의 논리적인 단위(=namespace)로 나눠서” 사용


여러 개의 namespace를 생성할 수 있다

  • ex) blue, orange, green이라는 이름의 3개의 namespace

    롯데 e-commerce 내에서…

    • blue : 롯데 홈쇼핑
    • orange : 롯데 백화점
    • green : 롯데 면세점


figure2


namespace 생성

  • cli로 생성
    • kubectl create namespace blue
  • yaml로 생성
    • kubectl create namespace green --dry-run -o yaml > green-ns.yaml
    • vim green-ns.yaml
    • kubectl create -f green-ns.yaml


namespace 관리

  • kubectl get namespace
  • kubectl delete namespace


특정 namespace의 pod 가져오기

  • kubectl get pod

    • ( = kubectl get pod --namespace default )

    • ( = kubectl get pod -n default )
    • default namespace에서 찾음
  • kubectl get pod -n green


특정 namespace에 pod를 실행하기

  • kubectl create -f nginx.yaml
    • kubectl get pods -n default로 확인
  • kubectl create -f nginx.yaml -n blue
    • kubectl get pods -n blue로 확인


특정 namespace의 pod 삭제하기

kubectl delete pods mypod -n default

  • default 네임스페이스에서 실행되는 mypod 파드를 삭제하기
  • 다른 namespace에서 실행되는 mypod는 잘 살아있음


사용할 namespace를 switch하기

  • step 1) namespace를 포함한 context를 config에 등록해야
    • kubectl config --help :
      • config 명령어에 대한 도움말
    • kubectl config set-context bluekuber --cluster=kubernetes --user=kubernetes-admin --namespace=blue
      • config에 등록하기!
    • kubectl config view :
      • 현재 config 설정된 값들 확인하기
      • 기존 context외에, 새로운 것이 등록된 것을 알 수 있음
  • step 2) 등록된 namespace로 context를 변경
    • kubectl config use-context NAME
    • example)
      • kubectl config current-context : 현재의 default namespace 확인
      • kubectl config use-context bluekuber : switch하기
      • kubectl config current-context : 현재의 default namespace가 바뀐 것을 확인


namespace 삭제하기

  • kubectl delete namespaces blue