개발 이야기/쿠버네티스

쿠버네티스 - 네임스페이스 - 14

석구석구 2021. 8. 12. 23:01

레이블을 통해 쿠버네티스의 모든 오브젝트들을 셀렉트 할 수 있다는 것을 알게 되었다. 하지만 이로서는 충분치 않다. 여러 오브젝트가 같은 레이블을 가지고 있는 경우 결과가 겹칠 수 있기 때문이다. 이번에는 오브젝트를 그룹으로 묶을 수 있는 기능인 네임스페이스를 알아보자.

백문이 불여일행이다. 일단 쳐보자.

kubectl get ns

default, kube-public, kube-system 등의 네임 스페이스가 보일 것이다. 지금까지 우리는 default 네임스페이스에서만 작업을 했다.

kubectl get po -n kube-system

kube-system의 pods 리스트를 볼 수 있다. 이런 시스템 파드들이 우리가 실행하는 파드들과 섞여 있다면 혼란 정도가 아니라, 안정성에도 좋지 않은 영향을 준다. 

여러 사용자가 동일한 쿠버네티스 클러스터에서 각자의 작업을 하고 있다면, 고유한 네임스페이스를 사용해야 한다.

kubectl create ns suk9-namespace

언젠가, 다양한 리소스 관리를 위해 네임스페이스가 여러 개인 경우 여러 네임스페이스를 오가며 작업을 해야 한다.

alias kcd='kubectl config set-context $(kubectl config current-context) --namespace'
kcd suk9-namespace

 

이제 아주 간단한 명령어로 네임스페이스를 자유롭게 오갈 수 있다.

네임스페이스를 통한 격리가 완전한 고립을 의미하는건 아니다. 네트워크 솔루션에서 허락한다면, 네임스페이스가 달라도 pod끼리 IP주소를 알고 있다면 네트워크로 통신할 수 있다.