배포 만들기

적용 대상: Azure Stack HCI 22H2의 AKS, Windows Server의 AKS

이 문서에서는 Kubernetes 배포에 대한 개요를 제공하고 Azure Arc에서 사용하도록 설정된 AKS에서 배포를 만들고 업데이트하는 방법을 설명합니다.

Kubernetes 배포 개요

배포는 성능을 관리하고 Pod의 원하는 동작을 지정하는 Kubernetes 개체를 나타냅니다. 애플리케이션에 할당된 Pod를 포함하여 애플리케이션의 수명 주기를 지정합니다. 배포는 애플리케이션에 대해 원하는 상태를 통신하는 방법을 제공하며 컨트롤러는 현재 상태를 원하는 상태로 변경하는 작업을 수행합니다.

배포는 프로세스를 자동화하여 Pod 인스턴스를 시작하고 클러스터 내의 모든 노드에서 정의된 대로 실행되도록 합니다. 관리자와 IT 전문가는 배포를 사용하여 애플리케이션에서 원하는 것을 전달한 다음, Kubernetes는 애플리케이션의 원하는 상태를 만드는 데 필요한 모든 단계를 수행합니다.

배포는 애플리케이션 실행 방법을 정의하지만 애플리케이션이 클러스터 내에 있는 위치를 보장하지는 않습니다. 예를 들어 애플리케이션에 모든 노드에서 Pod의 instance 필요한 경우 DaemonSet을 사용하려고 합니다. 상태 저장 애플리케이션의 경우 StatefulSet은 고유한 네트워크 식별자, 영구 스토리지 및 정렬된 배포/크기 조정을 제공합니다.

Kubernetes 배포 개체를 사용하면 다음을 수행할 수 있습니다.

  • 복제본(replica) 집합 또는 Pod를 배포합니다.
  • 애플리케이션 인스턴스 수를 확장 또는 축소합니다.
  • 애플리케이션의 실행 중인 모든 instance 업데이트합니다.
  • 애플리케이션의 실행 중인 모든 인스턴스를 다른 버전으로 롤백합니다.
  • 배포를 일시 중지하거나 계속합니다.

자세한 내용은 Kubernetes 배포를 참조하세요.

배포 만들기

배포를 만들려면 또는 kubectl create 명령을 사용할 kubectl apply 수 있습니다. 필요한 수의 Pod가 유지 관리되고 모니터링되므로 배포를 만든 후 실행 중이며 사용할 수 있습니다. Pod가 실패하면 Kubernetes는 Pod의 복제본(replica) 즉시 롤아웃하여 클러스터에서 해당 위치를 차지합니다.

다음 예제에서는 YAML 형식의 배포 매니페스트 파일의 기능을 설명합니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - image: nginx
          name: nginx
          ports:
            - containerPort: 80

배포, 복제본(replica) 집합 및 Pod를 보려면 다음 명령을 실행합니다.

kubectl get deployment, replicaset, pod

배포 업데이트

배포의 기본 장점은 Kubernetes 프로그램을 자동으로 업데이트하는 기능입니다. 배포가 없으면 모든 이전 Pod를 수동으로 종료하고, 새 Pod 버전을 시작하고, 검사 실행하여 Pod를 만들 때 문제가 있는지 확인해야 합니다. 를 실행 kubectl describe deployment 하여 Pod가 제기되고 제거된 순서를 확인할 수 있습니다.

배포는 단순히 Pod 템플릿 또는 원하는 상태를 업데이트하므로 업데이트 프로세스를 자동화합니다. 배포는 선택한 업데이트가 적용될 때까지 새 Pod를 만들거나 더 많은 리소스를 할당하는 등의 작업을 사용하여 백그라운드에서 프로그램 상태를 변경합니다.

배포에 문제가 있는 경우 Kubernetes는 자동으로 이전 버전으로 롤백됩니다. 명령을 사용하여 특정 버전으로 명시적으로 롤백하거나 를 사용하여 kubectl rollout undokubectl rollout pause 배포를 일시적으로 중지할 수도 있습니다.

배포를 업데이트하기 위한 전략

Kubernetes는 환경의 요구 사항에 맞게 다양한 방법으로 업데이트할 수 있도록 여러 배포 전략을 제공합니다. 가장 일반적인 세 가지 업데이트 전략은 다음과 같습니다.

  • 롤링 업데이트: 이 업데이트는 성능에 사소한 영향과 가동 중지 시간 없이 Kubernetes 시스템을 업데이트할 수 있는 점진적 프로세스입니다. 업데이트 속도의 비용으로 가동 중지 시간을 최소화합니다.
  • 레크리에이션: 이 전략은 짧은 가동 중지 시간으로 시스템의 모든 측면을 한 번에 업데이트할 수 있는 모든 프로세스입니다. 빠르게 업데이트되지만 가동 중지 시간이 발생합니다.
  • 카나리아: 이 전략은 전체 출시에 대한 약속 없이 실제 사용자에 대해 새 프로그램 버전을 테스트할 수 있는 부분 업데이트 프로세스입니다. 나중에 전체 롤아웃을 사용하는 일부 사용자에 대해 빠르게 업데이트됩니다.

다음 단계