첫 (스테이트리스) 애플리케이션 배포

Kubernetes 소개

Frank Heilmann

Platform Architect and Freelance Instructor

"kubectl" 더 알아보기

  • kubectl: Kubernetes 오브젝트와 상호작용하는 기본 명령
  • 오브젝트 예: pod, service

$$

  • 일반 사용 패턴:

    • kubectl create -f <Manifest.yml>: 새 오브젝트 생성, -f는 파일명
    • kubectl apply -f <Manifest.yml>: 새 오브젝트 생성 및 상태 변경
    • kubectl get <object>: 클러스터 내 오브젝트 개요 확인
    • kubectl describe <object>: 오브젝트 상세 정보

    $$

  • 자세한 도움말: --help 옵션

Kubernetes 소개

매니페스트 더 알아보기

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 5
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.25.4
        ports:
        - containerPort: 80
  • 참고: 매니페스트는 선언형입니다.
  • 보통 YAML이지만 JSON도 가능
  • 두 가지 핵심 섹션:
    • metadata: 오브젝트/리소스의 기본 정보
    • spec: 오브젝트/리소스의 사양(원하는 상태) 정의
  • 리소스에 따라 섹션이 깊어질 수 있습니다
Kubernetes 소개

스테이트리스 애플리케이션

  • 스테이트리스 앱:

    • 일반적 개념
    • Kubernetes에만 국한되지 않음
    • 내부 상태나 처리 컨텍스트를 저장하지 않음
  • 중단되면 새 복제본이 생성되어 바로 동작합니다.

  • 예시:
    • DB 백엔드를 조회하는 DB 프런트엔드
    • 전문 검색 인덱스를 조회하는 검색 앱
    • IoT 센서의 온도(°F→°C)를 변환하는 스트림 처리 앱
Kubernetes 소개

Kubernetes Deployment

  • "스테이트리스 애플리케이션"은 Kubernetes의 "Deployment"로 구현합니다.
  • 예시 매니페스트 구성:
    • apiVersion, kind
    • metadata, spec
  • spec에는 replicas, selector, template가 정의됩니다
  • selector는 뒤에서 설명합니다
  • template은 Deployment가 생성할 파드의 세부를 설명합니다
apiVersion: apps/v1
kind: Deployment
metadata:
  name: <deployment name>
  labels:
    app: <a label for the application>
spec:
  replicas: <number of initial replicas>
  selector:
    matchLabels:
      app: <matches the label above>
  template:
    metadata:
      labels:
        app: <label to be given to each pod>
    spec:
      containers:
      - name: <container name>
        image: <the image to be used>
        ports:
        - containerPort: <ports for networking>
Kubernetes 소개

Kubernetes 클러스터에 배포

  • kubectl apply -f <manifest.yml>: 파드 생성 및 변경 적용
  • Kubernetes 컨트롤 플레인이 노드에 Deployment를 스케줄링합니다.
    • 이후 노드에서 파드 생성이 트리거됩니다.
  • 파드는 고유하지만 예측 불가한 식별자를 가지며, 각 파드는 서로 대체 가능합니다.
Kubernetes 소개

연습해 봅시다!

Kubernetes 소개

Preparing Video For Download...