1. namespace란?
- object를 논리적으로 분리할 수 있는 논리적 파티션.
2. namespace 확인
- default : 기본 네임스페이스. 특정 네임스페이스를 지정하지 않으면 기본 네임스페이스를 사용한다.
- 네임스페이스의 목록은 클러스터 배포 방법 / 도구나 쿠버네티스 버전에 따라 기본 제공되는 네임스페이스 목록이 조금씩은 다를 수 있다.
- default : 기본 네임스페이스.
- kube-node-lease
- kubernetes node의 가용성을 체크하기 위한 네임스페이스.
- 하트비트를 위한 leases 오브젝트가 있다.
- kubernetes 1.14 이상
- kubectl get leases.coordination.k8s.io -n kube-node-lease
-> 노드가 살아있는지 죽어있는지 확인.
- kube-public
- 모든 사용자(인증받지 않은 사용자도 포함)가 읽기 권한으로 접근할 수 있다.
- 관례적으로 만들어져 있지만 아무 리소스도 없고, 꼭 사용해야하는 것은 아니다.
- kube-system : kubernetes cluster의 리소스가 배치되는 네임스페이스
- 그 외
- ingress-nginx
3. namespace의 object 확인
- kube-system namespace에 존재하는 pod의 목록 확인
- -n : namespace 지정하는 옵션. 사용하지 않으면 default namespace가 자동으로 지정
- kube-system namespace는 kubernetes 시스템이 동작하기 위한 구성요소들이 pod 형태로 동작하고 있다.
- 파드 이외의 다른 형식의 object 확인
kubectl get all -n kube-system
- kubectl get all 명령 : 실제 all 타입의 리소스는 없으며, 실제 모든 리소스를 지칭하지도 않는다.
- 모든 namespace의 pod object
kubectl get pods --all-namespaces
4. namespace 생성
kubectl create namespace testname
- 확인
- YAML 파일을 이용하여 namespace 생성
# mynapp-ns.yaml
apiVersion: v1
kind: Namespace
metadata:
name: yamlname
kubectl create -f mynapp-ns.yaml
kubectl get namespaces //확인
5. 특정 namespace에서 pod(및 object) 생성
- 오브젝트 생성 시 특정 네임스페이스를 지정하면 해당 네임스페이스에 오브젝트를 생성할 수 있다.
kubectl create -f mynapp-pod.yaml -n testname
kubectl get pods -n development //확인
- YAML 파일의 pods.metadata.namespaces 필드에 직접 네임스페이스도 선언 가능하다.
# mynapp-pod-ns.yaml
apiVersion: v1
kind: Pod
metadata:
name: mynapp-pod
namespace: testname
spec:
containers:
- image: httpd
name: mynapp
ports:
- containerPort: 80
protocol: TCP
6. resource 삭제
- 세 가지 방법으로 삭제 가능하다.
- 오브젝트 이름으로 삭제
- 오브젝트 정의 파일(YAML or JSON)로 삭제
- 오브젝트 레이블로 삭제
- 오브젝트 이름으로 pod 삭제
kubectl delete pods mynapp-pod
- namespace를 지정하지 않았기 때문에 default 네임스페이스의 mynapp-pod 파드가 삭제된다.
- YAML 파일로 삭제
kubectl delete -f mynapp-pod-ns.yaml
- namespace는 YAML 파일 내에 지정되어있고 testname 네임스페이스의 mynapp-pod 파드가 삭제된다.
- 오브젝트 레이블을 이용한 오브젝트 삭제
kubectl delete pods -l tier=frontend
- default namespace에서 tier=frontend 레이블을 가지고 있는 모든 오브젝트를 삭제한다.
- namespace 삭제
kubectl delete namespaces testname
'Containers > Kubernetes' 카테고리의 다른 글
4.2. Replication Controller (0) | 2020.07.24 |
---|---|
4.1. Liveness Probe (0) | 2020.07.24 |
3.2. Label 및 Selector (0) | 2020.07.23 |
Pod (0) | 2020.07.23 |
명령형 명령어 (0) | 2020.07.23 |
댓글