본문 바로가기
Kubernetes(k8s)/따배쿠(따라하면서 배우는 쿠버네티스) 학습

[k8s]Kubernetes namespace

by 열정주니어 2023. 2. 10.
반응형

k8s namespace

  • k8s api 종류 중 하나
  • 물리적인 클러스터 하나를 여러 개의 논리적인 단위로 나눠서 사용
    • 쿠버네티스 클러스터 하나를 여러 팀이나 사용자가 함께 공유
    • 용도에 따라 실행해야 하는 앱을 구분할 때 사용
  • 수 많은 pod를 용도에 따라 논리적으로 분류하여 활용하는 방법
  • 통합솔루션에서

Example

  • 롯데에서 클러스터 하나를 롯데 홈쇼핑, 백화점, 면세점에서 나눠서 사용한다고 가정
  • 클러스터를 3개의 namespace로 구분하여 각 회사에 할당
    • blue (API - Pod - Service - P.V) -> 롯데 홈쇼핑
    • orange (API - Pod - Service - P.V) -> 롯데 백화점
    • green (API - Pod - Service - P.V) -> 롯데 면세점

네임스페이스 사용하기

  • 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 gree-ns.yaml
  • namespace 관리
    • kubectl get namespace
    • kubectl delete namespace

 

네임스페이스 실습

  • 시스템에 네임스페이스 개수 확인
    • kubectl get namespaces
    • master node에 기본으로 들어있는 namespace 종류
      • default - 네임스페이스 선택하지 않았을 때 기본 값
        • 명령시 네임스페이스명 지정하지 않으면 default 네임스페이스 결과 출력됨
      • kube-node-lease
      • kube-public
      • kube-system - master node의 운영환경에 필요한 pods들
        • api server, 스케줄러 등
  •  네임스페이스의 pods 확인
    • kubectl get pods --namespace [네임스페이스명]
    • kubectl get pods -n [네임스페이스명]
  • 모든 네임스페이스의 pods 확인
    • kubectl get pods --all-nm
  • 네임스페이스 생성(CLI)
    • kubectl create namespace blue
  • 네임스페이스 생성(yaml)
    • kubectl create namespace orange --dry-run -o yaml > orange-ns.yaml (yaml파일 생성)
    • vi orange-ns.yaml (yaml파일 수정)
    • kubectl create -f orange-ns.yaml (yaml파일로 생성)
  • 네임스페이스에서 pod 생성하기
    • kubectl create -f nginx.yaml -n blue
    • yaml 파일 내에서 metadata에 namespace를 지정하여 입력 후 yaml파일로 pod 생성하면 지정된 namespace에 pod 생성
  • 네임스페이스 switch - 기본으로 사용할 네임스페이스를 default가 아닌 다른 것으로 변경
    • namespace를 포함한 context 등록
      • kubectl config --help (config 도움말)
      • kubectl config view
      • kubectl config set-context blue@kubernetes --cluster=kubernetes --user=kubernets-admin --namespace=blue
    • 현재 context 확인
      • kubectl config current-context
    • 등록된 namespace로 context 변경
      • kubectl config use-context blue@kubernetes

config view 내 context 정보
새로 등록한 context 포함
네임스페이스 변경

  • 네임스페이스의 pod 삭제하기
    • kubectl delete pods mypod -n default
  • 네임스페이스 삭제하기
    • 네임스페이스 삭제하면 안의 내용물들도 다 삭제됨
      • kubectl delete namespace blue

 

Reference

따배쿠7강

    •  
반응형