No Story, No Ecstasy

쿠버네티스 오브젝트 ( Kubernetes Object ) 본문

Shallow Series

쿠버네티스 오브젝트 ( Kubernetes Object )

heave_17 2021. 1. 9. 02:53

1. Deployment

  - 컨테이너가 실행 중인지 계속해서 확인하고 관리하는 쿠버네티스 관리자

  - 각 프로그램을 관리하기 위해 deployment object를 생성한다.

  - Deployment가 Pod를 생성하고, 쿠버네티스는 요청된 파드를 실행한다.

  - kubectl get/describe deployments로 조회할 수 있다.

  - Controller object가 생성되어 deployment resource를 관리한다.

 

2. Pod (어원: 고래의 무리)

  - 쿠버네티스의 기본 작업 단위

  - 하나 이상의 컨테이너 그룹으로 구성된 쿠버네티스 오브젝트

  - 함께 스케줄링, 동일 노드에서 실행, 저장 공간 공유 등의 목적으로 집합으로 묶인다.

 

3. Replica Set

  - Pod 집합이나 레플리카들을 관리하는 오브젝트 (직접 다룰 일은 거의 없음)

  - Deployment > Replica Set > Pod > Node로 이어진다.

 

4. Scheduler

  - Pod 생성 및 실행 과정을 책임지는 컴포넌트

  - 대기열에서 스케줄링되지 않은 Pod을 찾아 배치하고 실행할 노드를 찾는 역할

  - Pod가 노드에 스케줄링되면 노드에서 실행 중인 kubelet이 실제로 컨테이너를 실행한다.

 

5. YAML 형식의 리소스 매니페스트

  - 쿠버네티스는 선언형 시스템 > 실제 상태와 의도한 상태를 계속 조정해서 맞춰나감

  - Deployment, Pod와 같은 리소스는 모두 내부 DB에 기록 > 조정 루프가 DB의 변경을 감지 및 대응

  - 쿠버네티스 제어를 위해서 kubectl run 명령어를 사용하지 않고, YAML 파일을 직접 생성하고 수정

  - kubectl apply -f YAML_FILE 명령어를 통해 클러스터에 전달

 

6. Service Resource

  - 웹 브라우저에서 파드에 연결하기 위하여 필요

  - 서비스 리소스는 Pod에 자동으로 라우팅되는 영구적인 IP Address / DNS 를 제공한다.

  - 쿠버네티스 서비스는 웹 프록시나 로드 밸런서와 같이 요청을 Backend Pods에게 전달

  - Deployment는 App의 Pod set를 관리하고, Service는 요청을 Pod에 전달하는 단일 Entry Point 제공

  - kubectl port-forward service/demo 9999:8888과 같이 포트 포워딩

 

7. Helm: 쿠버네티스 패키지 매니저

  - chart: 쿠버네티스에서 App을 실행하는 데 필요한 모든 리소스 정의를 포한한 패키지

  - repository: 차트가 모여 있는 공유할 수 있는 공간

  - release: 쿠버네티스 클러스터에서 실행되는 차트의 특정 인스턴스

 

'Shallow Series' 카테고리의 다른 글

Python 2차원 배열 (list of list) 선언 방법  (0) 2021.01.21
React 기초  (0) 2021.01.15
쿠버네티스 클러스터 아키텍처  (0) 2021.01.09
Kubernetes 관련 내용  (0) 2021.01.08
Docker 관련 내용  (0) 2021.01.08