🥳
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로 바꿔주시면 됩니다.