다음을 통해 공유


계획된 유지 관리를 사용하여 Azure Kubernetes Service 클러스터에 대한 업그레이드 예약 및 제어

이 문서에서는 계획된 유지 관리를 사용하여 Azure Kubernetes Service (AKS) 클러스터 및 노드 이미지 업그레이드를 예약하고 제어하는 방법을 보여 줍니다.

AKS 클러스터에서 정기적으로 유지 관리가 자동으로 수행됩니다. 유지 관리 작업에는 두 가지 유형이 있습니다.

AKS에서 계획된 유지 관리 기능을 사용하는 경우 두 유형의 유지 관리를 선택한 주기로 실행하여 워크로드 영향을 최소화할 수 있습니다.

참고

계획된 유지 관리를 사용하여 자동 업그레이드의 타이밍을 예약할 수 있지만 계획된 유지 관리를 사용하거나 사용하지 않도록 설정해도 자동 업그레이드를 사용하거나 사용하지 않도록 설정할 수 없습니다.

시작하기 전에

  • 이 문서에서는 기존 AKS 클러스터가 있다고 가정합니다. AKS 클러스터가 없는 경우 AKS 클러스터 만들기를 참조하세요.
  • Azure CLI 사용하는 경우 az upgrade 명령을 사용하여 최신 버전으로 업그레이드합니다.
  • 활성 Azure 구독입니다. Azure 구독이 없는 경우 시작하기 전에 free 계정 만듭니다.

  • 명령을 사용하여 구독 컨텍스트를 az account set 설정합니다. 다음은 그 예입니다.

    az account set --subscription "00000000-0000-0000-0000-000000000000"
    
  • Terraform이 로컬로 설치되었습니다. 설치 지침은 Terraform 설치를 참조하세요.

고려 사항

계획된 유지 관리를 사용하는 경우 다음 고려 사항이 적용됩니다.

  • AKS는 긴급하거나 중요한 계획되지 않은 사후 유지 관리 작업을 위해 계획된 유지 관리 기간을 중단할 권리를 보유합니다. 이러한 유지 관리 작업은 구성에 정의된 notAllowedTime 또는 notAllowedDates 기간 동안 실행될 수도 있습니다.
  • 유지 관리 작업은 최선의 노력으로만 간주되며 지정된 기간 내에 수행되도록 보장되지 않습니다.

계획된 유지 관리에 대한 구성 유형 예약

계획된 유지 관리에는 다음 세 가지 일정 구성 유형을 사용할 수 있습니다.

  • default 는 제어 평면 구성 요소 및 시스템 추가 기능 업그레이드를 포함하는 AKS 릴리스를 제어하기 위한 기본 구성입니다. 릴리스는 Azure 안전한 배포 관행으로 인해 초기 배송 시점부터 모든 지역에 배포하는 데 최대 2주가 걸릴 수 있습니다.

    default(을)를 선택하여 가장 중단이 적은 방식으로 이러한 업데이트를 예약합니다. 주별 릴리스 추적기를 사용하여 지역별 진행 중인 AKS 릴리스의 상태를 모니터링할 수 있습니다.

  • aksManagedAutoUpgradeSchedule(은)는 지정된 자동 업그레이드 채널에서 예약된 클러스터 업그레이드를 수행할 시기를 제어합니다. default 구성에 비해 이 구성을 사용하여 보다 세밀하게 제어되는 주기 및 되풀이 설정을 구성할 수 있습니다. 클러스터 자동 업그레이드에 대한 자세한 내용은 Azure Kubernetes Service 클러스터를 자동으로 업그레이드 참조하세요.

  • aksManagedNodeOSUpgradeSchedule 노드 OS 자동 업그레이드 채널에서 예약한 노드 OS 보안 패치를 수행할 시기를 제어합니다. default 구성에 비해 이 구성을 사용하여 보다 세밀하게 제어되는 주기 및 되풀이 설정을 구성할 수 있습니다. 노드 OS 자동 업그레이드 채널에 대한 자세한 내용은 AKS 클러스터 노드 이미지 자동 패치 및 업데이트를 참조하세요.

