일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 백준
- AWS
- 프론트엔드
- TypeScript
- 백엔드
- kubernetes
- docker
- 클라우드
- 솔리디티
- node.js
- JavaScript
- next.js
- 알고리즘
- 블록체인
- 리액트
- react
- BFS
- k8s
- 컴퓨터공학
- 이슈
- HTML
- 자바스크립트
- 이더리움
- 쿠버네티스
- 웹
- es6
- 타입스크립트
- CSS
- 가상화
- 파이썬
- Today
- Total
즐겁게, 코드
쿠버네티스 베스트 프랙티스 - 02. 네임스페이스 활용하기 본문
본 포스트는 Google Cloud Tech의 영상 내용을 정리하면서 작성한 글입니다.
이번 글에서는 네임스페이스를 통해 소스를 분리하는 방법을 소개합니다.
네임스페이스란?
쿠버네티스의 네임스페이스란 한 클러스터 내에서 격리된 개발 환경을 제공하는 방법입니다.
즉 네임스페이스는 "클러스터 안의 클러스터" 라고 생각할 수 있으며, 이를 통해 리소스들을 원하는 그룹으로 묶거나 성능을 최적화하는데 도움을 줄 수 있습니다.
예를 들어 개발용 환경과 배포용 환경을 따로 구축하고 싶다면 클러스터를 둘 생성할 필요 없이, 개발용 네임스페이스와 배포용 네임스페이스를 구성하는 것으로 개발 환경을 분리할 수 있게 됩니다.
네임스페이스 생성 & 사용하기
네임스페이스는 kubectl create namespace <생성할 네임스페이스 이름>
커맨드를 사용하거나, kind:Namespace
템플릿을 통해 생성할 수 있습니다.
- 네임스페이스를 생성하는 템플릿 예시
apiVersion: v1
kind: Namespace
metadata:
name: production
labels:
name: 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
kubens 로 네임스페이스 간단하게 전환하기
개발 규모가 커지면 네임스페이스가 다양해질 수 있는데요, 매번 kubectl get namespaces
를 통해 네임스페이스를 조회하고, 특정 네임스페이스의 리소스를 조회하기 위해 --namespace
플래그나 -n
숏 플래그를 붙이는 것은 번거롭게 느껴질 수 있습니다.
이를 위해, 네임스페이스를 보다 간단하게 다룰 수 있게 해주는 도구가 존재합니다.
- kubens 라이브러리
쿠버네티스 컨텍스트 관리용 kubectx를 설치하면 kubens가 함께 설치됩니다.
이 kubens 라는 도구를 사용하면 현재 클러스터에 존재하는 네임스페이스를 조회하거나, 기본 네임스페이스를 특정 네임스페이스로 쉽게 전환할 수 있습니다.
매번 default 네임스페이스에서 kubectl get ~ --namepace=develop
을 입력할 필요 없이, kubens <네임스페이스명>
커맨드를 통해 네임스페이스로 전환하고 모든 명령어가 기본적으로 해당 네임스페이스 위에서 작용하도록 할 수 있습니다. 🙂
'☁️ 클라우드 > Kubernetes' 카테고리의 다른 글
jsonpath를 활용해 json에서 특정 데이터만 추출하기 (0) | 2022.05.11 |
---|---|
쿠버네티스 사용 시 편리한 커맨드 팁 정리 (0) | 2022.05.08 |
쿠버네티스 베스트 프랙티스 - 01. 작은 이미지 활용하기 (0) | 2022.05.07 |
쿠버네티스의 서비스 컴포넌트 살펴보기 (0) | 2022.05.03 |
Helm을 통해 템플릿에서 변수화된 값 사용하기 (0) | 2022.04.13 |