계획된 유지 관리를 사용하여 Azure Kubernetes Service 클러스터에 대한 업그레이드 예약 및 제어
이 문서에서는 계획된 유지 관리를 사용하여 AKS(Azure Kubernetes Service)에서 클러스터 및 노드 이미지 업그레이드를 예약하고 제어하는 방법을 보여 줍니다.
AKS 클러스터에서 정기적으로 유지 관리가 자동으로 수행됩니다. 유지 관리 작업에는 두 가지 유형이 있습니다.
- AKS 시작 유지 관리에는 AKS가 최신 기능 및 수정 사항으로 클러스터를 최신 상태로 유지하기 위해 수행하는 주간 릴리스가 포함됩니다.
- 사용자 시작 유지 관리에는 클러스터 자동 업그레이드 및 OS(노드 운영 체제) 자동 보안 업데이트가 포함됩니다.
AKS에서 계획된 유지 관리 기능을 사용하는 경우 두 유형의 유지 관리를 선택한 주기로 실행하여 워크로드 영향을 최소화할 수 있습니다. 계획된 유지 관리를 사용하여 자동 업그레이드의 타이밍을 예약할 수 있지만, 계획된 유지 관리를 활성 또는 비활성으로 설정해도 자동 업그레이드가 활성 또는 비활성으로 설정되지 않습니다.
시작하기 전에
- 이 문서에서는 기존 AKS 클러스터가 있다고 가정합니다. AKS 클러스터가 없는 경우 AKS 클러스터 만들기를 참조하세요.
- Azure CLI를 사용하는 경우
az upgrade
명령을 사용하여 최신 버전으로 업그레이드합니다.
고려 사항
계획된 유지 관리를 사용하는 경우 다음 고려 사항이 적용됩니다.
- AKS는 긴급하거나 중요한 계획되지 않은 사후 유지 관리 작업을 위해 계획된 유지 관리 기간을 중단할 권리를 보유합니다. 이러한 유지 관리 작업은 구성에 정의된
notAllowedTime
또는notAllowedDates
기간 동안 실행될 수도 있습니다. - 유지 관리 작업은 최선의 노력으로만 간주되며 지정된 기간 내에 수행되도록 보장되지 않습니다.
계획된 유지 관리에 대한 구성 유형 예약
계획된 유지 관리에는 다음 세 가지 일정 구성 유형을 사용할 수 있습니다.
default
AKS 릴리스를 제어하기 위한 기본 구성입니다. 릴리스는 Azure 안전한 배포 관행으로 인해 초기 배송 시점부터 모든 지역에 배포하는 데 최대 2주가 걸릴 수 있습니다.default
(을)를 선택하여 가장 중단이 적은 방식으로 이러한 업데이트를 예약합니다. 주별 릴리스 추적기를 사용하여 지역별 진행 중인 AKS 릴리스의 상태를 모니터링할 수 있습니다.aksManagedAutoUpgradeSchedule
(은)는 지정된 자동 업그레이드 채널에서 예약된 클러스터 업그레이드를 수행할 시기를 제어합니다.default
구성에 비해 이 구성을 사용하여 보다 세밀하게 제어되는 주기 및 되풀이 설정을 구성할 수 있습니다. 클러스터 자동 업그레이드에 대한 자세한 내용은 Azure Kubernetes Service 클러스터 자동으로 업그레이드를 참조하세요.aksManagedNodeOSUpgradeSchedule
노드 OS 자동 업그레이드 채널에서 예약한 노드 OS 보안 패치를 수행할 시기를 제어합니다.default
구성에 비해 이 구성을 사용하여 보다 세밀하게 제어되는 주기 및 되풀이 설정을 구성할 수 있습니다. 노드 OS 자동 업그레이드 채널에 대한 자세한 내용은 AKS 클러스터 노드 이미지 자동 패치 및 업데이트를 참조하세요.
모든 클러스터 업그레이드 시나리오에는 aksManagedAutoUpgradeSchedule
을 사용하고 모든 노드 OS 보안 패치 시나리오에는 aksManagedNodeOSUpgradeSchedule
을 사용하는 것이 좋습니다.
default
옵션은 AKS 주간 릴리스에만 사용됩니다. az aks maintenanceconfiguration update
명령을 사용하여 default
구성을 aksManagedAutoUpgradeSchedule
또는 aksManagedNodeOSUpgradeSchedule
구성으로 전환할 수 있습니다.
유지 관리 기간 만들기
참고 항목
자동 업그레이드를 사용하는 경우 적절한 기능을 보장하기 위해 유지 관리 기간을 4시간 이상 사용합니다.
계획된 유지 관리 기간은 UTC(협정 세계시)에 지정됩니다.
default
유지 관리 기간에는 다음과 같은 레거시 속성이 있습니다(더 이상 권장되지 않음).
속성 | 설명 | 기본값 |
---|---|---|
timeInWeek |
default 구성에서 이 속성에는 유지 관리 기간을 정의하는 day 및 hourSlots 값이 포함됩니다. |
해당 없음 |
timeInWeek.day |
default 구성에서 유지 관리를 수행하는 요일입니다. |
해당 없음 |
timeInWeek.hourSlots |
default 구성에서 특정 날짜에 유지 관리를 수행할 시간 슬롯의 목록입니다. |
해당 없음 |
notAllowedTime |
유지 관리를 실행할 수 없는 날짜 범위이며, start 및 end 자식 속성에 따라 결정됩니다. 이 속성은 구성 파일을 사용하여 유지 관리 기간을 만드는 경우에만 적용됩니다. |
해당 없음 |
참고 항목
2023-05-01 API 버전부터는 default
구성에 아래 속성을 사용하세요.
2023-05-01 API 버전 이후의 aksManagedAutoUpgradeSchedule
또는 aksManagedNodeOSUpgradeSchedule
유지 관리 기간 및 default
구성에는 다음과 같은 속성이 있습니다.
속성 | 설명 | 기본값 |
---|---|---|
utcOffset |
클러스터 유지 관리를 위한 표준 시간대입니다. | +00:00 |
startDate |
유지 관리 기간이 적용되는 날짜입니다. | 만들 때의 현재 날짜 |
startTime |
utcOffset 에 의해 결정된 표준 시간대에 따라 유지 관리가 시작되는 시간입니다. |
해당 없음 |
schedule |
업그레이드 빈도입니다. Weekly , AbsoluteMonthly 및 RelativeMonthly , 세 가지 형식을 사용할 수 있습니다. |
해당 없음 |
intervalDays |
유지 관리 실행 간격(일). aksManagedNodeOSUpgradeSchedule 에만 적용할 수 있습니다. |
해당 없음 |
intervalWeeks |
유지 관리 실행에 대한 주 간격입니다. | 해당 없음 |
intervalMonths |
유지 관리 실행에 대한 월 간격입니다. | 해당 없음 |
dayOfWeek |
유지 관리를 시작할 지정된 요일입니다. | 해당 없음 |
durationHours |
유지 관리를 실행할 기간입니다. | 해당 없음 |
notAllowedDates |
유지 관리를 실행할 수 없는 날짜 범위이며, start 및 end 자식 속성에 따라 결정됩니다. 구성 파일을 사용하여 유지 관리 기간을 만드는 경우에만 적용됩니다. |
해당 없음 |
일정 유형
사용 가능한 4가지 일정 유형은 Daily
, Weekly
, AbsoluteMonthly
및 RelativeMonthly
입니다.
Weekly
, AbsoluteMonthly
및 RelativeMonthly
일정 유형은 aksManagedClusterAutoUpgradeSchedule
및 aksManagedNodeOSUpgradeSchedule
구성에만 적용됩니다. Daily
일정은 aksManagedNodeOSUpgradeSchedule
구성에만 적용됩니다.
각 일정 유형에 대해 표시된 모든 필드가 필요합니다.
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
, Fourth
및 Last
(을)를 포함합니다.
유지 관리 기간 구성 추가
az aks maintenanceconfiguration add
명령을 사용하여 AKS 클러스터에 유지 관리 기간 구성을 추가합니다.
첫 번째 예제에서는 매주 월요일 오전 1:00부터 오전 2:00까지 유지 관리를 예약하는 새 default
구성을 추가합니다. 두 번째 예제에서는 UTC+5:30
표준 시간대에서 오전 12시~오전 8시 사이에 매 3일 금요일마다 유지 관리를 실행하도록 예약하는 새 aksManagedAutoUpgradeSchedule
구성을 추가합니다.
# Add a new default configuration
az aks maintenanceconfiguration add --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 1
# Add a new aksManagedAutoUpgradeSchedule configuration
az aks maintenanceconfiguration add --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00
참고 항목
default
구성 유형을 사용하는 경우 --start-time
매개 변수를 생략하여 하루 중 언제든지 유지 관리를 허용할 수 있습니다.
기존 유지 관리 기간 업데이트
az aks maintenanceconfiguration update
명령을 사용하여 기존 유지 관리 구성을 업데이트합니다.
다음 예제에서는 default
구성을 업데이트하여 유지 관리가 매주 월요일 오전 2:00부터 오전 3:00까지 실행되도록 예약합니다.
az aks maintenanceconfiguration update --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 2
기존 클러스터의 모든 유지 관리 기간 나열
az aks maintenanceconfiguration list
명령을 사용하여 AKS 클러스터의 현재 유지 관리 구성 기간을 나열합니다.
az aks maintenanceconfiguration list --resource-group myResourceGroup --cluster-name myAKSCluster
기존 클러스터에서 특정 유지 관리 구성 기간 표시
--name
매개 변수와 함께 az aks maintenanceconfiguration show
명령을 사용하여 AKS 클러스터의 특정 유지 관리 구성 창을 봅니다.
az aks maintenanceconfiguration show --resource-group myResourceGroup --cluster-name myAKSCluster --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
}
기존 클러스터에서 유지 관리 구성 기간 삭제
az aks maintenanceconfiguration delete
명령을 사용하여 AKS 클러스터에서 유지 관리 구성 기간을 삭제합니다.
다음 예제에서는 autoUpgradeSchedule
유지 관리 구성을 삭제합니다.
az aks maintenanceconfiguration delete --resource-group myResourceGroup --cluster-name myAKSCluster --name autoUpgradeSchedule
FAQ
내 클러스터의 기존 유지 관리 구성을 어떻게 확인할 수 있나요?
az aks maintenanceconfiguration show
명령 사용notAllowedTime
또는notAllowedDates
기간에도 대응적이고 계획되지 않은 유지 관리가 발생할 수 있나요?예. AKS는 긴급하거나, 중요한 계획되지 않거나, 반응형 유지 관리 작업의 해당 기간을 중단할 권리를 보유합니다.
유지 관리 이벤트가 발생했는지 어떻게 알 수 있나요?
릴리스의 경우 클러스터의 지역을 확인하고 주간 릴리스 정보를 조회하여 유지 관리 일정과 일치하는지 확인합니다. 자동 업그레이드의 상태를 보려면 클러스터에서 활동 로그를 조회합니다. AKS 클러스터 업그레이드에 설명한 대로 특정 업그레이드 관련 이벤트를 조회할 수도 있습니다.
AKS는 업그레이드 관련 Azure Event Grid 이벤트도 내보냅니다. 자세한 내용은 Event Grid 원본의로서의 AKS를 참조하세요.
둘 이상의 유지 관리 구성을 동시에 사용할 수 있나요?
예,
default
,aksManagedAutoUpgradeSchedule
및aksManagedNodeOSUpgradeSchedule
세 가지 구성을 모두 동시에 실행할 수 있습니다. 창이 겹치면 AKS에서 실행 순서를 결정합니다.유지 관리 기간을 구성했지만 업그레이드가 수행되지 않았습니다. 이유는 무엇입니까?
AKS 자동 업그레이드에는 유지 관리 기간을 고려하기 위해 특정 시간(일반적으로 15분 이하)이 필요합니다. 유지 관리 구성의 생성 또는 업데이트와 예약된 시작 시간 사이의 최소 15분을 권장합니다.
또한 계획된 유지 관리 기간이 시작될 때 클러스터가 시작되었는지 확인합니다. 클러스터가 중지되면 컨트롤 플레인의 할당이 취소되고 작업을 수행할 수 없습니다.
내 에이전트 풀 중 하나가 유지 관리 기간 외부에서 업그레이드된 이유는 무엇인가요?
예를 들어 Pod 중단 예산으로 인해 에이전트 풀이 업그레이드되지 않은 경우 나중에 유지 관리 기간 외부에서 업그레이드될 수 있습니다. 이 시나리오를 "캐치업 업그레이드"라고 합니다. AKS 컨트롤 플레인과 다른 버전으로 에이전트 풀을 업그레이드하지 않도록 합니다.
에이전트 풀을 예기치 않게 업그레이드할 수 있는 또 다른 이유는 정의된 유지 관리 구성이 없거나 삭제된 경우입니다. 이 경우 자동 업그레이드 가 있지만 유지 관리 구성 이 없는 클러스터는 원치 않는 시간 범위일 수 있는 임의 시간(대체 일정)에 업그레이드됩니다.
유지 관리 구성에 대한 모범 사례가 있나요?
NodeImage
채널을 사용하는 경우 노드 OS 보안 업데이트 일정을 매주 주기로 설정하는 것이 좋습니다. 새 노드 이미지가 매주 제공되기 때문입니다.SecurityPatch
채널에서 일일 보안 업데이트를 수신하도록 옵트인할 수도 있습니다.Kubernetes N-2 지원 정책을 최신 상태를 유지하려면 자동 업그레이드 일정을 월별 주기로 설정합니다.
업그레이드 모범 사례 및 기타 고려 사항에 대한 자세한 내용은 AKS 패치 및 업그레이드 지침을 참조하세요.
동일한 유지 관리 구성을 사용하도록 단일 구독의 모든 클러스터를 구성할 수 있나요?
단일 구독의 여러 클러스터에 대해 동일한 유지 관리 구성을 사용하지 않는 것이 좋습니다. 이렇게 하면 ARM 제한 오류로 인해 클러스터 업그레이드가 실패할 수 있습니다. 대신 이러한 오류를 방지하려면 각 클러스터에 대한 유지 관리 기간을 엄청나게 하는 것이 좋습니다.
다음 단계
- AKS 클러스터 업그레이드를 시작하려면 AKS 클러스터에 대한 업그레이드 옵션을 참조하세요.
Azure Kubernetes Service