모든 클러스터 Kubernetes 버전 업그레이드 시나리오에는 aksManagedAutoUpgradeSchedule를 사용하고, 모든 노드 OS 보안 패치 시나리오에는 aksManagedNodeOSUpgradeSchedule을 사용할 것을 권장합니다.

default 옵션은 AKS 주간 릴리스에만 사용됩니다. AKS 컨트롤 플레인 구성 요소(예: API Server, ETCD 등) 및 추가 기능(예: CoreDNS, 메트릭 서버 등)에 대한 업그레이드 일정을 제어하려는 경우 사용합니다 default .

세 가지 유형의 구성이 모두 공존할 수 있습니다.

유지 관리 기간 만들기

참고

자동 업그레이드를 사용하는 경우 적절한 기능을 보장하기 위해 유지 관리 기간을 4시간 이상 사용합니다.

참고

2023-05-01 API 버전부터 구성을 위해 default 다음 표의 속성을 사용합니다.

2023-05-01 API 버전 이후의 aksManagedAutoUpgradeSchedule 또는 aksManagedNodeOSUpgradeSchedule 유지 관리 기간 및 default 구성에는 다음과 같은 속성이 있습니다.

이름 설명 기본값
utcOffset 클러스터 유지 관리를 위한 표준 시간대입니다. +00:00
startDate 유지 관리 기간이 적용되는 날짜입니다. 만들 때의 현재 날짜
startTime utcOffset에 의해 결정된 표준 시간대에 따라 유지 관리가 시작되는 시간입니다. 해당 없음
schedule 업그레이드 빈도입니다. Weekly, AbsoluteMonthlyRelativeMonthly, 세 가지 형식을 사용할 수 있습니다. 해당 없음
intervalDays 유지 관리 실행 간격(일). aksManagedNodeOSUpgradeSchedule에만 적용할 수 있습니다. 해당 없음
intervalWeeks 유지 관리 실행에 대한 주 간격입니다. 해당 없음
intervalMonths 유지 관리 실행에 대한 월 간격입니다. 해당 없음
dayOfWeek 유지 관리를 시작할 지정된 요일입니다. 해당 없음
durationHours 유지 관리를 실행할 기간입니다. 해당 없음
notAllowedDates 유지 관리를 실행할 수 없는 날짜 범위이며, startend 자식 속성에 따라 결정됩니다. 구성 파일을 사용하여 유지 관리 기간을 만드는 경우에만 적용됩니다. 해당 없음

사용되지 않는 속성

참고

다음과 같이 사용되지 않는 속성을 사용하여 default 구성을 만들면 이전 표에 표시된 새 속성으로 자동으로 마이그레이션됩니다.

[사용되지 않음]default 유지 관리 기간에는 다음과 같은 레거시 속성이 있습니다.

이름 설명 기본값
timeInWeek default 구성에서 이 속성에는 유지 관리 기간을 정의하는 dayhourSlots 값이 포함됩니다. 해당 없음
timeInWeek.day default 구성에서 유지 관리를 수행하는 요일입니다. 해당 없음
timeInWeek.hourSlots default 구성에서 특정 날짜에 유지 관리를 수행할 시간 슬롯의 목록입니다. 해당 없음
notAllowedTime 유지 관리를 실행할 수 없는 날짜 범위이며, startend 자식 속성에 따라 결정됩니다. 이 속성은 구성 파일을 사용하여 유지 관리 기간을 만드는 경우에만 적용됩니다. 해당 없음

일정 유형

4가지 일정 유형이 DailyWeeklyAbsoluteMonthly지원RelativeMonthly됩니다.

다음 표에서는 각 유지 관리 구성 옵션에 사용할 수 있는 유형을 보여줍니다.

일정 유형 default aksManagedClusterAutoUpgradeSchedule aksManagedNodeOSUpgradeSchedule
매일 지원 되지 않는 ❌ 지원됨 ✅ (2025년 6월 이후) ✅ 지원됨
매주 ✅ 지원됨 ✅ 지원됨 ✅ 지원됨
AbsoluteMonthly 지원 되지 않는 ❌ ✅ 지원됨 ✅ 지원됨
RelativeMonthly 지원 되지 않는 ❌ ✅ 지원됨 ✅ 지원됨

각 일정 유형에 대해 표시된 모든 필드가 필요합니다.

