관리 메뉴

즐겁게, 코드

쿠버네티스 베스트 프랙티스 - 02. 네임스페이스 활용하기 본문

☁️ 클라우드/Kubernetes

쿠버네티스 베스트 프랙티스 - 02. 네임스페이스 활용하기

Chamming2 2022. 5. 8. 11:21

본 포스트는 Google Cloud Tech의 영상 내용을 정리하면서 작성한 글입니다.

이번 글에서는 네임스페이스를 통해 소스를 분리하는 방법을 소개합니다.

네임스페이스란?

쿠버네티스의 네임스페이스란 한 클러스터 내에서 격리된 개발 환경을 제공하는 방법입니다.

즉 네임스페이스는 "클러스터 안의 클러스터" 라고 생각할 수 있으며, 이를 통해 리소스들을 원하는 그룹으로 묶거나 성능을 최적화하는데 도움을 줄 수 있습니다.

예를 들어 개발용 환경과 배포용 환경을 따로 구축하고 싶다면 클러스터를 둘 생성할 필요 없이, 개발용 네임스페이스와 배포용 네임스페이스를 구성하는 것으로 개발 환경을 분리할 수 있게 됩니다.

네임스페이스 생성 & 사용하기

네임스페이스는 kubectl create namespace <생성할 네임스페이스 이름> 커맨드를 사용하거나, kind:Namespace 템플릿을 통해 생성할 수 있습니다.

  • 네임스페이스를 생성하는 템플릿 예시
apiVersion: v1
kind: Namespace
metadata:
  name: production
  labels:
    name: production

새로운 production 네임스페이스가 생성된 모습입니다.

이제 리소스 템플릿의 metadata.namespace 속성을 명시해 특정 네임스페이스에 리소스를 생성할 수 있습니다.

apiVersion: v1
kind: Service
metadata:
  name: demo-service
  # 이 서비스는 "production" 네임스페이스 위에 생성됩니다.
  # 만약 해당 네임스페이스가 없다면 새 네임스페이스를 만들지 않고 생성에 실패합니다.
  namespace: "production"
spec:
  selector:
    app: namespace-demo
  type: ClusterIP
  ports:
    - port: 3000
      protocol: TCP
      targetPort: 3000​

production 네임스페이스에 서비스가 생성된 모습입니다.

kubens 로 네임스페이스 간단하게 전환하기

개발 규모가 커지면 네임스페이스가 다양해질 수 있는데요, 매번 kubectl get namespaces를 통해 네임스페이스를 조회하고, 특정 네임스페이스의 리소스를 조회하기 위해 --namespace 플래그나 -n 숏 플래그를 붙이는 것은 번거롭게 느껴질 수 있습니다.

 

이를 위해, 네임스페이스를 보다 간단하게 다룰 수 있게 해주는 도구가 존재합니다.

  • kubens 라이브러리
 

GitHub - ahmetb/kubectx: Faster way to switch between clusters and namespaces in kubectl

Faster way to switch between clusters and namespaces in kubectl - GitHub - ahmetb/kubectx: Faster way to switch between clusters and namespaces in kubectl

github.com

쿠버네티스 컨텍스트 관리용 kubectx를 설치하면 kubens가 함께 설치됩니다.

이 kubens 라는 도구를 사용하면 현재 클러스터에 존재하는 네임스페이스를 조회하거나, 기본 네임스페이스를 특정 네임스페이스로 쉽게 전환할 수 있습니다.

매번 default 네임스페이스에서 kubectl get ~ --namepace=develop 을 입력할 필요 없이, kubens <네임스페이스명> 커맨드를 통해 네임스페이스로 전환하고 모든 명령어가 기본적으로 해당 네임스페이스 위에서 작용하도록 할 수 있습니다. 🙂

 

반응형
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