Azure Kubernetes Fleet Manager を使用して、複数のクラスター間で Kubernetes とノード イメージのアップグレードを自動化する

適用対象: ✔️ Fleet Manager ✔️ ハブクラスターを備えたFleet Manager

クラスターをタイムリーかつ安全な方法で更新することは、プラットフォーム管理者の重要な懸念事項です。 Azure Kubernetes Fleet Manager の Update Runs と Strategies を採用すると、自動アップグレード プロファイルを使用して、新しい Kubernetes またはノード イメージのバージョンがリリースされた際に、更新実行の実施を自動化できます。

この記事では、自動アップグレード プロファイルを使用して、Azure Kubernetes Service (AKS)が新しい Kubernetes またはノード イメージ バージョンをリリースしたときに、更新プログラムの実行を自動的に作成して実行する方法について説明します。

注釈

  • 計画メンテナンス期間: 自動アップグレードによってトリガーされる更新プログラムの実行では、AKS クラスター レベルで設定 した計画メンテナンス期間 に従います。 詳細については、複数のメンバー クラスターにまたがる計画メンテナンスに関するページを参照してください。
  • AKS プラットフォームによって開始されるアップグレード: プラットフォーム サポートの猶予期間後もメンバー クラスターがサポートされていない Kubernetes バージョンのままである場合、AKS はフリートの自動アップグレード プロファイル、更新戦略、またはメンテナンス時間帯外に直接アップグレードできます。 フリート オーケストレーションでメンバー クラスターを維持する方法については、AKS プラットフォーム主導アップグレード に関するページを参照してください。

開始する前に

  • 自動アップグレード プロファイルの概念の概要を確認します。このガイドで参照されている構成について説明します。
  • 1 つ以上のメンバー クラスターを使用して Fleet Manager を設定します。 お持ちでない場合は、 クイックスタート に従って Fleet Manager を作成し、AKS クラスターをメンバーとして参加してください。
  • 更新戦略を構成します。 更新プログラムの実行方法に関する記事の手順を使用します。 Azure CLI を使用する場合は、自動アップグレード プロファイルで使用する更新戦略リソース識別子が必要です。
  • Azure CLI コマンドで使用する次の環境変数を設定します。

    export GROUP=<resource-group>
    export FLEET=<fleet-name>
    export AUTOUPGRADEPROFILE=<upgrade-profile-name>
    # Optional
    export STRATEGYID=<strategy-id>
    export CLUSTER=<aks-cluster-name>
    
  • 最新のAzure CLIバージョンをインストールします。 インストールとアップグレードについては、「Azure CLI のインストール」を参照してください。

  • 最新のfleet Azure CLI拡張機能をインストールします。 az extension add コマンドを使用して拡張機能をインストールします。

    az extension add --name fleet
    

    az extension update コマンドを使用して、拡張機能の最新バージョンに更新します。

    az extension update --name fleet
    
  • Terraform をインストールして構成します。

  • 最新のAzure CLIバージョンをインストールします。 インストールとアップグレードについては、「Azure CLI のインストール」を参照してください。 Azure CLIを使用して、Terraform によって作成される自動アップグレード プロファイルを確認します。

  • 最新のfleet Azure CLI拡張機能をインストールします。 az extension add コマンドを使用して拡張機能をインストールします。

    az extension add --name fleet
    

    az extension update コマンドを使用して、拡張機能の最新バージョンに更新します。

    az extension update --name fleet
    
  • この記事で使用する Terraform サンプルでは、独自のリソース グループと Azure Kubernetes Fleet Manager を作成しますが、AKS クラスターを Fleet メンバーとして参加させることはありません。 実際の更新実行に対して結果の自動アップグレード プロファイルを実行するには、サンプルを適用した後、既存の AKS クラスターを Fleet のメンバーとして参加します。 詳細については、クイックスタートをご覧ください。

注釈