Daily 일정은 "3일마다"처럼 보일 수 있습니다.

"schedule": {
    "daily": {
        "intervalDays": 3
    }
}

Weekly 일정은 "격주 금요일마다"처럼 보일 수 있습니다.

"schedule": {
    "weekly": {
        "intervalWeeks": 2,
        "dayOfWeek": "Friday"
    }
}

AbsoluteMonthly 일정은 "3개월마다 매월 첫 날에"와 같이 표시될 수 있습니다.

"schedule": {
    "absoluteMonthly": {
        "intervalMonths": 3,
        "dayOfMonth": 1
    }
}

RelativeMonthly 일정은 "2개월마다 마지막 월요일에"와 같이 표시될 수 있습니다.

"schedule": {
    "relativeMonthly": {
        "intervalMonths": 2,
        "dayOfWeek": "Monday",
        "weekIndex": "Last"
    }
}

weekIndex 유효한 값은 First, Second, Third, FourthLast(을)를 포함합니다.

Terraform 구성 파일 만들기

Terraform 구성 파일은 Terraform에서 만들고 관리하는 인프라를 정의합니다.

main.tf 파일을 만들고 다음 코드를 추가하여 Terraform 버전을 정의하고 Azure 공급자를 지정합니다.

terraform {
 required_providers {
   azurerm = {
     source  = "hashicorp/azurerm"
     version = "~>4.0"
   }
   azapi = {
     source  = "azure/azapi"
     version = "~>2.0"
   }
 }
}
provider "azurerm" {
 features {}
}
provider "azapi" {}

리소스 그룹 만들기

다음 코드를 main.tf 추가하여 Azure 리소스 그룹을 만듭니다. 환경에 맞게 locationname 값을 업데이트합니다.

resource "azurerm_resource_group" "rg" {
 name     = "aks-maintenance-rg"
 location = "East US"
}

AKS 클러스터 만들기

AKS 클러스터를 만들려면 main.tf 다음 코드를 추가합니다. 환경에 맞게 필요에 따라 값을 업데이트합니다.

resource "azurerm_kubernetes_cluster" "aks" {
 name                = "aks-maintenance-cluster"
 location            = azurerm_resource_group.rg.location
 resource_group_name = azurerm_resource_group.rg.name
 dns_prefix          = "aksmaintenance"
 default_node_pool {
   name       = "nodepool1"
   node_count = 1
   vm_size    = "Standard_DS2_v2"
 }
 identity {
   type = "SystemAssigned"
 }
}

유지 관리 기간 구성 추가

az aks maintenanceconfiguration add 명령을 사용하여 AKS 클러스터에 유지 관리 창 구성을 추가합니다.

첫 번째 예제는 default 표준 시간대 기준으로 매주 월요일 오전 1시부터 오전 5시까지 유지 관리를 예약하는 새로운 UTC 구성을 추가합니다. 두 번째 예제에서는 aksManagedAutoUpgradeSchedule 표준 시간대에서 오전 12시~오전 8시 사이에 매 3일 금요일마다 유지 관리를 실행하도록 예약하는 새 UTC+5:30 구성을 추가합니다.

# Add a new default configuration
az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name default --schedule-type Weekly --day-of-week Monday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 01:00

# Add a new aksManagedAutoUpgradeSchedule configuration
az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedAutoUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00
  1. Azure 포털에서 AKS 클러스터 리소스로 이동합니다.

  2. 서비스 메뉴의 설정에서 업그레이드를 선택합니다.

  3. 업그레이드>자동 업그레이드 스케줄러 아래에서 일정 추가를 선택합니다.

    Azure 포털에 일정을 추가하는 옵션을 보여주는 스크린샷.

  4. 유지 관리 일정 추가 창에서 다음 유지 관리 기간 설정을 구성합니다.

    • 반복: 유지 관리 기간의 빈도를 선택합니다. 매주를 선택하는 것이 좋습니다.
    • 빈도: 유지 관리 기간의 요일을 선택합니다. 일요일을 선택하는 것이 좋습니다.
    • 유지 관리 시작 날짜: 유지 관리 기간의 시작 날짜를 선택합니다.
    • 유지 관리 시작 시간: 유지 관리 기간의 시작 시간을 선택합니다.
    • UTC 오프셋: 유지 관리 기간에 대한 UTC 오프셋을 선택합니다. 기본값은 +00:00입니다.

    Azure portal에서 유지 관리 일정을 추가하기 위한 창을 보여주는 스크린샷

  5. 저장을 선택합니다.

