허쉬탱의 workspace
[쿠버네티스 기초] 12. Namespace 본문
[쿠버네티스 기초] 12. Namespace
이 포스팅은 Udemy의 Certified Kubernetes Administrator with Practice Tests 강의를 정리한 내용입니다.
Namespace에 대해 알아봅시다.
- namespace
- DNS
- 배포
- Switch
- Resource Quota
namespace
- 쿠버네티스 상에서 논리적인 구분 단위
- namespace 없이 배포하게되면 default namespace에 배포됨
- 클러스터 운영 상 배포되는 오브젝트들은 kube-system namespace에 배포됨
- 모든 유저가 접근 가능한 kube-public이란 namespace도 있음
- 클러스터를 사용하는 사람이 많아질수록 namespace 구분을 통해 의도치 않은 행동들을 어느 정도 방지할 수 있음
- 각 namespace는 별도의 policy와(권한) quota(자원)를 가질 수 있음
DNS
- 타 namespace에 있는 서비스에 접근하는 경우에는 아래와 같이 전체 이름을 명시해야 함(서비스 생성 시 namespace에 맞는 DNS 엔트리가 자동으로 생성)
# dev namespace에 있는 서비스에 접근
mysql.connect("db-service.dev.svc.cluster.local")
- 여기서 cluster.local은 쿠버네티스 클러스터의 도메임 이름
- svc는 서비스의 서브 도메인
- dev는 namespace
- db-service는 서비스 이름
배포
- namespace 자체를 생성하고 싶은 경우 아래와 같이 yaml 파일 생성
apiVersion: v1
kind: Namespace
metadata:
name: dev
- 아니면 명령형으로 생성
kubectl create namespace dev
Switch
디폴트는 default로 잡혀있지만 config 설정을 통해 기본 namespace를 바꿀 수 있음
kubectl config set-context $(kubectl config current-context) --namespace=dev
Resource Quota
- 리소스 쿼타를 생성하기 위해 아래와 같이 작성
- namespace와 자원 명시
apiVersion: v1
kind: ResouceQuota
metadata:
name: compute-quota
namespace: dev
spec:
hard:
pods: "10"
requests.cpu: "4"
requests.memory: 5Gi
limits.gpu: "10"
limits.memory: 10Gi
'쿠버네티스 > 쿠버네티스 기초' 카테고리의 다른 글
[쿠버네티스 기초] 14. Imperative vs. Declarative (0) | 2022.07.29 |
---|---|
[쿠버네티스 기초] 13. Service (0) | 2022.07.29 |
[쿠버네티스 기초] 11. Deployment (0) | 2022.07.29 |
[쿠버네티스 기초] 10. ReplicaSet (0) | 2022.07.29 |
[쿠버네티스 기초] 09. YAML (0) | 2022.07.29 |
Comments