wonpick
devvon
wonpick
방문자🌱
오늘
어제
  • 분류 전체보기 (146)
    • 개발 (42)
      • Spark (7)
      • Hadoop (3)
      • ML&DL (4)
      • Paper Review (0)
      • ETC (24)
    • STUDY (77)
      • Data Engineering (54)
      • Cloud (4)
      • Algorithm (5)
      • SQL (10)
      • Toy Project (1)
    • Android (2)
    • Backend (14)
    • 인턴 (0)
    • 공모전 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • 최신 데이터 인프라 이해하기 #7
  • 쿠버네티스
  • cka
  • 최신 데이터 인프라 이해하기
  • 인턴강연
  • SQL
  • 데이터엔지니어링
  • 자연어처리
  • kodekloud
  • Python

최근 댓글

최근 글

티스토리

Designed By.hELLO
wonpick

devvon

7. CKA udemy 강의 정리 - Section 2 [Namespace]
STUDY/Data Engineering

7. CKA udemy 강의 정리 - Section 2 [Namespace]

2023. 1. 6. 01:22

0.  오브젝트란? 

  • 쿠버네티스는 시스템의 상태를 나타내는 오브젝트(Object)라는 영구 엔티티라는 개념 -> 개별 속성을 포함해 부르는 단위 스펙(spec)과 상태(status) 등의 값을 가지고 있다. 
  • 오브젝트를 사용, 생성, 수정 또는 삭제 등 동작시키려면, 쿠버네티스 API를 이용해야 한다. 
  • 예를 들어, kubectl 커맨드-라인 인터페이스를 이용할 때, CLI는 여러분 대신 필요한 쿠버네티스 API를 호출한다.

1.  기본 오브젝트(4)

  1. 파드 (Pod) 
    - 쿠버네티스에서 실행되는 최소 단위이다. 독립적인 공간과 사용 가능한 IP를 가진다.
    - 하나의 파드는 1개 이상이 컨테이너를 가지기 때문에 여러 기능을 묶어 하나의 목적으로 사용 가능
  2. 네임스페이스 (Namespace) 
    - 쿠버네티스 클러스터에서 사용되는 리소소들을 구분해서 관리하는 그룹이다.
    - 기본으로 할당되는 default, 쿠버네티스 시스템에 사용되는 kube-system, 온프레미스에서 쿠버네티스를 사용할 경우 외부에서 쿠버네티스 클러스터 내부로 접속하게 도와주는 컨테이너들이 속해 있는 metallb-system 등이 있음
  3. 볼륨 (Volume) 
    - 파드가 사라지더라고 저장/보존이 가능하며 파드에서 사용할 수 있는 디렉터리를 제공한다. 디렉토리도 임시로 사용.
    - 파드가 사라지더라도 저장과 보존이 가능한 디렉토리를 볼륨 오브젝트를 통해 생성하고 사용 가능
  4. 서비스 (Service) 
    - 파드는 유동적이기 때문에 접속 정보가 고정되지 않으므로, 파드 접속을 안정적으로 유지하기 위한 기능
    - 파드 접속을 안정적으로 유지하도록 서비스를 통해 내/외부로 연결

기본 오브젝트만으로도 쿠버네티스 사용이 가능하지만, 더 효율적으로 작동하도록 기능을 추가해 놓은 아래 오브젝트와 컨트롤러를 사용해도 된다. 

  • 디플로이먼트 (Deployment) : 레플리카셋을 포함하는 오브젝트
  • 데몬셋 (DaemonSet)
  • 컨피그맵 (ConfigMap)
  • 레플리카셋 (ReplicaSet)
  • PV (PersistentVolume)
  • PVC (PersistentVolumeClaim)
  • 스테이트풀셋 (StatefulSet)

2.  네임스페이스(namespace)

네임스페이스란? 쿠버네티스 클러스터 내의 논리적인 분리 단위 (물리적 분리 단위가 아님)

Pod, Deployment, Service와 같은 여러 오브젝트들을 하나의 Namespace로 그룹핑 해서 함께 관리할 수 있으며

논리적인 그룹에 대하여 권한 관리, CPU & Memory 등 리소스 제한 등을 할 수 있다.

kubectl get namespaces
kubectl describe namespaces <name>
NAME          STATUS    AGE
default       Active    11d #다른 네임스페이스가 없는 오브젝트를 위한 기본 네임스페이스
kube-system   Active    11d #쿠버네티스 시스템에서 생성된 오브젝트의 네임스페이스
kube-public   Active    11d # 이 네임스페이스는 자동으로 생성되며 모든 사용자(미인증 사용자를 포함)가 읽을 수 있다.

 

namespace 생성

apiVersion: v1
kind: Namespace
metadata:
  name: <insert-namespace-name-here>
kubectl create -f ./my-namespace.yaml
OR
kubectl create namespace <insert-namespace-name-here>

파드의 metadata.namespace에 namespcae를 아래와 같이 지정해주면 namespace 조회가능해진다. 

kubectl get pod -namespace <insert-namespace-name-here>

 

namespace 삭제

kubectl delete namespaces <insert-some-namespace-name>

참고

  1. [공식문서] 네임스페이스를 사용해 클러스터 공유하기 

 

 

'STUDY > Data Engineering' 카테고리의 다른 글

9. CKA udemy 강의 정리 - Section 3 [Scheduling]  (0) 2023.01.07
8. CKA udemy 강의 정리 - Section 2 [명령형 접근법/선언형 접근법]  (0) 2023.01.06
6. CKA udemy 강의 정리 - Section 2 [Services & kodekloud]  (0) 2023.01.05
5. CKA udemy 강의 정리 - Section 2 [Deployment & kodekloud]  (0) 2023.01.05
4. CKA udemy 강의 정리 - Section 2 [ReplicaSet & kodekloud]  (0) 2023.01.05
    wonpick
    wonpick

    티스토리툴바