JSON 파일을 사용하여 매개 변수를 사용하는 대신 유지 관리 구성을 만들 수 있습니다. 이 방법을 사용하는 경우 , notAllowedDatesdefault 구성을 지정하여 aksManagedAutoUpgradeScheduleaksManagedNodeOSUpgradeSchedule날짜 범위 동안 유지 관리를 방지할 수 있습니다.

  1. 유지 관리 기간 설정을 사용하여 JSON 파일을 만듭니다.

    다음 예에서는 매주 화요일 default.json 시간대의 오전 1:00부터 오전 5:00까지 유지 관리를 예약하는 UTC 파일을 만듭니다. 유지 관리 기간과 겹치는 경우에도 유지 관리가 허용되지 않는 2021-05-26에서 2021-05-30까지 예외가 있습니다.

    {
      "properties": {
        "maintenanceWindow": {
            "schedule": {
                "weekly": {
                    "intervalWeeks": 1,
                    "dayOfWeek": "Tuesday"
                }
            },
            "durationHours": 4,
            "utcOffset": "+00:00",
            "startTime": "01:00",
            "notAllowedDates": [
                {
                    "start": "2021-05-26",
                    "end": "2021-05-30"
                }
            ]
        }
      }
    }
    

    다음 예제에서는 autoUpgradeWindow.json 표준 시간대에서 오전 9시~오후 1시 사이에 매월 3개월마다 유지 관리를 실행하도록 예약하는 UTC-08 파일을 만듭니다. 유지 관리 기간과 겹치는 경우에도 유지 관리가 허용되지 않는 2023-12-23에서 2024-01-05까지 예외가 있습니다.

    {
      "properties": {
        "maintenanceWindow": {
            "schedule": {
                "absoluteMonthly": {
                    "intervalMonths": 3,
                    "dayOfMonth": 1
                }
            },
            "durationHours": 4,
            "utcOffset": "-08:00",
            "startTime": "09:00",
            "notAllowedDates": [
                {
                    "start": "2023-12-23",
                    "end": "2024-01-05"
                }
            ]
        }
      }
    }
    
  2. az aks maintenanceconfiguration add 명령과 --config-file 매개 변수를 사용하여 유지 관리 창 구성을 추가합니다.

    첫 번째 예제에서는 default 파일을 사용하여 새 default.json 구성을 추가합니다. 두 번째 예제에서는 aksManagedAutoUpgradeSchedule 파일을 사용하여 새 autoUpgradeWindow.json 구성을 추가합니다.

    # Add a new default configuration
    az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name default --config-file ./default.json
    
    # Add a new aksManagedAutoUpgradeSchedule configuration
    az aks maintenanceconfiguration add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedAutoUpgradeSchedule --config-file ./autoUpgradeWindow.json
    

main.tf에 유지 관리 기간 구성을 azapi_resource 리소스를 사용하여 추가합니다.

기본 유지 관리 구성

다음 예제에서는 표준 시간대에서 매주 토요일 오전 2:00부터 오전 6:00까지 유지 관리를 실행하도록 예약하는 유지 관리 구성을 default 만듭니다UTC-04:00.

resource "azapi_resource" "default_maintenance" {
 type      = "Microsoft.ContainerService/managedClusters/maintenanceConfigurations@2025-10-01"
 name      = "default"
 parent_id = azurerm_kubernetes_cluster.aks.id
 schema_validation_enabled = false
 body = {
   properties = {
     maintenanceWindow = {
       schedule = {
         weekly = {
           dayOfWeek     = "Saturday"
           intervalWeeks = 1
         }
       }
       durationHours = 4
       startTime     = "02:00"
       utcOffset     = "-04:00"
     }
   }
 }
}

자동 업그레이드 유지 관리 구성

