우리는 default 네임스페이스 안에서 작업을 하고 있었다.
쿠버네티스의 기존 네임스페이스
작은 클러스터로 쿠베를 이용하고 있을때는 네임스페이스 고민 없이, default 로 작업해라. 하지만, 엔터프라이즈 또는 프로덕션을 목적으로 쿠버네티스 클러스터를 확장하고 사용하려고 하면, 고유 네임스페이스 활용을 고려할 수 있다.
각 네임스페이스에는 누가 , 무엇을 할 수 있는지, 정의하는 고유한 정책 세트가 있을 수 있습니다. 각 네임스페이스가 보장하는 명명되는 공간 각각에 리소스를 할당할 수 있습니다. (resource limits)
mysql.connect("db-service")
만 이용하면 됨.mysql.connect("db-service.dev.svc.cluster.local")
과 같이 , db 서비스가 될 servicename.namespace.svc.cluster.local
형식을 사용하면된다. (dns 항목과 유사하게 동작)
서비스의 dns 이름을 자세히 살펴보면, 이 형식으로 자동으로 추가된다.
servicename.namespace.svc.cluster.local
svc.cluster.local
: 쿠버네티스 클러스터의 기본 도메인 이름svc
: “서비스" 에 대한 하위 도메인namespace
: 네임 스페이스servicename
: 서비스이름 자체-n=dev
k apply -f pod.yaml --namespace=dev
yaml 에 직접 지정 : metadata 에 지정해주면된다. (리소스가 항상 동일 네임스페이스에 생성되게 하는 좋은 방법)
...
metadata:
name : myapp-pod
namespace: dev
# namespace-dev.yaml
apiVersion: v1
kind : Namespace
metadata:
name : dev
# k apply -f namespace-dev.yaml
k create namespace dev