計画メンテナンスを使用して、Azure Kubernetes Service クラスターのアップグレードをスケジュールおよび制御する

この記事では、計画メンテナンスを使用して、Azure Kubernetes Service (AKS)でクラスターとノード イメージのアップグレードをスケジュールおよび制御する方法について説明します。

AKS クラスターでは、定期的なメンテナンスが自動的に実行されます。 次の 2 種類のメンテナンス操作があります。

AKS の計画メンテナンスの機能を使用する場合、両方の種類のメンテナンスを任意の頻度で実行し、ワークロードへの影響を最小限に抑えることができます。

Note

計画メンテナンスを使用して自動アップグレードのタイミングをスケジュールできますが、計画メンテナンスを有効または無効にしても、自動アップグレードは有効または無効になりません。

開始する前に

  • この記事は、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 の期間中に実行される場合もあります。
  • メンテナンス操作はベストエフォートのみと見なされており、指定した期間内に行われる保証はありません。

計画メンテナンスのスケジュール構成の種類

計画メンテナンスには、スケジュール構成の種類が 3 つあります。

  • 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、Metrics Server など) のアップグレード スケジュールを制御する場合は、 default を使用します。

3 種類の構成はすべて共存できます。

メンテナンス期間を作成する

Note

自動アップグレードを使用する場合は、機能が確実に働くように、メンテナンス期間を 4 時間以上の期間に設定してください。

Note

2023-05-01 以降の API バージョンでは、次の表のプロパティを使用して構成 default

2023-05-01 API バージョン以降の aksManagedAutoUpgradeSchedule または aksManagedNodeOSUpgradeSchedule メンテナンス期間と default 構成には、以下のプロパティがあります。

名前 説明 既定値
utcOffset クラスター メンテナンスのタイム ゾーン。 +00:00
startDate メンテナンス期間が有効になる日付。 作成時刻の現在の日付
startTime utcOffset によって決定されたタイムゾーンに基づいてメンテナンスが開始される時刻。 適用なし
schedule アップグレードの頻度。 次の 3 種類から選択できます: WeeklyAbsoluteMonthlyRelativeMonthly 適用なし
intervalDays メンテナンス実行の間隔 (日数)。 aksManagedNodeOSUpgradeSchedule にのみ適用できます。 適用なし
intervalWeeks メンテナンス実行の間隔 (週単位)。 適用なし
intervalMonths メンテナンス実行の間隔 (月単位)。 適用なし
dayOfWeek メンテナンスを開始する指定曜日。 適用なし
durationHours メンテナンスを実行するための期間の長さ。 適用なし
notAllowedDates メンテナンスを実行できない日付の範囲。これは子プロパティ startend で決定されます。 構成ファイルを使用してメンテナンス期間を作成する場合にのみ適用されます。 適用なし

非推奨のプロパティ

Note

次の非推奨のプロパティを使用して default 構成を作成すると、前の表に示した新しいプロパティに自動的に移行されます。

[非推奨]defaultメンテナンス期間には、次のレガシ プロパティがあります。

名前 説明 既定値
timeInWeek default 構成内のこのプロパティには、メンテナンス期間を定義する値として、dayhourSlots が含まれています。 適用なし
timeInWeek.day default 構成でメンテナンスを実行する曜日。 適用なし
timeInWeek.hourSlots default 構成で特定の日にメンテナンスを実行する場合の、1 時間のタイム スロットのリスト。 適用なし
notAllowedTime メンテナンスを実行できない日付の範囲。これは子プロパティ startend で決定されます。 このプロパティは、構成ファイルを使用してメンテナンス期間を作成する場合にのみ適用されます。 適用なし

スケジュールの種類

DailyWeeklyAbsoluteMonthlyRelativeMonthlyの 4 種類のスケジュールがサポートされています。

次の表は、各メンテナンス構成オプションで使用できる種類を示しています。

[スケジュールの種類] default aksManagedClusterAutoUpgradeSchedule aksManagedNodeOSUpgradeSchedule
毎日 サポートされていない ❌ サポートされている ✅ (2025 年 6 月以降) ✅ をサポートするようになりました
Weekly ✅ をサポートするようになりました ✅ をサポートするようになりました ✅ をサポートするようになりました
アブソリュートマンスリー サポートされていない ❌ ✅ をサポートするようになりました ✅ をサポートするようになりました
RelativeMonthly サポートされていない ❌ ✅ をサポートするようになりました ✅ をサポートするようになりました