ノード プール スナップショットから作成されたエージェント プールを含むクラスターは、選択した自動アップグレード チャネルとノード イメージ オプションに基づいて、次のように影響を受けます。

  • ノード イメージ チャネル: ノード イメージは、Fleet Manager によって決定されたバージョンにアップグレードされます。 スナップショット (creationData) への参照がエージェント プールから削除されます。
  • 安定版、迅速版、またはターゲット版の Kubernetes マイナー バージョン チャネル。ノード イメージは次のいずれかに設定されます。
    • 一貫性のあるイメージ: ノード イメージは、Fleet Manager によって決定されるバージョンにアップグレードされます。 スナップショット (creationData) への参照がエージェント プールから削除されます。
    • 最新のイメージ: エージェント プールはスナップショット (creationData) への参照を保持し、ノード イメージは変更されません。

詳細については、 ノード イメージのアップグレードとスナップショットについてを参照してください。

自動アップグレード プロファイルを作成する

az fleet autoupgradeprofile create コマンドを使用して、自動アップグレード プロファイルを作成します。

--disabled コマンドでaz fleet autoupgradeprofile create フラグを含めることで、自動アップグレード プロファイルを無効にすることができます。 無効になっている自動アップグレード プロファイルを再度有効にするには、--disabled フラグを指定せずに az fleet autoupgradeprofile create コマンドを再実行します。

注釈

自動アップグレード プロファイルを無効にしても、進行中の更新プログラムの実行には影響しません。 ただし、プロファイルを再び有効化するまで、プロセスは新しい更新実行の生成を停止します。

安定チャネルの Kubernetes 更新

マイナー バージョン N-1 でサポートされている最新の Kubernetes パッチ リリースに更新します。 N は、サポートされている最新のマイナー バージョンです。

メンバー クラスターを 1 つずつ更新する

az fleet autoupgradeprofile create コマンドを使用して、メンバー クラスターを順番に更新します。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel Stable

既存の更新戦略を使用してメンバー クラスターを更新する

既存の更新戦略を使用してメンバー クラスターを更新します。 az fleet autoupgradeprofile create コマンドは、--update-strategy-id パラメーターを既存の更新戦略の ID に設定して使用します。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable

一貫性のあるノード イメージを使用して既存の更新戦略を使用してメンバー クラスターを更新する

既存の更新戦略を使用してメンバー クラスターを更新し、すべてのAzureリージョンで同じノード イメージ バージョンが使用されていることを確認します。 --node-image-selection パラメーターを Consistent に設定して、az fleet autoupgradeprofile create コマンドを使用します。 すべてのメンバー クラスターは、同じノード イメージ バージョンを実行します。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection Consistent

最新のノード イメージで既存の更新戦略を使用してメンバー クラスターを更新する

既存の更新戦略を使用してメンバー クラスターを更新し、Azureリージョンごとに使用可能な最新のノード イメージ バージョンが使用されていることを確認します。 --node-image-selection パラメーターを Latest に設定して、az fleet autoupgradeprofile create コマンドを使用します。 メンバー クラスターでは、複数のノード イメージ バージョンを実行できます。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel Stable \
  --node-image-selection Latest

ノード イメージ チャネルの更新

セキュリティ修正とバグ修正を含む、新しく修正プログラムが適用されたマシン イメージでノードを更新します。

ノード イメージを 1 つずつ更新する

az fleet autoupgradeprofile create コマンドを使用して、メンバー クラスターのノード イメージを順番に更新します。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel NodeImage

既存の更新戦略を使用してノード イメージを更新する

既存の更新戦略を使用して、メンバー クラスターのノード イメージを更新します。 az fleet autoupgradeprofile create コマンドを使用し、--update-strategy-id パラメーターを既存の更新戦略の ID に設定します。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel NodeImage 

ターゲット Kubernetes のマイナー バージョンの更新

--target-kubernetes-version パラメーターを使用して、定義済みのターゲット Kubernetes マイナー バージョンに更新します。 {メジャー バージョン}でバージョンを指定します。{マイナー バージョン} 形式 (例: 1.33)。 Fleet Manager の自動アップグレードでは、修正プログラムが利用可能になると、指定されたターゲット バージョンの最新のパッチ リリースにメンバー クラスターが自動的にアップグレードされます。

