[K8S] namespace

Hyun-Sung Kim·2025년 1월 3일

Kubernetes

목록 보기
3/24
post-thumbnail

Namespace란?

  • K8S cluster 내의 논리적인 분리 단위로써, 'Live', 'QA' 등 서비스 목적에 따라 리소스들을 격리하여 관리할 수 있는 공간이다.

<목 적>

  • 하나의 클러스터에 Live/QA/Review 환경을 모두 두면, 혼란이 생길 수 있기 때문에
  • 네임스페이스를 사용하여 각각의 환경마다 논리적인 분리를 통한 구분
  • ResourceQuota를 사용하여 네임스페이스마다 CPU, MEMORY등의 개별적인 리소스 할당이 가능
  • 위와 같이 Kubernetes 클러스터를 복수의 목적으로 공유하여 이용할 경우 유용함

<기본 제공되는 NameSpace>

  • kube-system
    - K8S 클러스터의 컴포넌트와 add-on이 deploy됨
  • kube-public
    - 모든 사용자(인증되지 않은 사용자 포함)가 읽기 권한으로 접근
    - 주로 전체 클러스터 중에 공개적으로 드러나서 읽을 수 있는 리소스를 위해 예약되어 있음
    - 모든 유저가 이용할 수 있는 ConfigMap 등을 배치
  • default
    - 기본 Namespace

추가 활용 시나리오

  • RBAC을 함께 이용하여, 클러스터 조작에 관한 권한을 Namespace 마다 나누는 것이 가능
  • Network Policy와 함께 조합하여 Namespace 간의 통신의 제어를 실행

고려 사항

  • eksctl로 생성한 fargate 모드 EKS cluster에는, default로 생성되는 fargate profile의 namespace가 'default, kube-system'만 잡혀 있혀 있다.
  • Fargate Profile은 immutable 리소스라서, namespace 값을 'update' 가 불가하고, 새로 만들고 기존껄 지워주면 된다.

구성 절차

1) Namespace 생성

kubectl create ns live
kubectl create ns qa

2) 생성한 namespace 확인

kubectl get ns

    
profile
Cloud Engineer

0개의 댓글