0. 오브젝트란?
- 쿠버네티스는 시스템의 상태를 나타내는 오브젝트(Object)라는 영구 엔티티라는 개념 -> 개별 속성을 포함해 부르는 단위 스펙(spec)과 상태(status) 등의 값을 가지고 있다.
- 오브젝트를 사용, 생성, 수정 또는 삭제 등 동작시키려면, 쿠버네티스 API를 이용해야 한다.
- 예를 들어, kubectl 커맨드-라인 인터페이스를 이용할 때, CLI는 여러분 대신 필요한 쿠버네티스 API를 호출한다.
1. 기본 오브젝트(4)
- 파드 (Pod)
- 쿠버네티스에서 실행되는 최소 단위이다. 독립적인 공간과 사용 가능한 IP를 가진다.
- 하나의 파드는 1개 이상이 컨테이너를 가지기 때문에 여러 기능을 묶어 하나의 목적으로 사용 가능 - 네임스페이스 (Namespace)
- 쿠버네티스 클러스터에서 사용되는 리소소들을 구분해서 관리하는 그룹이다.
- 기본으로 할당되는 default, 쿠버네티스 시스템에 사용되는 kube-system, 온프레미스에서 쿠버네티스를 사용할 경우 외부에서 쿠버네티스 클러스터 내부로 접속하게 도와주는 컨테이너들이 속해 있는 metallb-system 등이 있음 - 볼륨 (Volume)
- 파드가 사라지더라고 저장/보존이 가능하며 파드에서 사용할 수 있는 디렉터리를 제공한다. 디렉토리도 임시로 사용.
- 파드가 사라지더라도 저장과 보존이 가능한 디렉토리를 볼륨 오브젝트를 통해 생성하고 사용 가능 - 서비스 (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>
참고
'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 |