다음 예제에서는 2026년 4월 20일부터 표준 시간대에서 매주 일요일 오전 1:00부터 오전 aksManagedAutoUpgradeSchedule 5:00까지 유지 관리를 실행하도록 예약하는 유지 관리 구성을 만듭니다UTC-04:00.

resource "azapi_resource" "auto_upgrade" {
 type      = "Microsoft.ContainerService/managedClusters/maintenanceConfigurations@2025-10-01"
 name      = "aksManagedAutoUpgradeSchedule"
 parent_id = azurerm_kubernetes_cluster.aks.id
 schema_validation_enabled = false
 body = {
   properties = {
     maintenanceWindow = {
       startDate     = "2026-04-20"
       startTime     = "01:00"
       durationHours = 4
       utcOffset     = "-04:00"
       schedule = {
         weekly = {
           dayOfWeek     = "Sunday"
           intervalWeeks = 1
         }
       }
     }
   }
 }
}

노드 OS 업그레이드 유지 관리 구성

다음 예제에서는 2026년 4월 21일부터 aksManagedNodeOSUpgradeSchedule 시간대를 기준으로 매주 월요일 오전 3:00부터 오전 7:00까지 유지 관리를 실행하도록 예약하는 UTC-04:00 유지 관리 구성을 만듭니다.

resource "azapi_resource" "node_os_upgrade" {
 type      = "Microsoft.ContainerService/managedClusters/maintenanceConfigurations@2025-10-01"
 name      = "aksManagedNodeOSUpgradeSchedule"
 parent_id = azurerm_kubernetes_cluster.aks.id
 schema_validation_enabled = false
 body = {
   properties = {
     maintenanceWindow = {
       startDate     = "2026-04-21"
       startTime     = "03:00"
       durationHours = 4
       utcOffset     = "-04:00"
       schedule = {
         weekly = {
           dayOfWeek     = "Monday"
           intervalWeeks = 1
         }
       }
     }
   }
 }
}

기존 유지 관리 기간 업데이트

명령을 사용하여 기존 유지 관리 구성을 업데이트합니다 az aks maintenanceconfiguration update .

다음 예제에서는 매주 금요일 오전 2:00부터 오전 6:00까지 유지 관리를 예약하도록 default 구성을 업데이트합니다.

az aks maintenanceconfiguration update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name default --schedule-type Weekly --day-of-week Friday --interval-weeks 1 --duration 4 --utc-offset +00:00 --start-time 02:00
  1. Azure 포털에서 AKS 클러스터 리소스로 이동합니다.

  2. 서비스 메뉴의 설정에서 업그레이드를 선택합니다.

  3. 업그레이드>자동 업그레이드 스케줄러아래에서 일정 편집을 선택합니다.

    Azure 포털에서 일정을 편집하는 옵션을 보여주는 스크린샷입니다.

  4. 유지 관리 일정 편집 창에서 필요에 따라 유지 관리 기간 설정을 업데이트합니다.

  5. 저장을 선택합니다.

  1. 구성 JSON 파일을 새 유지 관리 기간 설정으로 업데이트합니다.

    다음 예제에서는 default.json 파일을 업데이트하여 매주 월요일 오전 2:00부터 오전 6:00까지 실행되도록 유지 관리를 예약합니다.

    {
      "properties": {
        "maintenanceWindow": {
            "schedule": {
                "weekly": {
                    "intervalWeeks": 1,
                    "dayOfWeek": "Monday"
                }
            },
            "durationHours": 4,
            "utcOffset": "+00:00",
            "startTime": "02:00",
            "notAllowedDates": [
                {
                    "start": "2021-05-26",
                    "end": "2021-05-30"
                }
            ]
        }
      }
    }
    
  2. az aks maintenanceconfiguration update 명령과 --config-file 매개 변수를 사용하여 유지 관리 창 구성을 업데이트합니다.

    az aks maintenanceconfiguration update --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name default --config-file ./default.json
    

Terraform에서 관리하는 기존 AKS 클러스터가 이미 있는 경우 Terraform 구성 파일을 수정하고 명령을 사용하여 terraform apply 변경 내용을 적용하여 유지 관리 기간 구성을 업데이트할 수 있습니다.

Terraform 초기화

