チュートリアル: Azure Arc で有効になっている AKS で Kubernetes をアップグレードする

適用対象: AKS on Azure Stack HCI 22H2、AKS on Windows Server

アプリケーションとクラスターのライフサイクルの管理の一環として、Azure Arc で有効になっている AKS を使用している場合は、利用可能な最新バージョンの Kubernetes にアップグレードすることをお勧めします。

このチュートリアル (パート 7/7) では、Kubernetes クラスターをアップグレードする方法について説明します。 学習内容は次のとおりです。

  • 現在の使用可能な Kubernetes バージョンを識別する
  • Kubernetes ノードの Kubernetes バージョンをアップグレードする
  • Kubernetes ノードの OS バージョンをアップグレードする
  • Kubernetes クラスターを最新バージョンにアップグレードする
  • 正常なアップグレードを検証する
  • Kubernetes クラスターを削除する

どのような更新オプションを使用できますか。

更新にはいくつかの種類があり、相互に独立して、またサポートされている特定の組み合わせによって発生することがあります。

  • AKS ホストを 最新バージョンに更新します。
  • AKS ワークロード クラスターを新しい Kubernetes バージョンに更新します。
  • AKS コンテナー ホストを新しいバージョンのオペレーティング システムに更新します。
  • オペレーティング システムと Kubernetes バージョンの組み合わせによる更新。

すべての更新は、ワークロードの可用性の停止を回避するために、ローリング フローで実行されます。 新しいビルドを持つ新しい Kubernetes ワーカー ノードがクラスターに取り込まれると、リソースは古いノードから 新しい ノードに移動されます。 これが正常に完了すると、古いノードは使用停止になり、クラスターから削除されます。

このチュートリアルの例では、ワークロード クラスター mycluster が現在 Kubernetes バージョン 1.18.8 にあり、30 日よりも前のバージョンのオペレーティング システムがあることを前提としています。

開始する前に

前のチュートリアルでは、アプリケーションをコンテナー イメージにパッケージ化し、それをAzure Container Registryにアップロードし、Kubernetes クラスターを作成する方法を学習しました。 次に、クラスターにアプリケーションをデプロイしました。 これらの手順を完了していない場合は、「チュートリアル 1 – コンテナー イメージの作成」 から始めてください。

ワークロード クラスターの Kubernetes バージョンを更新する

Kubernetes のバージョンを更新する前に、まず PowerShell モジュールと AKS ホストをアップグレードする必要があります。

重要

ワークロード クラスターを新しいバージョンの Kubernetes に更新することは、ターゲットの Kubernetes バージョンが現在のオペレーティング システムのバージョンでサポートされている場合にのみ機能します。 サポートされているオペレーティング システムと Kubernetes のバージョンの組み合わせを確認するには、Get-AksHciUpdates コマンドを使用します。

Kubernetes のバージョンを更新するには、次の手順を実行します。

  1. ワークロード クラスターの現在のバージョンを取得するには、次のコマンドを実行します。

    Get-AksHciCluster
    
    ProvisioningState     : provisioned
    KubernetesVersion     : v1.20.7
    NodePools             : linuxnodepool
    WindowsNodeCount      : 0
    LinuxNodeCount        : 0
    ControlPlaneNodeCount : 1
    Name                  : mycluster   
    
  2. 使用可能な Kubernetes バージョンの一覧を表示するには、次のコマンドを実行します。

    Get-AksHciKubernetesVersion
    
    OrchestratorType OrchestratorVersion OS      IsPreview
    ---------------- ------------------- --      ---------
    Kubernetes       v1.19.9             Linux       False
    Kubernetes       v1.19.11            Linux       False
    Kubernetes       v1.20.5             Linux       False
    Kubernetes       v1.20.7             Linux       False
    Kubernetes       v1.21.1             Linux       False
    Kubernetes       v1.19.9             Windows     False
    Kubernetes       v1.19.11            Windows     False
    Kubernetes       v1.20.5             Windows     False
    Kubernetes       v1.20.7             Windows     False
    Kubernetes       v1.21.1             Windows     False
    

    出力には、バージョンが使用可能な Kubernetes のバージョンとオペレーティング システムが表示されます。 使用可能なアップグレード バージョンが増えることを確認できます。 ただし、クラスターをアップグレードするときに、バージョンをスキップすることはできません。 たとえば、v1.18.xx --> v1.19.xx は可能ですが、v1.18.xx --> v1.20.x は可能ではありません。

  3. Kubernetes バージョンの更新を開始する

    Kubernetes のバージョンを更新するには、次のコマンドを実行します。

    Update-AksHciCluster -name mycluster -kubernetesVersion v1.21.1
    

    注意

    このコマンドでは、mycluster ワークロードクラスター内の既存のクラスター ノードのみが新しいバージョンの Kubernetes に更新されます。

