backend/kubernetes docs

kubernetes docs - pod overview

seul chan 2020. 6. 1. 20:08

Pod Overview

파드 는 쿠버네티스 애플리케이션의 기본 실행 단위이다. 쿠버네티스 객체 모델 중 만들고 배포할 수 있는 가장 작고 간단한 단위

주로 두 가지 방법으로 사용

  • 단일 컨테이너만 동작하는 파드
  • 함께 동작하는 작업이 필요한 다중 컨테이너가 동작하는 파드

어떻게 파드가 다중 컨테이너를 관리하는가?

  • 파드 내 컨테이너는 동일한 머신의 클러스터에 배치되고 스케쥴 됨
  • 리소스와 의존성 공유

파드는 같은 파드에 속한 컨테이너에게 두 가지 공유 리소스를 제공

네트워킹

  • 각 파드는 고유한 IP 주소를 할당
  • 한 파드 내의 모든 컨테이너는 network namespace와 IP address, network port를 공유
  • 다른 컨테이너와는 localhost를 사용하여 통신

저장소

  • Volumnes을 명시 가능
  • 파드 내부의 컨테이너는 공유 볼륨에 접근 가능
  • 컨테이너끼리 데이터 공유 가능

파드 작업

Kubernetes에서는 직접 개별 pod를 만들 일이 거의 없음.

Kubernetes는 컨트롤러라는 추상적인 개념을 사용하여 상대적으로 일시적인 pod instance를 관리

파드와 컨트롤러

파드 템플릿

컨트롤러는 pod template으로 pod를 생성하고 관리한다.

pod template은 pod를 생성하기 위한 명세.

아래 샘플은 컨테이너를 시작하는 template을 포함한 job manifest

apiVersion: batch/v1
kind: Job
metadata:
  name: hello
  template:
    # 이것이 파드 템플릿이다.
    spec:
      containers:
      - name: hello
        image: busybox
        command: ['sh', '-c', 'echo "Hello, Kubernetes!" && sleep 3600']
      restartPolicy: OnFailure
    # 여기가 파드 템플릿의 끝이다.

pod template을 수정하거나 새 pod template으로 전환해도 이미 존재하는 파드에는 영향을 미치지 않음