Kubernetes (쿠버네티스)

쿠버네티스의 구성요소

jw92 2021. 4. 15. 19:24

 

 

 

 

 

Pod

 - 스케쥴링의 최소 단위
 - 하나의 IP, 이름, 포트 범위를 갖는다.
 - Pod 연결은 Service 가 수행


라벨

 - 객체를 동적 그룹으로 묶어주는 key-value pairs 
 - 객체와 라벨: NxN 관계
 - 객체를 식별하는 용도로만 사용.
예) 스케쥴러가 Pod 와 노드를 배치하기 위해 사용


Label selector

 - 라벨을 기반으로 객체를 선택


Annotation

 - 임의의 메타데이터를 객체에 연계


서비스

 - Pod 그룹을 라벨로 묶어서 연결.
 - 보통 layer 3 (TCP/UDP)에서 동작l <service-name>.<ns-name>.svc. cluster.local 형식으로 네임스페이스가 포함된 DNS 주소를 갖는다.


Namespace

 - K8s 자원으로 관리됨
 - 자원에 대한 영역을 제공


Podspec

 - Pod 정의: 두 부분으로 이루어짐
 1. Kubernetes API 버전
 2. Kind: 리소스 유형
 - 그리고 대부분의 리소스에서 중요한 3 영역을 가짐.

 1. Metadata: name, namespace, label 등 Pod 에 대한 정보.
 2. Spec: pod 컨텐트의 실제 설명 (예: containers, volumes 등)
 3. Status: 실행 중인 Pod 에 대한 현재 정보.

 

K8s API
https://kubernetes.io/ko/docs/concepts/overview/kubernetes-api/

 

 

쿠버네티스 API

쿠버네티스 API를 사용하면 쿠버네티스 오브젝트들의 상태를 쿼리하고 조작할 수 있다. 쿠버네티스 컨트롤 플레인의 핵심은 API 서버와 그것이 노출하는 HTTP API이다. 사용자와 클러스터의 다른

kubernetes.io

 

API 개요
https://kubernetes.io/ko/docs/reference/using-api/#api-%EA%B7%B8%EB%A3%B9

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.21/#-strong-api-groups-strong

 

볼륨

 - PV: PersistentVolume: 이미 프로비저닝된 클러스터의 스토리지, 개별 Pod 와 독립적
 - PVC: PersistentVolumeClaim: 스토리지를 요청
 - SC: StorageClasses: 관리자가 볼륨 구현 세부 정보를 노출하지 않고 다양한 PV 를 제공, 다양한 스토리지 옵션을 사용 가능 (동적 프로비저닝) -> n PVC 를 사용해 PV 를 동적 생성 시 필요


CSI (Container Storage Interface 드라이버)

 - EBS CSI (Container Storage Interface) 드라이버는 EKS 클러스터가 영구
볼륨에 대한 EBS 볼륨의 수명 주기를 관리할 수 있게 해주는 CSI 
인터페이스를 제공. 
 - 서드파티 스토리지 공급자는 CSI 를 사용하여 핵심 Kubernetes 코드를 건드릴 필요없이
Kubernetes 의 새 스토리지 시스템을 드러내는 플러그인을 작성하고 배포할 수 있다.
 - AWS 는 Kubernetes 에 제공할 수 있는 다양한 유형의 스토리지에 대한 CSI 드라이버를 제공

 

스케쥴링

스케줄러는 일련의 필터를 실행하여 Pod 배치에 사용할 수 없는 노드를 제외. 
 - 조건자 (Predicate): 어떤 노드가 사용 불가능한지 결정. 
   - 볼륨, 리소스, 토폴로지 요구 사항 등

1. 볼륨 필터: Pod 의 볼륨 요구 사항을 확인하고 호환되는 노드를 결정. 
2. 리소스 필터: Pod 에 필요한 리소스가 노드 중 어디에 있는지를 고려.

 

리소스


컨테이너의 리소스 사용률을 제어: 리소스 request는 컨테이너 수준에서 지정.
 - Request: 컨테이너 리소스 보장 à Pod 배치에 영향
 - Limit: Pod 실행 후 리소스의 한도 정의
 - Pod 리소스: 모든 컨테이너의 request 합

'Kubernetes (쿠버네티스)' 카테고리의 다른 글

Kubernetes Pod와 API 통신 - Ambassador  (1) 2022.10.03