オペレーティング システムのバージョンのみを更新する

重要

Kubernetes のバージョンを変更せずに、ワークロード クラスターを新しいバージョンのオペレーティング システムに更新できますが、これは、新しいオペレーティング システムのバージョンに別の Kubernetes バージョンが必要ない場合にのみ機能します。

OS バージョンを更新するには、次の例の手順を使用します。

  1. 使用可能なワークロード クラスターの更新プログラムを取得するには、次のコマンドを実行します。

    Get-AksHciClusterUpdates -name mycluster
    
    details                             kubernetesversion                operatingsystemversion
    -------                             -----------------                ----------------------
    This is a patch kubernetes upgrade. (i.e v1.1.X  to v1.1.Y) v1.19.9  @{mariner=April 2021; windows=April 2021}
    This is a minor kubernetes upgrade. (i.e v1.X.1 to v1.Y.1)  v1.20.5  @{mariner=April 2021; windows=April 2021}
    
  2. オペレーティング システムのバージョンの更新を開始するには、次のコマンドを実行します。

    Update-AksHciCluster -clusterName mycluster -kubernetesVersion v1.21.1 -operatingSystem
    

OS と Kubernetes の両方のバージョンを更新する

重要

ワークロード クラスターを新しいバージョンのオペレーティング システムおよび Kubernetes バージョンに更新することがサポートされています。

次の例では、使用可能な新しい Kubernetes バージョンがあり、現在のバージョン番号が v1.20.7 であることを前提としています。

  1. 使用可能なワークロード クラスターのすべての更新プログラムを取得するには、次のコマンドを実行します。

    Get-AksHciClusterUpdates -name mycluster
    
    details                             kubernetesversion                  operatingsystemversion
    -------                             -----------------                  ----------------------
    This is a patch kubernetes upgrade. (i.e v1.1.X  to v1.1.Y) v1.19.9    @{mariner=April 2021; windows=April 2021}
    This is a minor kubernetes upgrade. (i.e v1.X.1 to v1.Y.1)  v1.20.5    @{mariner=April 2021; windows=April 2021}
    
  2. ワークロード クラスターの更新を開始するには、次のコマンドを実行します。

    Update-AksHciCluster -name mycluster -kubernetesVersion v1.21.1
    

アップグレードを検証する

Get-AksHciCluster コマンドレットを次のように使用して、アップグレードが成功したことを確認します。

Get-AksHciCluster -name mycluster

次の出力例は、クラスターで KubernetesVersion v1.21.1 が実行されていることを示しています。

ProvisioningState     : provisioned
KubernetesVersion     : v1.21.1
NodePools             : linuxnodepool
WindowsNodeCount      : 0
LinuxNodeCount        : 0
ControlPlaneNodeCount : 1
Name                  : mycluster

クラスターを削除する

このチュートリアルはシリーズの最後の部分であるため、クラスターを削除することもできます。 Remove-AksHciCluster コマンドを使用して、リソース グループ、コンテナー サービス、およびすべての関連リソースを削除します。

Remove-AksHciCluster -name mycluster

次の手順

このチュートリアルでは、Arc によって有効になっている AKS 上の Kubernetes クラスター内の Kubernetes をアップグレードしました。次の方法を学習しました。

  • 現在の使用可能な Kubernetes バージョンを識別する
  • Kubernetes ノードの Kubernetes バージョンをアップグレードする
  • Kubernetes ノードの OS バージョンをアップグレードする
  • Kubernetes クラスターを最新バージョンにアップグレードする
  • 正常なアップグレードを検証する

Azure Arc で有効になっている AKS の詳細については、 AKS の概要クラスターとワークロードに関するページを参照してください。