관리 메뉴

피터의 개발이야기

[kubernetes] NameSpace 기본 명령어 본문

Kubernetes/기초공부

[kubernetes] NameSpace 기본 명령어

기록하는 백앤드개발자 2024. 1. 15. 22:54
반응형

[kubernetes] 쿠버네티스 목차

ㅁ 들어가며

코어 리소스 중 NameSpace에 관한 kubectl 명령어 정리

 

 

ㅁ NameSpace 조회

$ kubectl get namespaces 
NAME              STATUS   AGE
kube-system       Active   9m9s
kube-public       Active   9m9s
default           Active   9m9s
kube-node-lease   Active   9m9s
finance           Active   99s
marketing         Active   99s
dev               Active   99s
prod              Active   99s
manufacturing     Active   99s
research          Active   99s


# 짧은 명령어
$  k get ns
NAME              STATUS   AGE
kube-system       Active   28m
kube-public       Active   28m
default           Active   28m
kube-node-lease   Active   28m
finance           Active   21m
marketing         Active   21m
dev               Active   21m
prod              Active   21m
manufacturing     Active   21m
research          Active   21m

 

 

ㅁ NameSpace의 리소스 조회

# NameSpace의 Pod 목록 조회
$ k get po -n research 
NAME    READY   STATUS             RESTARTS      AGE
dna-1   0/1     CrashLoopBackOff   9 (40s ago)   21m
dna-2   0/1     CrashLoopBackOff   9 (32s ago)   21m

ㅇ resaerch NameSpace에는 2개의 Pod가 존재한다.

 

ㅁ NameSpace 생성 및 삭제

# NameSpace 생성
$ kubectl create ns team3
namespace/team3 created

# NameSpace 삭제
$ kubectl delete ns team3
namespace "team3" deleted

 ㅇ NameSpace 삭제 시 속해 있던 리소스는 모두 정리가 된다. 

 

ㅁ NamaSpace의 Pod 생성

## 조건
# Name: redis
# Image name: redis
$ k run redis --image=redis -n finance 
pod/redis created

 

ㅁ NameSpace + Pod 조회 

$ k get po -o wide -A
NAMESPACE       NAME                                     READY   STATUS             RESTARTS       AGE    IP           NODE           NOMINATED NODE   READINESS GATES
kube-system     coredns-77ccd57875-dfgc5                 1/1     Running            0              32m    10.42.0.6    controlplane   <none>           <none>
kube-system     local-path-provisioner-957fdf8bc-tzgbd   1/1     Running            0              32m    10.42.0.4    controlplane   <none>           <none>
kube-system     helm-install-traefik-crd-2vp49           0/1     Completed          0              32m    10.42.0.3    controlplane   <none>           <none>
kube-system     metrics-server-54dc485875-jtcwt          1/1     Running            0              32m    10.42.0.2    controlplane   <none>           <none>
kube-system     svclb-traefik-bd8c3e89-7zbv9             2/2     Running            0              31m    10.42.0.7    controlplane   <none>           <none>
kube-system     helm-install-traefik-w9gnr               0/1     Completed          2              32m    10.42.0.5    controlplane   <none>           <none>
kube-system     traefik-84745cf649-d85hz                 1/1     Running            0              31m    10.42.0.8    controlplane   <none>           <none>
dev             redis-db                                 1/1     Running            0              25m    10.42.0.14   controlplane   <none>           <none>
marketing       redis-db                                 1/1     Running            0              25m    10.42.0.12   controlplane   <none>           <none>
finance         payroll                                  1/1     Running            0              25m    10.42.0.15   controlplane   <none>           <none>
marketing       blue                                     1/1     Running            0              25m    10.42.0.13   controlplane   <none>           <none>
manufacturing   red-app                                  1/1     Running            0              25m    10.42.0.10   controlplane   <none>           <none>
research        dna-1                                    0/1     CrashLoopBackOff   9 (4m9s ago)   25m    10.42.0.9    controlplane   <none>           <none>
research        dna-2                                    0/1     CrashLoopBackOff   9 (4m1s ago)   25m    10.42.0.11   controlplane   <none>           <none>
finance         redis                                    1/1     Running            0              100s   10.42.0.16   controlplane   <none>           <none>

 ㅇ -o wide 옵션과 -A(NameSpace 전체조회) 옵션을 사용하면 NameSpace와 Pod의 이름을 확인 할 수 있다.

 

 

ㅁ NameSpace와 DNS 관계

 ㅇ marketing N.S와 dev N.S에 db-service가 있다. 서로 다른 NameSpace에 디비의 접속을 위한 2개의 서비스가 있는 것이다.

 ㅇ 같은 nameSpace에 있다면 host Name을 db-service(서비스명)만 입력하여도 쿠버네티스 DNS에 의해 해당 pod로 접속이 가능하다.
 ㅇ 다른 nameSpace의 경우 db-service.dev.svc.cluster.local를 쓰면 클러스터 안의 다른 Service에 접속이 가능하다.

  관련 글:

    [kubernetes] 다른 NameSpace의 Service 접근방법

    쿠버네티스 문서 > 서비스 및 파드용 DNS

 

 

반응형
Comments