Kubernetes/기초공부
[kubernetes] NameSpace 기본 명령어
기록하는 백앤드개발자
2024. 1. 15. 22:54
반응형
ㅁ 들어가며
코어 리소스 중 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 접근방법
반응형