📗 namespace
단일 클러스터 내에서의 리소스 그룹 격리 단위
용도에 따라 실행해야하는 앱을 구분할 때 사용
그룹화 시키는 것에서는 deployment와 같지만 그림을 보면 쉽게 이해할 수 있음
네임 스페이스를 통해서 서비스별 리소스 할당을 조정할 수 있음
기본적으로 4개의 namespace가 존재함. pod생성시 namespace를 별도로 지정하지 않으면 default에 소속되어짐
root@ubuntu:~#
root@ubuntu:~# kubectl get namespaces
NAME STATUS AGE
default Active 2d22h
kube-node-lease Active 2d22h
kube-public Active 2d22h
kube-system Active 2d22h
root@ubuntu:~#
root@ubuntu:~# kubectl get pods -n default
NAME READY STATUS RESTARTS AGE
webserver 1/1 Running 0 25h
📗 namespace 조회/생성/삭제하기
명령어로 직접 생성과 yaml파일 생성 후 yaml파일을 이용하여 namespace를 생성해보았다.
# 명령어로 namespace 생성
root@ubuntu:~# kubectl create namespace blue
namespace/blue created
# namespace red를 생성하기위한 red.yaml파일 생성 및 확인
root@ubuntu:~# kubectl create namespace red --dry-run -o yaml > red.yaml
W0410 08:15:50.852921 75181 helpers.go:598] --dry-run is deprecated and can be replaced with --dry-run=client.
root@ubuntu:~# ls -ltr
total 12
drwx------ 3 root root 4096 Apr 7 08:14 snap
-rw-r--r-- 1 root root 284 Apr 9 06:32 webserver.pod.yaml
-rw-r--r-- 1 root root 99 Apr 10 08:15 red.yaml
root@ubuntu:~#
root@ubuntu:~#
# namespace 조회(blue만 있음 red는 아직 생성하지 않음)
root@ubuntu:~# kubectl get namespaces
NAME STATUS AGE
blue Active 2m2s
default Active 2d22h
kube-node-lease Active 2d22h
kube-public Active 2d22h
kube-system Active 2d22h
root@ubuntu:~#
#yaml파일을 이용한 namespace red 생성
root@ubuntu:~# kubectl create -f red.yaml
namespace/red created
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~#
#namespace 조회(red 생성된 것 확인)
root@ubuntu:~# kubectl get namespaces
NAME STATUS AGE
blue Active 2m55s
default Active 2d22h
kube-node-lease Active 2d22h
kube-public Active 2d22h
kube-system Active 2d22h
red Active 5s
#red namespace 삭제하기
root@ubuntu:~#
root@ubuntu:~# kubectl delete namespace red
namespace "red" deleted
# red name namespace 삭제된것 확인
root@ubuntu:~# kubectl get namespaces
NAME STATUS AGE
blue Active 10m
default Active 2d23h
kube-node-lease Active 2d23h
kube-public Active 2d23h
kube-system Active 2d23h
📗 namespace를 지정하여 pod 생성하기
조회할때 기본적으로 default name스페이스가 조회되므로 -n옵션을 사용하여 조회할 namespace를 지정해야 함
root@ubuntu:~# kubectl run bluewebserver --image=nginx:1.14 --port 80 -n blue
pod/bluewebserver created
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~# kubectl get pod -n blue
NAME READY STATUS RESTARTS AGE
bluewebserver 1/1 Running 0 14s
root@ubuntu:~#
namespace에서 pod가 있는 상태에서 namespace를 지우게 되면 소속된 pod도 삭제 된다.
root@ubuntu:~# kubectl get pod -n blue
NAME READY STATUS RESTARTS AGE
bluewebserver 1/1 Running 0 14s
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~# kubectl delete namespaces blue
namespace "blue" deleted
root@ubuntu:~#
root@ubuntu:~#
root@ubuntu:~# kubectl get pod -n blue
No resources found in blue namespace.
root@ubuntu:~#
📗 namespace switch 하기
기본 namespace는 default이다. 따라서 파드 생성시 기본 namespace인 default를 따라가게 되는데
기본 namespace를 변경하려면 context를 생성하여 namespace를 등록하고 변경해주어야한다.
반응형
'인프라 > Docker&K8S' 카테고리의 다른 글
2022년 docker elk 설치 (도커 elk 설치) (0) | 2022.04.14 |
---|---|
쿠버네티스 - yaml(야물) (0) | 2022.04.13 |
쿠버네티스 명령어 훓어보기(k8s명령어) (0) | 2022.04.08 |
vagrant 로 vm 생성하기 vagrant명령어 (0) | 2022.04.07 |
2022년 우분투 쿠버네티스(ubuntu Kubernetes) 설치 (0) | 2022.04.06 |
댓글