Important

ターゲット Kubernetes マイナー バージョン チャネルを使用する場合は、次の情報に注意してください。

  • --target-kubernetes-version パラメーターを指定してください。 このパラメーターは、他の自動アップグレード チャネル (Rapid、Stable、Node image、Security patch) ではサポートされていません。
  • 長期サポート (LTS) フラグ ( --long-term-support) は、 ターゲット Kubernetes マイナー バージョン チャネルを使用している場合にのみ使用できます。 他のチャネルの場合は、このフラグを False に設定します。
  • フラグを持つ自動アップグレード プロファイルには、LTS Kubernetes バージョン (--long-term-support) のみを選択できます。 このシナリオでフリートの自動アップグレードが機能し続ける場合は、生成された更新実行のクラスターがすべて LTS で有効になっていることを確認します。 LTS 以外のクラスターでは、最初の LTS 以外のクラスターが検出されると、更新プログラムの実行が失敗します。
  • ターゲットの Kubernetes バージョンを、AKS がリリースしていない将来の Kubernetes バージョンに設定することはできません。

メンバー クラスターを特定の Kubernetes マイナー バージョンに更新する

--target-kubernetes-version パラメーターを目的のバージョンに設定して、az fleet autoupgradeprofile create コマンドを使用して、メンバー クラスターを特定の Kubernetes マイナー バージョンに更新します。 次の例では、メンバー クラスターを Kubernetes バージョン 1.33 に更新します。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.33"

LTS が有効になっているメンバー クラスターを特定の Kubernetes マイナー バージョンに更新する

--target-kubernetes-version パラメーターを目的のバージョンに設定し、--long-term-support フラグを有効にして、az fleet autoupgradeprofile create コマンドを使用して、LTS が有効になっているメンバー クラスターを特定の Kubernetes マイナー バージョンに更新します。 次の例では、LTS を有効にしてメンバー クラスターを Kubernetes バージョン 1.29 に更新します。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel TargetKubernetesVersion \
  --target-kubernetes-version "1.29" \
  --long-term-support

セキュリティパッチ チャネルの更新

セキュリティ修正プログラムを使用して Linux ノードを更新します。 可能な場合は、ライブ 修正プログラムを使用して更新プログラムを適用します。 それ以外の場合は、セキュリティ修正プログラムを含む新しく修正プログラムが適用されたマシン イメージをデプロイします。

セキュリティ パッチを使用してノードを 1 つずつ更新する

az fleet autoupgradeprofile create コマンドを使用して、メンバー クラスターのノード イメージを順番に更新します。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --channel SecurityPatch

既存の更新戦略を使用して、セキュリティ パッチを使用してノードを更新する

既存の更新戦略を使用して、メンバー クラスターのノード イメージを更新します。 az fleet autoupgradeprofile create コマンドを使用し、--update-strategy-id パラメーターを既存の更新戦略の ID に設定します。

az fleet autoupgradeprofile create \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --update-strategy-id $STRATEGYID \
  --channel SecurityPatch 

自動アップグレード プロファイルを表示する

自動アップグレードプロファイルは、フリートレベルのリソースです。 これらは、個々の AKS クラスターに直接接続されません。 AKS クラスターを更新できるプロファイルを決定するには、まず Fleet メンバーを一覧表示し、クラスターが Fleet のメンバーであることを確認します。

az fleet member list \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --query "[].{memberName:name,clusterResourceId:clusterResourceId}" \
  --output table

az fleet autoupgradeprofile list コマンドを使用して、Fleet のすべての自動アップグレード プロファイルを一覧表示します。

az fleet autoupgradeprofile list \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --output table

az fleet autoupgradeprofile show コマンドを使用して、Fleet の特定の自動アップグレードプロファイルを表示します。 出力内のチャネル、状態、および updateStrategyId を確認します。

