컬쥐네 다락방

Kubernetes | Namespace 본문

클라우드/K8S

Kubernetes | Namespace

코딩하는 갱얼쥐 2022. 5. 17. 16:40

네임스페이스

리소스를 분리하는 역할

  • 서비스 마다 분리
  • 사용자 마다 분리
  • 환경: 개발, 스테이징, 프로덕션 등

서비스. DNS 이름이 분리되는 용도이다.
RBAC: 권한을 NS에 설정

https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/namespaces/

kubectl get namespaces
kubectl get ns
kubectl get pods --all-namespaces
kubectl get pods -n kube-system  
  • kube-system : Kubernetes의 핵심 컴포넌트
  • kube-public : 모든 사용자가 읽기 권한을 가지고 있음
  • kube-node-lease : 노드의 HeartBeat 체크를 위한 Lease 리소스가 존재
  • default

yaml 파일을 이용해 Namespace 생성 가능
dev-ns.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: dev

yaml 파일을 이용해 생성

kubectl create -f dev-ns.yaml
namespace/dev created

Namespace 확인

kubectl get ns               
NAME              STATUS   AGE
default           Active   23h
dev               Active   4s
kube-node-lease   Active   23h
kube-public       Active   23h
kube-system       Active   23h

Namespace를 지정하지않으면 default 값에 만들어지며, 항상 네임스페이스를 지정하지 않으면 명령어들은 default 값만 보여주기때문에, 혼동하지 않도록 주의해야한다.
httpd 이미지를 dev 네임스페이스에 생성

kubectl run myweb --image httpd -n dev             
pod/myweb created

확인해보면 네임스페이스를 명령어에 지정해줘야 조금전에 생성된 파드가 보인다

kubectl get pods    #default 값                  
NAME    READY   STATUS    RESTARTS   AGE
myweb   1/1     Running   0          22m

kubectl get pods -n dev         
NAME    READY   STATUS    RESTARTS   AGE
myweb   1/1     Running   0          76s

myweb.yaml 파일에 Namespace를 지정해주면 파일을 이용해 생성시 자동으로 네임스페이스가 지정된다.

apiVersion: v1  
kind: Pod     #kubectl api-resources
metadata:            
  name: myweb
  Namespace: dev
spec:      
  containers:
    - name: myweb
      image: httpd
      ports:
        - containerPort: 80
          protocol: TCP
kubectl create -f myweb.yaml
kubectl get pods               
NAME    READY   STATUS    RESTARTS   AGE
myweb   1/1     Running   0          30s

'클라우드 > K8S' 카테고리의 다른 글

Kubernetes | Pod Lifecycle  (0) 2022.05.18
Kubernetes | Label, LabelSelector, Annotation  (0) 2022.05.17
Kubernetes | Workload - Pod  (0) 2022.05.17
Kubernetes | Object 파일  (0) 2022.05.17
Kubernetes | Kubespray 설치 방법  (2) 2022.05.17
Comments