Docker와 Kubernetes

Kubernetes 소개

Frank Heilmann

Platform Architect and Freelance Instructor

컨테이너 오케스트레이션 도구

컨테이너 오케스트레이션 도구

  • 현대 소프트웨어 스택은 수천 개의 컨테이너로 구성될 수 있습니다
  • 이 모든 컨테이너를 관리하는 것을 컨테이너 오케스트레이션이라 하며, 여러 오케스트레이션 도구가 있습니다
  • Kubernetes의 시장 점유율은 추정치로 95%를 훨씬 상회합니다
Kubernetes 소개

오케스트레이션을 위한 Kubernetes

  • Kubernetes는 오케스트레이션의 일반적 과제(예:
    • 스케줄링과 네트워킹: 어디에 배포하고 어떻게 연결할지
    • 컨테이너에 스토리지를 어떻게 연결할지 {{2}}) 를 해결합니다
  • 이를 위해 Kubernetes는 컨테이너 엔진과 상호작용합니다.

Kubernetes와 Docker

Kubernetes 소개

Docker와 Kubernetes의 관계

  • 보통 Docker가 선호되는 컨테이너 엔진입니다
  • Kubernetes는 컨테이너를 스케줄링·유지하기 위해 컨테이너 엔진으로서 Docker와 상호작용합니다
  • Docker의 주 용도는 두 가지입니다:
    • Docker 이미지 생성 및 업데이트
    • 해당 이미지로 컨테이너 시작
  • Kubernetes는 Docker 이미지를 생성하지 않습니다. 이는 Docker가 담당합니다
Kubernetes 소개

Kubernetes Manifest

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
  • Kubernetes 객체(예: 컨테이너)는 Kubernetes Manifest로 기술됩니다
  • Manifest는 YAML 파일로, 원하는 객체, 구성, 스케줄 위치 등을 설명합니다
  • Manifest는 선언형입니다. 즉, 원하는 무엇/상태를 기술합니다
  • 명령형이 아니며, 어떻게 달성할지는 기술하지 않습니다
Kubernetes 소개

kubectl

kubectl과 Kubernetes

  • kubectl은 Kubernetes와 상호작용하는 명령줄 도구입니다
  • kubectl에는 많은 명령과 옵션이 있습니다
  • kubectl은 Manifest를 읽어 API로 Kubernetes에 전달하고, Kubernetes는 원하는 상태를 달성하기 위해 수행할 작업을 계산합니다
  • 발음은 큐브 커들(cube cuddle)입니다
Kubernetes 소개

실습해 봅시다!

Kubernetes 소개

Preparing Video For Download...