az fleet autoupgradeprofile show \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

updateStrategyIdが空の場合、プロファイルは 1 つずつ更新シーケンスを使用し、フリートのメンバー クラスターを順番に含めます。 updateStrategyIdにリソース ID が含まれている場合は、生成された更新プログラムの実行に含まれる Fleet メンバーを決定するステージ、グループ、またはメンバー セレクターを確認するための参照先の戦略を示します。

PROFILE_STRATEGY_ID=$(az fleet autoupgradeprofile show \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE \
  --query updateStrategyId \
  --output tsv)

if [[ -n "$PROFILE_STRATEGY_ID" ]]; then
  az fleet updatestrategy show \
    --resource-group $GROUP \
    --fleet-name $FLEET \
    --name "${PROFILE_STRATEGY_ID##*/}"
fi

自動アップグレード プロファイルを削除する

az fleet autoupgradeprofile delete コマンドを使用して、既存の自動アップグレード プロファイルを削除します。 このコマンドを実行すると、削除の確認を求められます。 確認をバイパスしてプロファイルを直ちに削除するには、コマンドに --yes を含めます。

az fleet autoupgradeprofile delete \
  --resource-group $GROUP \
  --fleet-name $FLEET \
  --name $AUTOUPGRADEPROFILE

注釈

自動アップグレード プロファイルを削除しても、進行中の更新プログラムの実行には影響しません。

自動アップグレード プロファイルを作成する

このセクションの Terraform サンプルでは、リソース グループ、Azure Kubernetes Fleet Manager (ハブ クラスターなし)、Fleet 自動アップグレード プロファイルを作成します。 既定では、プロファイルでは、Latest ノード イメージが選択されたStable チャネルが使用され、有効になっています。 前のセクションで説明したチャネルとオプションに一致するように、 auto_upgrade_channel、 node_image_selection、 auto_upgrade_disabled、 target_kubernetes_version、および long_term_support 変数を設定します。 サンプルでは更新戦略が設定されていないため、結果のプロファイルでは常に 1 つずつ 更新シーケンスが使用されます。