main.tf 파일이 있는 디렉터리에서 terraform init 명령어를 사용해 Terraform을 초기화하세요. 이 명령은 Terraform을 사용하여 Azure 리소스를 관리하는 데 필요한 Azure 공급자를 다운로드합니다.

terraform init

Terraform 실행 계획 만들기

terraform plan 명령을 사용하여 Terraform 실행 계획을 만듭니다. 이 명령은 Terraform이 Azure 구독에서 만들거나 수정할 리소스를 보여 줍니다.

terraform plan

Terraform 구성 적용

실행 계획을 검토하고 확인한 후 명령을 사용하여 Terraform 구성을 적용합니다 terraform apply . 이 명령은 Azure 구독의 main.tf 파일에 정의된 리소스를 만들거나 수정합니다.

terraform apply

기존 클러스터의 모든 유지 관리 기간 나열

az aks maintenanceconfiguration list 명령을 사용하여 AKS 클러스터의 현재 유지 관리 구성 윈도우를 나열합니다.

az aks maintenanceconfiguration list --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME

기존 클러스터에서 특정 유지 관리 구성 기간 표시

AKS 클러스터에서 특정 유지 관리 구성 창을 보려면 az aks maintenanceconfiguration show 명령과 --name 매개 변수를 사용하세요.

az aks maintenanceconfiguration show --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name aksManagedAutoUpgradeSchedule

다음 예제 출력은 aksManagedAutoUpgradeSchedule에 대한 유지 관리 기간을 보여줍니다.

{
  "id": "/subscriptions/<subscription>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/maintenanceConfigurations/aksManagedAutoUpgradeSchedule",
  "maintenanceWindow": {
    "durationHours": 4,
    "notAllowedDates": [
      {
        "end": "2024-01-05",
        "start": "2023-12-23"
      }
    ],
    "schedule": {
      "absoluteMonthly": {
        "dayOfMonth": 1,
        "intervalMonths": 3
      },
      "daily": null,
      "relativeMonthly": null,
      "weekly": null
    },
    "startDate": "2023-01-20",
    "startTime": "09:00",
    "utcOffset": "-08:00"
  },
  "name": "aksManagedAutoUpgradeSchedule",
  "notAllowedTime": null,
  "resourceGroup": "myResourceGroup",
  "systemData": null,
  "timeInWeek": null,
  "type": null
}

기존 클러스터에서 유지 관리 구성 기간 삭제

명령을 사용하여 AKS 클러스터에서 유지 관리 구성 창을 삭제합니다 az aks maintenanceconfiguration delete .

다음 예제에서는 autoUpgradeSchedule 유지 관리 구성을 삭제합니다.

az aks maintenanceconfiguration delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name autoUpgradeSchedule
  1. Azure 포털에서 AKS 클러스터 리소스로 이동합니다.

  2. 서비스 메뉴의 설정 아래에서 클러스터 구성을 선택합니다.

  3. 업그레이드>자동 업그레이드 스케줄러아래에서 일정 편집을 선택합니다.

    Azure 포털에서 일정을 편집하는 옵션을 보여주는 스크린샷입니다.

  4. 유지 관리 일정 편집 창에서 일정 제거를 선택합니다.

    Azure 포털에서 일정을 제거하는 단추가 있는 유지 관리 창을 편집하는 패널을 보여주는 스크린샷

명령을 사용하여 AKS 클러스터에서 유지 관리 구성 창을 삭제합니다 az aks maintenanceconfiguration delete .

다음 예제에서는 autoUpgradeSchedule 유지 관리 구성을 삭제합니다.

az aks maintenanceconfiguration delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name autoUpgradeSchedule

유지 관리 구성을 삭제하려면 Terraform 구성에서 해당 블록을 제거하고 명령을 사용하여 terraform apply 변경 내용을 적용합니다.

FAQ(질문과 대답)

내 클러스터의 기존 유지 관리 구성을 어떻게 확인할 수 있나요?

az aks maintenanceconfiguration show 명령을 사용합니다.

notAllowedDates 기간에도 대응적이고 계획되지 않은 유지 관리가 발생할 수 있나요?

예. AKS는 긴급하거나, 중요한 계획되지 않거나, 대응적인 유지 관리 작업의 해당 기간을 중단할 권리를 보유합니다.

