다음을 통해 공유


여러 멤버 클러스터에서 오케스트레이션 업데이트

다수의 클러스터를 관리하는 플랫폼 관리자는 안전하고 예측 가능한 방식으로 여러 클러스터의 업데이트(예: 노드 OS 이미지 버전 업그레이드, Kubernetes 버전 업그레이드)를 준비하는 데 문제가 있는 경우가 많습니다. 이 문제를 해결하기 위해 Azure Kubernetes Fleet Manager(Fleet)를 사용하면 업데이트 실행, 스테이지, 그룹 및 전략을 사용하여 여러 클러스터에서 업데이트를 오케스트레이션할 수 있습니다.

두 개의 업데이트 단계가 포함된 업그레이드 실행을 보여 주는 다이어그램. 각 단계에는 두 개의 멤버 클러스터가 있는 두 개의 업데이트 그룹이 포함되어 있습니다.

  • 업데이트 실행: 업데이트 실행은 업데이트 목표와 시퀀스로 구성된 AKS 클러스터 컬렉션에 적용되는 업데이트를 나타냅니다. 업데이트 목표는 원하는 업데이트(예: Kubernetes 버전 1.28.3으로 업그레이드)를 설명합니다. 업데이트 시퀀스는 단계와 그룹을 사용하여 표현된 여러 멤버 클러스터에 업데이트를 적용하는 정확한 시퀀스를 설명합니다. 지정하지 않으면 모든 멤버 클러스터가 순차적으로 하나씩 업데이트됩니다. 업데이트 실행을 중지하고 시작할 수 있습니다.
  • 업데이트 스테이지: 업데이트 실행은 순차적으로 적용되는 스테이지로 나뉩니다. 예를 들어 첫 번째 업데이트 스테이지는 테스트 환경 멤버 클러스터를 업데이트하고 두 번째 업데이트 스테이지는 이후에 프로덕션 환경 멤버 클러스터를 업데이트할 수 있습니다. 후속 업데이트 스테이지의 애플리케이션 간에 지연을 위해 대기 시간을 지정할 수 있습니다.
  • 업데이트 그룹: 각 업데이트 스테이지에는 업데이트할 멤버 클러스터를 선택하는 데 사용되는 하나 이상의 업데이트 그룹이 포함됩니다. 업데이트 그룹은 멤버 클러스터에 대한 업데이트 애플리케이션을 정렬하는 데도 사용됩니다. 업데이트 스테이지 내에서 업데이트는 모든 다른 업데이트 그룹에 병렬로 적용됩니다. 업데이트 그룹 내에서 멤버 클러스터는 순차적으로 업데이트됩니다. 집합의 각 멤버 클러스터는 하나의 업데이트 그룹에만 속할 수 있습니다.
  • 업데이트 전략: 업데이트 전략은 단계 및 그룹을 사용하여 업데이트 시퀀스를 설명합니다. 각 실행에서 반복적으로 시퀀스를 정의하는 대신 업데이트 실행에서 전략을 재사용할 수 있습니다.

현재 클러스터에서 지원되는 업데이트 작업은 업그레이드입니다. 다음 세 가지 유형의 업그레이드 중에서 선택할 수 있습니다.

  • Kubernetes 컨트롤 플레인 및 노드(노드 이미지 업그레이드 포함)에 대한 Kubernetes 버전을 업그레이드합니다.
  • 클러스터의 제어 평면에 대해서만 Kubernetes 버전 업그레이드
  • 노드 이미지만 업그레이드합니다.

업그레이드할 대상 Kubernetes 버전을 지정할 수 있지만, 사용 가능한 최신 노드 이미지 버전은 클러스터 지역에 따라 다를 수 있으므로 정확한 대상 노드 이미지 버전을 지정할 수 없습니다. 자세한 내용은 릴리스 추적기를 확인합니다. 대상 노드 이미지 버전은 기본 설정에 따라 자동으로 선택됩니다.

  • Latest: 클러스터 업그레이드가 시작되면 클러스터 지역에서 사용 가능한 최신 노드 이미지를 사용합니다. 결과적으로 클러스터가 있는 지역과 업그레이드가 실제로 시작되는 시기에 따라 다양한 이미지 버전이 사용될 수 있습니다.
  • Consistent: 업데이트 실행이 시작되면 이 실행의 멤버 클러스터 지역 전체에서 최신 공통 이미지 버전을 선택하므로 클러스터 전체에서 동일하고 일관된 이미지 버전이 사용됩니다.

최신 이미지 버전을 사용하고 보안 위험을 최소화하려면 Latest를 선택해야 하며, 이후 클러스터에서 사용하기 전에 이전 단계의 클러스터에서 해당 이미지를 사용하고 확인하여 안정성을 높이려면 Consistent를 선택해야 합니다.

계획된 유지 관리

업데이트 실행은 AKS(Azure Kubernetes Service) 클러스터 수준에서 설정한 계획된 유지 관리 기간을 따릅니다.