Terraform コードを確認する

  1. サンプルの Terraform コードをテストするディレクトリを作成し、それを現在のディレクトリにします。

  2. providers.tf という名前のファイルを作成し、次のコードを挿入します。

    terraform {
      required_version = ">= 1.9.0"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~> 4.0"
        }
        azapi = {
          source  = "Azure/azapi"
          version = "~> 2.0"
        }
        random = {
          source  = "hashicorp/random"
          version = "~> 3.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    provider "azapi" {
    }
    
  3. variables.tf という名前のファイルを作成し、次のコードを挿入します。

    variable "location" {
      type        = string
      description = "Azure region where the resource group and Fleet Manager are created."
      default     = "eastus"
    }
    
    variable "resource_group_name" {
      type        = string
      description = "Name of the resource group. If null, a unique name is generated."
      default     = null
    }
    
    variable "fleet_name" {
      type        = string
      description = "Name of the Azure Kubernetes Fleet Manager. If null, a unique name is generated."
      default     = null
    }
    
    variable "auto_upgrade_profile_name" {
      type        = string
      description = "Name of the Fleet auto-upgrade profile. If null, a unique name is generated."
      default     = null
    }
    
    variable "auto_upgrade_channel" {
      type        = string
      description = "Auto-upgrade channel used by the profile."
      default     = "Stable"
    
      validation {
        condition     = contains(["Rapid", "Stable", "NodeImage", "TargetKubernetesVersion"], var.auto_upgrade_channel)
        error_message = "Auto-upgrade channel must be one of: Rapid, Stable, NodeImage, TargetKubernetesVersion."
      }
    }
    
    variable "target_kubernetes_version" {
      type        = string
      description = "Target Kubernetes version in major.minor format, for example 1.31. Required when auto_upgrade_channel is TargetKubernetesVersion; otherwise leave null."
      default     = null
    
      validation {
        condition     = var.target_kubernetes_version == null || can(regex("^[0-9]+\\.[0-9]+$", var.target_kubernetes_version))
        error_message = "Target Kubernetes version must be in major.minor format, for example 1.31."
      }
    
      validation {
        condition     = var.auto_upgrade_channel != "TargetKubernetesVersion" || var.target_kubernetes_version != null
        error_message = "Target Kubernetes version is required when auto_upgrade_channel is TargetKubernetesVersion."
      }
    }
    
    variable "node_image_selection" {
      type        = string
      description = "Node image selection type. Latest uses the newest image per region; Consistent waits for the same image version across all member regions."
      default     = "Latest"
    
      validation {
        condition     = contains(["Latest", "Consistent"], var.node_image_selection)
        error_message = "Node image selection must be either Latest or Consistent."
      }
    }
    
    variable "auto_upgrade_disabled" {
      type        = bool
      description = "Set to true to stop the profile from creating new automatic update runs. In-progress update runs aren't cancelled."
      default     = false
    }
    
    variable "long_term_support" {
      type        = bool
      description = "Whether the profile targets long-term support Kubernetes versions. Only supported on the TargetKubernetesVersion channel."
      default     = false
    
      validation {
        condition     = !var.long_term_support || var.auto_upgrade_channel == "TargetKubernetesVersion"
        error_message = "Long-term support can only be enabled when auto_upgrade_channel is TargetKubernetesVersion."
      }
    }
    
    variable "tags" {
      type        = map(string)
      description = "Tags to apply to created resources."
      default = {
        environment = "demo"
        managed_by  = "terraform"
      }
    }
    
  4. main.tf という名前のファイルを作成し、次のコードを挿入します。

    resource "random_string" "suffix" {
      length  = 5
      lower   = true
      numeric = true
      special = false
      upper   = false
    }
    
    locals {
      resource_group_name       = coalesce(var.resource_group_name, "rg-fleet-update-${random_string.suffix.result}")
      fleet_name                = coalesce(var.fleet_name, "fleet-update-${random_string.suffix.result}")
      auto_upgrade_profile_name = coalesce(var.auto_upgrade_profile_name, "stable-profile-${random_string.suffix.result}")
    
      # targetKubernetesVersion is only valid on the TargetKubernetesVersion channel.
      auto_upgrade_properties = merge(
        {
          channel         = var.auto_upgrade_channel
          disabled        = var.auto_upgrade_disabled
          longTermSupport = var.long_term_support
          nodeImageSelection = {
            type = var.node_image_selection
          }
        },
        var.auto_upgrade_channel == "TargetKubernetesVersion" ? {
          targetKubernetesVersion = var.target_kubernetes_version
        } : {}
      )
    }
    
    resource "azurerm_resource_group" "example" {
      name     = local.resource_group_name
      location = var.location
      tags     = var.tags
    }
    
    resource "azurerm_kubernetes_fleet_manager" "example" {
      name                = local.fleet_name
      location            = azurerm_resource_group.example.location
      resource_group_name = azurerm_resource_group.example.name
      tags                = var.tags
    }
    
    # autoUpgradeProfiles is only available on the preview API version, which requires schema validation to be disabled.
    resource "azapi_resource" "auto_upgrade_profile" {
      type                      = "Microsoft.ContainerService/fleets/autoUpgradeProfiles@2025-04-01-preview"
      name                      = local.auto_upgrade_profile_name
      parent_id                 = azurerm_kubernetes_fleet_manager.example.id
      schema_validation_enabled = false
    
      body = {
        properties = local.auto_upgrade_properties
      }
    }
    
  5. outputs.tf という名前のファイルを作成し、次のコードを挿入します。

    output "resource_group_name" {
      description = "Name of the created resource group."
      value       = azurerm_resource_group.example.name
    }
    
    output "fleet_manager_name" {
      description = "Name of the Azure Kubernetes Fleet Manager."
      value       = azurerm_kubernetes_fleet_manager.example.name
    }
    
    output "fleet_manager_id" {
      description = "Resource ID of the Azure Kubernetes Fleet Manager."
      value       = azurerm_kubernetes_fleet_manager.example.id
    }
    
    output "auto_upgrade_profile_name" {
      description = "Name of the Fleet auto-upgrade profile."
      value       = azapi_resource.auto_upgrade_profile.name
    }
    
    output "auto_upgrade_profile_id" {
      description = "Resource ID of the Fleet auto-upgrade profile."
      value       = azapi_resource.auto_upgrade_profile.id
    }
    
  6. サンプルの terraform.tfvars.example ファイルを同じディレクトリ内の terraform.tfvars にコピーし、自動アップグレード チャネル、ノード イメージの選択、およびその他のオプションに合わせて値を編集します。

    cp terraform.tfvars.example terraform.tfvars
    