유지 관리 이벤트가 발생했는지 어떻게 알 수 있나요?

릴리스의 경우 클러스터의 지역을 확인하고 주간 릴리스 정보를 조회하여 유지 관리 일정과 일치하는지 확인합니다. 자동 업그레이드의 상태를 보려면 클러스터에서 활동 로그를 조회합니다. AKS 클러스터 업그레이드에 설명한 대로 특정 업그레이드 관련 이벤트를 조회할 수도 있습니다.

또한 AKS는 업그레이드 관련 Azure Event Grid 이벤트를 내보냅니다. 자세한 내용은 AKS를 Event Grid 원본을 참조하세요.

둘 이상의 유지 관리 구성을 동시에 사용할 수 있나요?

예, default, aksManagedAutoUpgradeScheduleaksManagedNodeOSUpgradeSchedule 세 가지 구성을 모두 동시에 실행할 수 있습니다. 창이 겹치면 AKS에서 실행 순서를 결정합니다.

유지 관리 기간을 구성했지만 업그레이드가 수행되지 않았습니다. 그 이유는

AKS 자동 업그레이드에는 유지 관리 기간을 고려하기 위해 특정 시간(일반적으로 15분 이하)이 필요합니다. 유지 관리 구성의 생성 또는 업데이트와 예약된 시작 시간 사이의 최소 15분을 권장합니다.

또한 계획된 유지 관리 기간이 시작될 때 클러스터가 시작되었는지 확인합니다. 클러스터가 중지되면 컨트롤 플레인의 할당이 취소되고 작업을 수행할 수 없습니다.

내 에이전트 풀 중 하나가 유지 관리 기간 외부에서 업그레이드된 이유는 무엇인가요?

AKS는 구성된 유지 관리 기간 동안에만 업그레이드 관련 작업을 시작합니다. 창이 닫히기 전에 작업이 시작되면 창 종료 시간 이상으로 확장되더라도 완료될 때까지 계속 실행할 수 있습니다.

창이 닫히면 AKS는 새 업그레이드 작업을 시작하지 않습니다. 남은 업그레이드 작업은 향후 적격 기간까지 지연됩니다.

예: 유지 관리 기간이 08:00-12:00이고 12:00 이전에 시작된 클러스터 또는 노드 풀 업그레이드가 12:15에 계속 진행 중인 경우, AKS에서 진행 중인 작업을 완료하도록 허용합니다. 그러나 AKS는 12:00 이후에 새 업그레이드 작업을 시작하지 않습니다.

유지 관리 구성에 대한 모범 사례가 있나요?

채널을 사용하는 경우 NodeImage 일정을 매주 주기로 설정하는 것이 좋습니다. 새 노드 이미지가 매주 제공되기 때문입니다. SecurityPatch 채널에서 일일 보안 업데이트를 수신하도록 옵트인할 수도 있습니다.

Kubernetes N-2 지원 정책을 사용하여 최신 상태를 유지하기 위해 자동 업그레이드 일정을 월별 주기로 설정할 수 있습니다.

업그레이드 모범 사례 및 기타 고려 사항에 대한 자세한 내용은 AKS 패치 및 업그레이드 지침을 참조하세요.

동일한 유지 관리 구성을 사용하도록 단일 구독의 모든 클러스터를 구성할 수 있나요?

단일 구독의 여러 클러스터에 대해 동일한 유지 관리 구성을 사용하지 않는 것이 좋습니다. 이렇게 하면 ARM 제한 오류로 인해 클러스터 업그레이드가 실패할 수 있습니다. 대신 이러한 오류를 방지하려면 각 클러스터에 대한 유지 관리 기간을 서로 엇갈리게 하는 것이 좋습니다.

동일한 유지 관리 기간 동안 노드 풀이 두 번 업그레이드된 이유는 무엇인가요?

유지 관리 기간 동안 최신 버전의 노드 이미지를 사용할 수 있게 되면 AKS는 두 번째 업그레이드를 수행하여 노드 풀이 최신 버전을 실행하고 있는지 확인합니다. 이 동작은 정상이며 문제를 나타내지 않습니다.

AKS 클러스터 업그레이드를 시작하려면 AKS 클러스터에 대한 업그레이드 옵션을 참조하세요.