スケジュールの種類ごとに表示されるすべてのフィールドが必須です。

Daily のスケジュールは、"3 日ごと" のようになります。

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

Weekly のスケジュールは "2 週間ごとの金曜日" のようになります。

"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 の有効な値には、FirstSecondThirdFourthLast が含まれます。

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構成を追加します。 2 番目の例では、aksManagedAutoUpgradeSchedule タイムゾーンで毎月第 3 金曜日の午前 12 時から午前 8 時の間にメンテナンスを実行するようにスケジュールする、新しい 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、およびaksManagedAutoUpgradeSchedule構成のaksManagedNodeOSUpgradeScheduleを指定することで、一定の期間のメンテナンスを防ぐことができます。

  1. メンテナンス期間の設定を使用して JSON ファイルを作成します。

    次の例では、default.jsonタイム ゾーンで毎週火曜日の午前 1 時から午前 5 時まで実行するようにメンテナンスをスケジュールする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"
                }
            ]
        }
      }
    }
    

    次の例では、3 か月ごとの月初めに、autoUpgradeWindow.json タイムゾーンの午前 9 時から午後 1 時までの間にメンテナンスを実行するようにスケジュールする 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 構成を追加します。 2 番目の例では、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に追加します。

既定のメンテナンス構成

次の例では、default タイム ゾーンで毎週土曜日の午前 2 時から午前 6 時まで実行するようにメンテナンスをスケジュールする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 日から始まる、aksManagedAutoUpgradeScheduleタイム ゾーンで毎週日曜日の午前 1 時から午前 5 時まで実行するようにメンテナンスをスケジュールする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 日から毎週月曜日の午前 3 時から午前 7 時まで、aksManagedNodeOSUpgradeSchedule タイム ゾーンでメンテナンスを実行するようにスケジュールする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 時から午前 6 時まで実行するようにメンテナンスをスケジュールするように、 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 portal でスケジュールを編集するためのオプションを示すスクリーンショット。

  4. [メンテナンス スケジュールの編集] ウィンドウで、必要に応じてメンテナンス期間の設定を更新します。

  5. 保存 を選択します。

  1. 構成 JSON ファイルを新しいメンテナンス期間の設定で更新します。

    次の例では、default.json ファイルを更新して、毎週月曜日の午前 2 時から午前 6 時に実行するようにメンテナンスをスケジュールします。

    {
      "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 apply コマンドを使用して Terraform 構成を適用します。 このコマンドは、Azure サブスクリプションの main.tf ファイルで定義されているリソースを作成または変更します。

terraform apply

既存のクラスター内のすべてのメンテナンス期間を一覧表示する

az aks maintenanceconfiguration list コマンドを使用して、AKS クラスターの現在のメンテナンス構成期間を一覧表示します。

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

既存のクラスター内の特定のメンテナンス構成期間を表示する

az aks maintenanceconfiguration show パラメーターを指定して --name コマンドを使用して、AKS クラスター内の特定のメンテナンス構成期間を表示します。

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
}

既存のクラスターのメンテナンス構成期間を削除する

az aks maintenanceconfiguration delete コマンドを使用して、AKS クラスターのメンテナンス構成ウィンドウを削除します。

次の例では、autoUpgradeSchedule メンテナンス構成を削除します。

az aks maintenanceconfiguration delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name autoUpgradeSchedule
  1. Azure ポータルで、AKS クラスター リソースに移動します。

  2. サービス メニューの [設定] で、[クラスターの構成] を選択します。

  3. [アップグレード]>[自動アップグレード スケジューラ] で、[スケジュールの編集] を選びます。

    Azure portal でスケジュールを編集するためのオプションを示すスクリーンショット。

  4. [メンテナンス スケジュールの編集] ウィンドウで、[スケジュールの削除] を選びます。

    スクリーンショットは、Azure ポータルでメンテナンス ウィンドウを編集するためのペインを示しており、スケジュールを削除するためのボタンが含まれています。

az aks maintenanceconfiguration delete コマンドを使用して、AKS クラスターのメンテナンス構成ウィンドウを削除します。

