쿠버네티스 어나더 클래스 지상편: Sprint1 Day5 Object 그려보며 이해하기

강의 환경 구성하기

image

image

오브젝트

Cluster Level 오브젝트: Namespace, PV

Namespace Level 오브젝트: Deployment, Service

Namespace를 삭제하면 오브젝트가 모두 삭제된다. PV는 별도로 삭제해야한다.

 

Namespace: 오브젝트를 그룹핑해주는 역할

 

Deployment: Pod를 만들고 업그레이드를 해주는 역할

→ metadata에 namespace 값: Deployment는 Namespace에 소속이 된다.

→ name: 한 namespace에서 이 이름은 중복되면 안된다.

→ replicas: Pod 생성 개수

→ template: 내용으로 Pod가 생성된다.

→ image: Docker Hub 이미지

→ startupProbe: App이 성공적으로 기동됐는지 체크 → rednessProbe App이 트래픽을 연결할 건지 결정 / LivenessProbe App이 정상이 아니면 재시작 여부 결정

→ resources 미 설정 시 Pod가 Node의 자원을 모두 사용함

 

Service: Pod에게 트래픽을 연결해주는 역할

→ name: Service와 Deployment는 서로 다른 오브젝트이므로 이름이 같아도 된다.

 

Configmap: Pod에 환경변수 값을 제공하는 역할

→ data: 환경 변수 내용

Pod에서는 여러개의 Configmap을 담을 수 있다.

 

Secret: Pod에 중요한 값을 제공하는 역할

 

PVC: Pod에서 PV를 지정할 때 사용

 

PV: 실제 볼륨을 지정하는 역할

 

HPA: 부하에 따라 Pod를 늘려주고 스케일링 해주는 역할

→ kind: 스케일 대상으로 Deployment 지정

→ metrics: 스케일 조건 지정

→ behavior: 부하가 증가한다고 해서 바로 늘어나지 않도록 설정

 

Label: 오브젝트에 걸려 있는 App의 정보를 바로 파악하기 위해 사용, K8s에서는 Label 정보를 관리할 것을 권고한다.

part-of: App의 전체 이름(전체 서비스를 대표하는 이름)

 

component: 서비스를 구성하고 있는 각각의 분리된 기능들

→ prometheus: 매트릭 수집, 성능 API 제공

→ exporter: 매트릭 제공

→ grafana: 성능 정보 시각화 제공

 

name: App의 실제 이름

→ kube-state-metrics: K8s 클러스터에 매트릭 제공

→ node-exporter: 노드(VM) 정보를 제공하는 App

 

instance: 식별자, 목적에 따라 여러개의 App을 설치할 때 값을 다르게 줘서 사용, K8s 어플리케이션 이름에 식별자를 추가하는 예시가 많음

version: App 버전이 변경되면 같이 수정 필요

namespace: Namespace에 포함되는 App들에 대한 범위를 나타내는 이름이면 좋다

Managed-by: 어떤 도구로 배포되었는가

 

K8s 오브젝트간 연결 방법

  1. Lables와 Selector

  2. 오브젝트 내에서 대상을 연결하는 속성 사용

    HPA 내에서 Deployment 지정 속성(sclaleTargetRef)

    Configmap, Secret, PVC: Pod에서 직접 연결하는 속성

 

Deplyoment와 ReplicaSet

Deployment: Pod 업데이트 관리 → ReplicaSet: Pod 복제본 관리

 

Selector

Label는 Selector와 매칭되어 두 오브젝트를 연결하는 데 사용한다.

→ Instance는 중복되지 않으므로, Instance 만으로도 실수 없이 원하는 Pod를 매칭할 수 있다.

→ Instance외 추가적인 내용을 넣는 것은 선택사항이다.

Selector들은 각각의 사용 방법이 조금씩 다르다.

 

image

Node도 클러스터를 구성하면서 K8s가 구성한 Lable이 있다.

Pod에서는 nodeSelector가 PV에서는 nodeAffinity가 이 Lable과 연결된다.

 

추가적으로 의미있는 정보들을 더 만들면 좋다. 

댓글을 작성해보세요.

채널톡 아이콘