> 適用対象: AKS on Azure Local リリース 2509 以降。
仮想ハード ディスク (VHD) は、AKS クラスター内の Kubernetes ノードの基本オペレーティング システム イメージとして機能します。 Azure Local バージョン 2509 以降では、Azure ローカル インスタンスに既定でダウンロードされるのは Azure Linux VHD のみです。 Azure Linux VHD は、AKS Arc クラスター上に既定の Linux ノード プールを作成するために使用されます。 Windows ベースのワークロードの場合、AKS Arc では、対応する Windows ノード プールの作成に使用できる Windows Server 2019 および Windows Server 2022 イメージがサポートされます。ただし、これらの VHD は既定では使用できません。Windows ベースのノード プールを作成する前にダウンロードする必要があります。 Windows ノード プール機能を既定で無効にすると、Windows ベースの OS イメージが不必要にダウンロードされず、帯域幅と記憶域スペースを節約できます。
Important
Azure Local リリース 2509 以降で Windows ノード プール機能が既定で無効になっている場合、Windows ノード プールがあり、 aksarc upgrade、 aksarc update、 aksarc nodepool update、 aksarc nodepool addなどのコマンドを発行しようとすると、"Windows ノード プール機能が無効になっています" というエラー メッセージで失敗します。その後、これらの操作を続行する前に、この機能を有効にすることを明示的に求められます。
[前提条件]
Windows ノード プールの作成を開始する前に、次の前提条件が満たされていることを確認してください。
- Azure Local デプロイ済み。 この記事は、Azure Local リリース 2509 以降をデプロイした場合にのみ適用されます。 Windows VHD は、リリース 2509 以降では既定で無効になっています。 以前のリリースの場合は、 Windows ノード プールの作成に進むことができます。
-
Azure ローカル構成を更新するための Azure RBAC アクセス許可。 次のロールを持っていることを確認してください。 詳細については、 デプロイに必要なアクセス許可を参照してください。
- Azure ローカル管理者
- Reader
- カスタム場所。 カスタムの場所の名前。 カスタムの場所は、Azure ローカル デプロイ中に構成されます。 Azure portal を使用している場合は、Azure ローカル システム リソースの [概要 ] ページに移動します。 [ 要点 ] セクションに、クラスターのカスタムの場所名が表示されます。
- Azure リソース グループ。 Azure Local がデプロイされている Azure リソース グループ。
- Azure ローカル インスタンス上の少なくとも 1 つのノード (直接またはリモート PowerShell 経由) へのアクセス。
AKS Arc クラスターで Windows ノード プール機能を有効にする
AKS Arc クラスターで Windows ノード プール機能を有効にするには、 Support.AksArc PowerShell モジュールを使用します。 このモジュールでは、AKS Arc 環境での診断と修復のためのツールを提供します。 そのコマンドを実行すると、Windows ノード プール機能をアクティブ化し、必要な Windows VHD のダウンロードを開始できるため、Windows ベースのノード プールを作成できます。
手順 1: Azure ローカル ノードに接続する
クライアント コンピューターで次の手順に従って、いずれかの Azure ローカル ノードに接続します。
システムへの接続に使用しているクライアントで、管理者として PowerShell を実行します。
Azure ローカル インスタンス上のマシンへのリモート PowerShell セッションを開きます。 次のコマンドを実行し、メッセージが表示されたらコンピューターの資格情報を指定します。
$cred = Get-Credential Enter-PSSession -ComputerName "<Computer IP>" -Credential $cred注
デプロイ ユーザー アカウントの資格情報を使用してサインインします。 これは、 Active Directory を準備するときに作成し、Azure Local のデプロイに使用したアカウントです。
このセクションを展開して、出力例を確認します。
出力例を次に示します。
cmdlet Get-Credential at command pipeline position 1 Supply values for the following parameters: CredentialEnter-PSSession -ComputerName "100.100.100.10" -Credential $cred[100.100.100.10]: PS C:\Users\Administrator\Documents>
手順 2: クラスターで Windows ノード プール機能を有効にする
リモート PowerShell セッションで、Azure ローカル インスタンスが存在するサブスクリプションに Azure にサインインします。
az login --use-device-code --tenant <Azure tenant ID>
az account set -s <subscription ID>
次のコマンドを使用して Support.AksArc モジュールをインストールします。
Install-Module -Name Support.AksArc
Import-Module Support.AksArc -Force
その後、次のコマンドを実行して Windows ノード プール機能を有効にし、Windows 関連の VHD をダウンロードできます。
Invoke-SupportAksArcRemediation_EnableWindowsNodepool -Verbose
これにより、Windows ノード プール機能が有効になり、Windows VHD のダウンロードが開始されます。 Azure Local インスタンスで使用できるネットワーク帯域幅によっては、時間がかかる場合があります。
手順 3: Windows VHD の準備ができているかどうかを確認する
次のコマンドを実行して、Windows VHD がダウンロードされ、使用できる状態になっているかどうかを確認します。
$customlocationName = <The custom location name for Azure Local>
$resourceGroup = <The Azure resource group in which Azure Local is deployed>
az aksarc get-versions --resource-group $resourceGroup --custom-location $customlocationName
使用する予定の Kubernetes バージョンの場合は、 osType=Windows と osSKU フィールドを探して適切な Windows SKU を見つけ、 ready の状態が 正しいことを確認します。
...
"1.29.4": {
"readiness": [
{
"errorMessage": null,
"osSku": "CBLMariner",
"osType": "Linux",
"ready": true
},
{
"errorMessage": null,
"osSku": "Windows2019",
"osType": "Windows",
"ready": true
},
{
"errorMessage": null,
"osSku": "Windows2022",
"osType": "Windows",
"ready": true
}
],
"upgrades": null
}
...
VHD readytrue と表示されたら、 Windows ノード プールの作成に進み、Windows ベースのワークロードをデプロイできます。
AKS Arc クラスターで Windows ノード プール機能を無効にする
AKS Arc クラスターで Windows ノード プールを使用する必要がなくなった場合は、Windows ノード プール機能を無効にすることができます。 この機能を無効にすると、Azure ローカル インスタンスから Windows VHD が削除され、Windows ノード プールに対するそれ以上の操作ができなくなります。 既存の Windows ノード プールがある場合は、この機能を無効にする前に削除する必要があります。
手順 1: 既存の Windows ノード プールを削除する
クラスターで Windows ノード プール機能を無効にする場合は、既にある Windows ノード プールを削除することをお勧めします。 次のように、Azure portal から、または CLI を使用して、Windows ノード プールを削除できます。
az aksarc nodepool delete --name "<nodepool-name>" --cluster-name "<cluster-name>" --resource-group $resourceGroup
手順 2: クラスターで Windows ノード プール機能を無効にする
Windows ノード プール機能を無効にするには、Azure ローカル ノードにアクセスする必要があります。 まず、 Azure ローカル ノードに接続します。
リモート PowerShell セッションで、Azure ローカル インスタンスが存在するサブスクリプションに Azure にサインインします。
az login --use-device-code --tenant <Azure tenant ID>
az account set -s <subscription ID>
次のコマンドを使用して Support.AksArc モジュールをインストールします。
Install-Module -Name Support.AksArc
Import-Module Support.AksArc -Force
その後、次のコマンドを実行して、Windows ノード プール機能を無効にし、Azure Local インスタンスから Windows 関連の VHD を削除できます。
Invoke-SupportAksArcRemediation_DisableWindowsNodepool -Verbose
このコマンドは、Windows ノード プール機能を無効にし、既存の Windows VHD を削除します。
手順 3: Windows VHD が使用できなくなったことを確認する
次に、次のコマンドを実行して、Windows ノード プールが無効になっているかどうかを確認します。
errorMessage パラメーターは、Windows ノード プール機能が無効になっており、ready パラメーターが Kubernetes バージョンごとに false と表示されていることを示していることがわかります。
az aksarc get-versions --resource-group $resourceGroup --custom-location $customlocationName
...
- patchVersion: 1.29.4
readiness:
- osSku: CBLMariner
osType: Linux
ready: true
- errorMessage: Windows nodepool feature is disabled
isDisabled: true
osSku: Windows2019
osType: Windows
ready: false
- errorMessage: Windows nodepool feature is disabled
isDisabled: true
osSku: Windows2022
osType: Windows
ready: false
....
Windows VHD が Azure ローカル ストレージ パスから削除されたかどうかを確認できます。 削除にはしばらく時間がかかる場合があるため、確認する前に約 30 分待ちます。 Windows VHD は、使用可能なストレージ容量に基づいてラウンド ロビン方式でストレージ パスに割り当てられるため、すべてのストレージ パスを確認する必要があります。