본문 바로가기
TIL/etc

[Kubernetes] POD / POD Generator

by sun_HY 2024. 1. 12.

 

POD

 

 

POD

 

  • 하나 이상의 밀접하게 관련된 컨테이너로 구성된 그룹
  • 동일한 리눅스 네임스페이스와 동일한 워커 노드에서 항상 함께 실행

 

 

 

POD가 필요한 이유

 

  • 여러 개의 프로세스를 단일 단위로 관리할 수 있는 상위 레벨 구조의 필요성
  • 밀접하게 연관된 프로세스를 함께 실행하고, 하나의 컨테이너에서 실행되는 것처럼 거의 동일한 환경을 제공하며 격리된 상태로 유지
  • 쿠버네티스는 각 컨테이너가 자체 세트를 가지고 있는 대신, POD 안의 모든 컨테이너가 동일한 리눅스 네임스페이스 세트를 공유하도록 함으로써 격리시킨다.

 

 

POD 안의 컨테이너가 동일한 IP 및 포트 공간을 공유하는 방법

 

  • 네트워크 네임스페이스 공유
    • POD 안의 컨테이너들은 같은 IP 주소와 PORT 공간 공유
    • localhost를 통해 같은 POD 안의 다른 컨테이너와 통신 가능 (같은 루프백 네트워크 인터페이스)
  • flat inter-pod network
    • 쿠버네티스 클러스터의 모든 POD는 한 개의 플랫 네트워크 주소 공간에 위치

 

 

 

 

 

POD 만들기 (kubectl) 

 

# yaml 파일 이용하여 만들기
kubectl create -f FILENAME [options]

 

 

 

 

Pod Generator

 

Replication Controller

 

정해진 수의 POD가 항상 실행되도록 유지하는 쿠버네티스 리소스

observe하다가 desired state 개수만큼 유지

 

Replication Controller의 3가지 요소

  • POD Selector (Label selector)
  • POD template
  • Replicas
    • 실행해야 하는 POD의 원하는 수 지정

 

Replication Controller 생성

  • POD Selector는 POD template의 레이블과 일치해야 한다 (POD 무한 생성 방지)

 

 

Replicaset

 

Replication Controller 대체

RC는 Equality 기반 POD Selector 사용 / RS는 Set 기반 POD Selector 이용

 

 

 

DaemonSet 

 

클러스터의 각 노드에서 1개의 POD를 정확히 실행해야 하는 경우 사용

노드당 정확히 1개의 POD만 유지

주로 모니터링 솔루션 개발에서 사용 (일반 애플리케이션에서는 사용도 낮음)

 

daemonset.yaml

 

apps API 그룹의 vi에 속함 (apiVersion)

replicas 필드 자체가 없음

 

# DaemonSet 생성
kubectl create -f daemonset.yaml

 

worker node에 pod 정확히 1개씩 생성됨

 

 

728x90

'TIL > etc' 카테고리의 다른 글

[이산수학] 집합론  (1) 2024.04.22
jupyter notebook 설치 명령어  (0) 2024.03.27
[Kubernetes] Deployment  (0) 2024.01.14
[Kubernetes] Service  (0) 2024.01.13
[Kubernetes] Kubernetes 개요  (0) 2024.01.11