構成を初期化、検証、適用する

terraform init を実行して、Terraform のデプロイを初期化します。 このコマンドは、Azure リソースの管理に必要なAzure プロバイダーをダウンロードします。

terraform init

terraform fmt を実行して、構成ファイルを一貫して書式設定します。

terraform fmt

terraform 検証を実行して、構成ファイルが構文的に有効であることを確認します。

terraform validate

実行計画を作成するために terraform plan を実行してください。

terraform plan -out main.tfplan

クラウドインフラストラクチャに対して実行計画を適用するには、terraform apply を実行してください。

terraform apply main.tfplan

自動アップグレード プロファイルを表示する

Terraform の出力から、リソース グループ、Fleet Manager、および自動アップグレード プロファイル名を取得します。

resource_group_name=$(terraform output -raw resource_group_name)
fleet_manager_name=$(terraform output -raw fleet_manager_name)
auto_upgrade_profile_name=$(terraform output -raw auto_upgrade_profile_name)

az fleet autoupgradeprofile show コマンドを使用して、自動アップグレード プロファイルのチャネル、状態、および更新シーケンスを表示します。

az fleet autoupgradeprofile show \
  --resource-group $resource_group_name \
  --fleet-name $fleet_manager_name \
  --name $auto_upgrade_profile_name

サンプルでは更新戦略が設定されていないため、出力内の updateStrategyId は空で、プロファイルは 1 つずつ 更新シーケンスを使用してフリートのメンバー クラスターを順番に更新します。 次のコマンドを使用して、現在の Fleet メンバーを一覧表示します。

az fleet member list \
  --resource-group $resource_group_name \
  --fleet-name $fleet_manager_name \
  --output table

自動アップグレード プロファイルを削除する

-destroy フラグを指定して terraform プランを実行し、破棄実行プランを作成します。

terraform plan -destroy -out main.destroy.tfplan

terraform apply を実行して破棄計画を適用します。

terraform apply main.destroy.tfplan

Warning

このコマンドは、自動アップグレード プロファイル、Azure Kubernetes Fleet Manager、およびこのサンプルによって作成されたリソース グループを、プロファイルだけでなく削除します。 AKS クラスターを Fleet のメンバーとして参加させた場合は、まず Fleet メンバーから削除してください。 このコマンドを実行する前に、リソース グループに保持する他のリソースが含まれていないことを確認します。

自動アップグレード プロファイルを作成する

マイナー バージョン N-1 でサポートされている最新の Kubernetes パッチ リリースに更新します。 N は、サポートされている最新のマイナー バージョンです。

  1. Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。

  2. サービス メニューの [設定] で、[マルチクラスター更新]>[自動アップグレード プロファイル]>[+ 作成] を選択します。

  3. [ 自動アップグレード プロファイルの作成] で、次のオプションを構成します。

    • [ 自動アップグレードの詳細] で、次の手順を実行します。
      • 自動アップグレード プロファイル名: 自動アップグレード プロファイルの名前を入力します。
      • 状態: [有効] または [無効] を選択します。 無効になっている自動アップグレード プロファイルは、新しいバージョンがリリースされたときにトリガーされません。
      • 更新シーケンス: [ステージ] または [1 つずつ] を選択します。
    • [自動アップグレード トリガー]:
      • チャネル: [安定] を選択します。
      • ノード イメージ: 最新のイメージ または 一貫性のあるイメージを選択します。
    • [ 戦略の詳細] で、次の手順を実行します。
      • ステージを使用して更新シーケンスを選択した場合は、既存の戦略を選択するか、新しい戦略を作成します。
  4. [作成] を選択して、自動アップグレード プロファイルを作成します。

    Stable チャネルを使用して自動アップグレード プロファイルを作成するための Azure Kubernetes Fleet Manager Azure portal ペインのスクリーンショット。

