본문 바로가기

⭐ Kubernetes & EKS/네임스페이스 (Namespace)

네임스페이스 개념, 실습 및 연습문제

# 네임스페이스 개념과 실습

- 컴퓨터 OS 하드디스크에서 폴더의 개념이 네임스페이스 이다.
- 리소스를 각각의 분리된 영역으로 나눌수 있다.
- 여러 네임스페이스를 사용하면 쿠버네티스 시스템을 더 작은 그룹으로 분할
- 여러 서버로 분리된 하나의 게임에서의 자신만의 유니크한 id를 생성하여 사용한다는 개념으로 이해 할 수있다.

# 네임스페이스 생성하기

kubectl create ns office

kubectl create ns office2 --dry-run=client -o yaml

kubectl create ns office2 --dry-run=client -o yaml > office-ns.yaml

cat office-ns.yaml

# 생성한 namespace 에 자원을 할당하기

kubectl create deploy nginx --image nginx --port 80 -n office

- 위의 명령어를 실행하면 kubectl get pod 에서는 조회가 불가능하다.

# namespace 조회하기

kubectl get all -n office

- 위의 명령으로 서비스 실행 상태를 확인이 가능하다.

# 모든 namespace 를 조회하는 방법

kubectl get all --all-namespaces

kubectl get pod

# namespace 세팅하기

gedit ~/.kube/config

- 파일 오픈 후 context항목에 namespace: office 를 추가한뒤 저장한다.

kubectl get pod

- 조회를 해보면 namespace 에 등록한 nginx 서비스만 보이는것을 확인 할 수있다.

# namespace 삭제

kubectl delete ns office

kubectl get all

- office 정보가 조회되지 않으므로, 삭제가 되었다고 보면 된다.

- namespace를 통채로 삭제하면 그 하위 모든 정보들도 함께 삭제가 된다.

# 네임스페이스 연습문제 실습

# 현재 시스템의 네임스페이스 확인하기

kubectl get ns

- 줄수의 갯수를 세어서 화면에 표시하는 명령어

kubectl get  ns | wc -l

# kube-system에 몇개의 pod가 존재 하는가?

kubectl get pod -n kube-system

kubectl get pod -n kube-system | wc -l

# 모든 네임스페이스의 갯수 확인

kubectl get pod --all-namespaces | wc -l

# 젠킨스의 네임스페이스를 배치하고 pod를 배치하라

- pod 예제 가져오기 > 쿠버네티스 공식사이트 > pod 검색 > Pod Overview > kind: 검색 > 정보 복사하여 가져오기

# 네임스페이스 생성

kubectl create ns ns-jenkins --dry-run=client -o  yaml

kubectl create ns ns-jenkins --dry-run=client -o  yaml > jenkins-ns.yaml

gedit jenkins-ns.yaml

- 쿠버네티스 공식 사이트에서 복사한 pod 내용을 붙여넣기

apiVersion: v1
kind: Namespace
metadata:
  name: ns-jenkins
---
apiVersion: v1
kind: Pod
metadata:
  name: jenkins
  namespace: ns-jenkins
spec:
  containers:
  - name: jenkins
    image: jenkins/jenkins:lts
    ports:    
    - containerPort: 8080

# 생성한 yaml 파일 실행하기

kubectl create -f jenkins-ns.yaml

- 실행하면 네임스페이스와 pod를 생성 및 실행한것을 확인 할 수 있다.

# 생성한 jenkins 서비스 확인하기

kubectl get pod -n ns-jenkins

# coredns 는 어디에 속해있는지 확인하기

kubectl get pod --all-namespaces

kubectl get pod --all-namespaces | grep coredns

'⭐ Kubernetes & EKS > 네임스페이스 (Namespace)' 카테고리의 다른 글

NameSpace 와 EKS Network?  (0) 2022.06.03