次の例では、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 イベントも出力されます。 詳細については、「Event Grid ソースとしての AKS」を参照してください。

同時に複数のメンテナンス構成を使用できますか?

はい。3 つの構成 (defaultaksManagedAutoUpgradeScheduleaksManagedNodeOSUpgradeSchedule) をすべて同時に実行できます。 ウィンドウが重なる場合、AKS によって実行順序が決定されます。

メンテナンス期間を構成しましたが、アップグレードが行われませんでした。 なぜですか?

AKS の自動アップグレードでは、メンテナンス期間を考慮に入れるのに一定の時間 (通常は 15分以下) が必要です。 メンテナンス構成の作成または更新からスケジュールされた開始日時まで、少なくとも 15 分は空けることをお勧めします。

また、計画メンテナンス期間の開始時にクラスターが起動していることを確認してください。 クラスターが停止している場合、そのコントロール プレーンは割り当てが解除され、操作は実行できません。

エージェント プールの 1 つがメンテナンス期間外にアップグレードされたのはなぜですか?

AKS は、構成されたメンテナンス期間中にのみ、アップグレード関連の操作を開始します。 ウィンドウが閉じる前に操作が開始された場合、ウィンドウの終了時刻を超えても、完了まで実行を続けることができます。

ウィンドウが閉じると、AKS は新しいアップグレード操作を開始しません。 残りのアップグレード作業は、将来の対象期間まで延期されます。

例: メンテナンスウィンドウが 08:00 から 12:00 で、12:00 より前に開始されたクラスターまたはノードプールのアップグレードがまだ 12:15 に進行中の場合、AKS はその進行中の作業を完了させることを許可します。 ただし、AKS は 12:00 以降に新しいアップグレード作業を開始しません。

メンテナンス構成のベスト プラクティスはありますか?

チャネルを使用している場合、新しいノード イメージが毎週発行されるため、NodeImageのスケジュールを週単位に設定することをお勧めします。 また、SecurityPatch チャネルをオプトインして、セキュリティ更新プログラムを毎日受け取ることもできます。

自動アップグレード スケジュールを毎月の周期に設定して、Kubernetes N-2 サポート ポリシーを使用して最新の状態を維持できます。

アップグレードのベスト プラクティスとその他の考慮事項の詳細については、AKS のパッチとアップグレード ガイダンスのページを参照してください。

同じメンテナンス構成を使用するように 1 つのサブスクリプション内のすべてのクラスターを構成できますか?

1 つのサブスクリプション内の複数のクラスターに同じメンテナンス構成を使用することはお勧めしません。そのように構成すると ARM 調整エラーが発生して、クラスターのアップグレードが失敗する可能性があります。 これらのエラーを回避するために、各クラスターのメンテナンス期間をずらすことをお勧めします。

同じメンテナンス期間中にノード プールが 2 回アップグレードされたのはなぜですか?

メンテナンス期間中にノード イメージの新しいバージョンが使用可能になった場合、AKS は 2 回目のアップグレードを実行して、ノード プールが最新バージョンを実行していることを確認します。 この動作は正常であり、問題を示すわけではありません。

基になる VMSS のプラットフォーム メンテナンスに AKS 計画メンテナンス期間をAzure使用できますか?

いいえ。 AKS 計画メンテナンス期間は、Azure Kubernetes Serviceで AKS クラスターとノード イメージのアップグレードをスケジュールおよび制御することを目的としています。 AKS ノード プールをホストしている基になる VMSS のプラットフォーム レベルのメンテナンスAzureには適用されません。 これらは独立して動作し、それらの間に直接的な依存関係はありません。

Azureは、仮想マシンの基になるホスト インフラストラクチャの信頼性、パフォーマンス、およびセキュリティを強化するために、プラットフォームの更新を定期的に実行します。 これらの更新プログラムには、ソフトウェア コンポーネントの修正プログラムの適用、ネットワーク インフラストラクチャのアップグレード、ハードウェアの使用停止などがあります。 プラットフォームのメンテナンスは、再起動しないか、再起動が必要な場合があります。 再起動が必要なメンテナンス イベントの場合、お客様はメンテナンス通知を通じて事前に通知されます。これには、通常最大 4 週間続く self‑service phase が含まれます。

AKS クラスターのアップグレードを開始するには「AKS クラスターのアップグレード オプション」を参照してください。