自動アップグレード プロファイルを表示する

自動アップグレードプロファイルは、フリートレベルのリソースです。 これらは、個々の AKS クラスターに直接接続されません。 AKS クラスターを更新できるプロファイルを判断するには、まずクラスターが Fleet のメンバーであることを確認し、次に Fleet のプロファイルとその更新シーケンスを確認します。

  1. Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。
  2. サービス メニューから [Fleet メンバー] を選択し、AKS クラスターがメンバー一覧に表示されることを確認します。
  3. 設定 で、マルチクラスター更新>自動アップグレード プロファイル を選択します。
  4. 自動アップグレード プロファイルを選択して、そのチャネル、状態、および更新シーケンスを表示します。
  5. 更新シーケンスが 1 つずつの場合、プロファイルにはフリートのメンバー クラスターが順番に含まれます。 更新シーケンスで ステージが使用されている場合は、関連する戦略のステージ、グループ、およびメンバー セレクターを確認して、生成された更新実行に含まれる Fleet メンバーを決定します。

自動アップグレード プロファイルを削除する

  1. Azure portal で、Azure Kubernetes Fleet Manager リソースに移動します。
  2. サービス メニューの [設定] から、[Multicluster update]>と[Auto-upgrade profiles] を選択します。
  3. 削除するプロファイルを選択し、[ 削除>Yes ] を選択して確定します。

注釈

自動アップグレード プロファイルを削除しても、進行中の更新プログラムの実行には影響しません。

自動アップグレードの検証

自動アップグレードは、新しい Kubernetes またはノード イメージが使用可能な場合にのみ発生します。 自動アップグレードがトリガーされると、リンクされた更新プログラムの実行が作成されるため、[更新プログラムの実行] を管理して、自動アップグレードの結果を確認できます。

既存のバージョンをベースラインとして確認することもできます。

--query パラメーターを指定して az aks show コマンドを使用して、メンバー クラスターの現在の Kubernetes バージョンを取得し、currentKubernetesVersion プロパティの出力をフィルター処理します。

az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query currentKubernetesVersion

メンバー クラスターの現在のノード イメージ バージョンを取得するには、 az aks show コマンドと --query パラメーターを使用して、 nodeImageVersion プロパティの出力をフィルター処理します。

az aks show \
  --resource-group $GROUP \
  --name $CLUSTER \
  --query "agentPoolProfiles[].{name:name,mode:mode, nodeImageVersion:nodeImageVersion, osSku:osSku, osType:osType}"

更新プログラムの実行が完了したら、これらのコマンドを再実行し、展開されている更新されたバージョンを表示できます。

自動アップグレードプロファイルから更新実行を生成する

自動アップグレード プロファイルを作成した後、新しい Kubernetes またはノード イメージ バージョンが自動アップグレードをトリガーして更新プログラムの実行を作成して実行するまでに、しばらく時間がかかる場合があります。 自動アップグレードでは、 az fleet autoupgradeprofile generate-update-run コマンドを使用して、いつでも新しい更新プログラムの実行を生成できます。 結果の更新プログラムの実行は、現在 AKS で公開されている Kubernetes またはノード イメージのバージョンに基づいています。

自動アップグレード プロファイルからオンデマンド更新プログラムの実行を作成する方法の詳細については、「自動アップグレード プロファイル から更新プログラムの実行を生成する」を参照してください。