업데이트 실행 내에서(하나씩 또는 단계 형식 업데이트 실행 모두) 업데이트 실행은 다음 순서로 클러스터 업그레이드의 우선 순위를 지정합니다.

  1. 지속적인 유지 관리 기간이 열려 있는 멤버.
  2. 앞으로 4시간 내에 유지 관리 기간이 열리는 멤버.
  3. 유지 관리 기간이 없는 멤버.
  4. 유지 관리 기간이 닫힌 멤버.

실행 상태 업데이트

업데이트 실행은 다음 상태 중 하나일 수 있습니다.

  • NotStarted: 시작 전 업데이트 실행 상태입니다.

  • 실행 중: 업데이트 실행 중인 클러스터 중 하나 이상에 대해 업그레이드가 진행 중입니다.

  • Pending:

    • 멤버 클러스터: 멤버 클러스터는 다음과 같은 이유로 보류 상태일 수 있으며 메시지 필드 아래에 표시됩니다.
      • 유지 관리 기간이 열려 있지 않습니다. 메시지는 다음 개장 시간을 나타냅니다.
      • 멤버가 속한 지역에서는 대상 Kubernetes 버전을 아직 사용할 수 없습니다. 메시지는 여러 지역의 릴리스 상태를 확인할 수 있도록 릴리스 추적기에 연결됩니다.
      • 멤버 지역에서는 대상 노드 이미지 버전을 아직 사용할 수 없습니다. 메시지는 여러 지역의 릴리스 상태를 확인할 수 있도록 릴리스 추적기에 연결됩니다.
    • 그룹: 그룹의 모든 멤버가 Pending 상태이거나 시작되지 않은 경우 그룹은 Pending 상태입니다. 멤버가 Pending으로 이동하면 업데이트 실행은 그룹의 다음 멤버를 업그레이드하려고 시도합니다. 모든 멤버가 Pending 상태이면 그룹은 Pending 상태로 이동합니다. 모든 그룹은 다음 단계로 이동하기 전에 종료 상태에 있어야 합니다. 즉, 그룹이 Pending 상태인 경우 업데이트 실행은 실행을 위해 다음 단계로 이동하기 전에 그룹이 완료될 때까지 기다립니다.
    • 단계: 해당 단계 아래의 모든 그룹이 Pending 상태이거나 시작되지 않은 경우 단계는 Pending에 있습니다.
    • 실행: 실행되어야 하는 현재 단계가 Pending 상태인 경우 실행은 Pending 상태입니다.
  • 건너뛰기: 업데이트 실행의 모든 수준을 건너뛸 수 있으며 이는 시스템에서 검색되거나 사용자가 시작할 수 있습니다.

    • 구성원:
      • 멤버 또는 부모 멤버 중 한 명에 대한 업그레이드를 건너뛰었습니다.
      • 멤버 클러스터가 이미 대상 Kubernetes 버전에 있습니다(업데이트 실행 모드가 Full 또는 ControlPlaneOnly인 경우).
      • 멤버 클러스터는 이미 대상 Kubernetes 버전이고 모든 노드 풀은 대상 노드 이미지 버전입니다.
      • 업그레이드 실행을 위해 일관된 노드 이미지를 선택한 경우 노드 풀 중 하나에 대한 대상 이미지 버전을 찾을 수 없으면 해당 클러스터에 대한 업그레이드를 건너뜁니다. 이에 대한 상황 예는 업데이트 실행이 시작된 후 새 VM SKU가 있는 새 노드 풀이 추가되는 경우입니다.
    • 그룹:
      • 시스템에서 모든 멤버 클러스터가 Skipped로 발견되었습니다.
      • 그룹 수준에서 건너뛰기를 시작했습니다.
    • 단계:
      • 단계의 모든 그룹이 시스템에 의해 Skipped로 발견되었습니다.
      • 단계 수준에서 건너뛰기를 시작했습니다.
    • 실행:
      • 모든 단계가 시스템에 의해 Skipped로 발견되었습니다.
  • 중지됨: 모든 수준의 업데이트 실행을 중지할 수 있습니다. 중지된 상태로 들어가는 데에는 두 가지 가능성이 있습니다.

    • 업데이트 실행을 중지하면 업데이트 실행이 모든 작업 추적을 중지합니다. 업데이트 실행으로 작업이 이미 시작된 경우(예: 클러스터 업그레이드가 진행 중) 해당 개별 클러스터에 대해 해당 작업이 중단되지 않습니다.
    • 업데이트 실행 중에 오류가 발생하는 경우(예: 클러스터 중 하나에서 업그레이드 실패) 전체 업데이트 실행이 중지 상태로 전환되고 업데이트 실행의 후속 클러스터에 대해 작업이 시도되지 않습니다.
  • 실패: 클러스터 업그레이드에 실패하면 다음 작업이 수행됩니다.

    • 멤버 클러스터에서 MemberUpdateStatusFailed로 표시합니다.
    • 요약 오류 메시지와 함께 모든 부모 항목(그룹 -> 단계 -> 실행)을 Failed로 표시합니다.
    • 업데이트 실행이 더 이상 진행되지 않도록 중지합니다.

다음 단계