https://cloud.google.com/blog/products/gcp/kubernetes-best-practices-organizing-with-namespaces
네임스페이스 안에서는 여러개의 서비스용 클러스터가 존재할 수 있다.
네임스페이스 생성은 명령어와 yaml파일로 리소스처럼 적용이 가능하다.
명렁어
kubectl create namespace test
yaml 파일
test.yaml
kind: Namespace
apiVersion: v1
metadata:
name: test
labels:
name: test
kubectl apply -f test.yaml
네임스페이스 생성확인은
kubectl get namespace
이제 네임스페이스 안에 pod 리소스를 생성
apiVersion: v1
kind: Pod
metadata:
name: mypod
labels:
name: mypod
spec:
containers:
- name: mypod
image: nginx
이렇게 생성한 pod를 apply옵션으로 네임스페이스에 적용
kubectl apply -f pod.yaml --namespace=test
또는 리소프파일에 namespace를 명시
apiVersion: v1
kind: Pod
metadata:
name: mypod
namespace: test
labels:
name: mypod
spec:
containers:
- name: mypod
image: nginx
네임스페이스안에서 pod 리소스 확인
단순히 get pods로는 현재 활성화된 네임스페이스가 default이기 때문에 확인이 되지 않음
반듯이 네임스페이스를 명시해줘야함
$ kubectl get pods --namespace=test
NAME READY STATUS RESTARTS AGE
mypod 1/1 Running 0 10s
네임스페이스 관리
kubens 명령어로 네임스페이스 관리가능
kubens test 로 test 네임스페이스 실행
kubens 명렁어로 활성화된 네임스페이스 확인
그럼 이제 pod리소스 확인을 할때 네임스페이스를 명시하지 않고 kubectl get pods로도 확인 가능함.
이제 네임스페이스를 여러개 생성하고 네임스페이스간에 통신과 네임스페이스를 세분화 또는 큰 단위로 생성하고 운영이 가능하다.