🥳
Kubernetes
에서네임스페이스
는 단일 클러스터 내에서 리소스 그룹을 분리하는 방법으로 쉽게 생각해서 작업공간을 분리하여 사용한다고 생각하시면 됩니다.🫡
네임스페이스
를 사용하는 이유로는 여러 팀이나 프로젝트간에는 다른 환경을 지니고 있는데 만약 하나의쿠버네티스
로 진행을 한다고 생각하시면pod
관리가 정말 복잡해질 것입니다. 위와 같은 상황을 막기 위해쿠버네티스
에는namespace
라는 것이 존재합니다.
Kubernetes
에서네임스페이스
를 확인 하는 방법은 아래와 같습니다.
(현재 환경은 GKE로쿠버네티스
를 구성하였으며 vm을 하나 생성하여 연결하여 사용하는 상황입니다.)
kubectl get namespace
🫠기본적으로
쿠버네티스
명령어는default namespace
에서 진행을 하게 됩니다.이를 확인 하기 위해 먼저
네임스페이스
를 하나 만들어주겠습니다.
kubectl create namespace name1
🧐맨 아래를 보시면 name1이라는
namespace
가 생긴 것을 알 수 있습니다. 이제 name1 namespace에 nginx pod를 하나 띄워보겠습니다.
kubectl run my-nginx --image=nginx --namespace=name1
😓my-nginx라는 이름을 갖는 pod를 name1 namespace에 생성하였습니다.
pod
가 생성되었는지kubectl get pods
를 실행해보시면 아무pod
도 없는 것을 확인 할 수 있습니다.그 이유로는 현재
pod
는 name1에 생성하였기 때문인데 위 명령어를
kubectl get pods -n name1
로 고쳐서 사용해보시면 방금 만든 my-nginx라는pod
를 확인 하실 수 있습니다.
😑현재는
pod
를 생성하는 작업을 진행하면 (명령어에namespace
를 정해주지 않는다면) 모두 default에서 진행하는 것을 알 수 있습니다. 만약에 default가 아닌 name1namespace
를 기본으로 지정해주고 싶다면 아래의 명령어를 이용하시면 됩니다.
1. 현재 context 확인
kubectl config current-context
명령어를 통해 나온 컨텍스틑 복사해줍니다.
kubectl config view
위 명령어를 통해서는 더욱 자세한 설정들을 확인 할 수 있습니다.
2. namespace
변경
kubectl config set-context [복사 컨텍스트] --namespace=[바꿀 네임스페이스]
😁위 명령어를 치시고 나서
kubectl get pods
를 치시면 위에서 만든 pod가 보이게 됩니다. 만약 기존네임스페이스
로 돌아가고 싶으시다면네임스페이스
를 default로 바꿔주시면 됩니다.