Azure Local で Windows nodepool 機能を無効にする
適用対象: Azure Local バージョン 23H2
Azure Local をインストールすると、Azure Linux、Windows Server 2019、Windows Server 2022 の 3 つの仮想ハード ディスク (VHD) が自動的にダウンロードされます。 VHD は、AKS クラスター内の Kubernetes ノードのベース オペレーティング システム イメージとして機能するため、Azure Local に AKS をデプロイするために必要です。 OS が混在する環境 (Windows ノードと Linux ノードの両方) の場合、Windows Server 2019 または 2022 ノードプールをプロビジョニングするには、Windows Server 2019 または Windows Server 2022 VHD が必要です。 Linux ノードプールでは、Kubernetes の実行用に最適化された Azure Linux VHD が使用されます。 ただし、Linux コンテナーのみが使用される環境では、Windows VHD は不要です。 Windows ノードプール機能を無効にして、この大きなファイルをダウンロードして保存しないようにすることができます。これにより、帯域幅と記憶域が節約されます。
このハウツー記事では、Azure Local で Azure Kubernetes Service (AKS) の Windows nodepool 機能を無効にする方法について説明します。 この機能を無効にすると、サイズが約 20 GB で、Windows ベースのノードプールを作成するために必要な Windows Virtual Hard Disks (VHD) が自動的にダウンロードされるのを防ぐことができます。 これにより、インターネット帯域幅が制限されている企業は、特にワークロードが Linux コンテナーのみを使用している場合に、不要なダウンロードを回避できます。 この機能は、帯域幅の使用を最適化し、Windows ノードが必要ない環境のリソース管理を簡素化するのに役立ちます。
開始する前に
始める前に、以下の前提条件を満たしていることを確認してください。
- Azure Local deployed。 この記事は、Azure Local リリース 2411 を既にデプロイしている場合にのみ適用されます。 Azure Local リリース 2411 をデプロイする前に、この記事のコマンドを実行することはできません。 現在、最初の Azure Local リリース 2411 のデプロイ前にこの変更を行う機能はサポートされていません。
- Azure ローカル構成を更新するための Azure RBAC アクセス許可。 次のロールがあることを確認します。 詳細については、デプロイ 必要なアクセス許可を参照してください:
- Azure ローカル管理者
- Reader
- カスタムの場所。 カスタムの場所の名前。 カスタムの場所は、Azure ローカル デプロイ中に構成されます。 Azure portal を使用している場合は、Azure ローカル システム リソースの Overview > Server ページに移動します。 クラスターのカスタムの場所が表示されます。
- Azure リソース グループ。 Azure Local がデプロイされている Azure リソース グループ。
推奨されるオプション: Azure CloudShell セッションから Windows nodepool を無効にする
構成を簡略化するために、次の手順では、この記事で参照される環境変数を定義します。 表示される値は、必ず独自の値に置き換えてください。
環境変数でカスタムの場所とリソース グループの値を設定します。
$customlocationName = <The custom location name for Azure Local>
$resourceGroup = <The Azure resource group in which Azure Local is deployed>
次に、次のコマンドを実行して、 clusterName
パラメーターを取得します。 このパラメーターは、Azure Local にデプロイした Arc リソース ブリッジの名前です。
az customlocation show -n $customlocationName -g $resourceGroup --query hostResourceId
予想される出力:
/subscriptions/f3dwer-00000-4383-2345-00000/resourceGroups/SanJose/providers/Microsoft.ResourceConnector/appliances/sanjose-arcbridge
この出力では、 sanjose-arcbridge
は Azure ローカル クラスターにデプロイした Arc リソース ブリッジの名前です。 この名前は、デプロイによって異なります。
$clusterName = <Name of Arc resource bridge deployed on the Azure Local cluster>
次に、カスタムの場所にデプロイした AKS Arc 拡張機能の名前を取得します。 この名前を取得するには、次のコマンドを実行して、カスタムの場所にインストールされている拡張機能を一覧表示します。
az customlocation show -n $customlocationID -g $resourceGroup --query clusterExtensionIds -o tsv
予想される出力:
/subscriptions/fbaf508b-cb61-4383-9cda-a42bfa0c7bc9/resourceGroups/SanJose/providers/Microsoft.ResourceConnector/appliances/sanjose-arcbridge/providers/Microsoft.KubernetesConfiguration/extensions/hybridaksextension
/subscriptions/fbaf508b-cb61-4383-9cda-a42bfa0c7bc9/resourceGroups/SanJose/providers/Microsoft.ResourceConnector/appliances/sanjose-arcbridge/providers/Microsoft.KubernetesConfiguration/extensions/vmss-hci
カスタムの場所には、AKS Arc と Arc VM の管理という 2 つの拡張機能がインストールされている必要があります。 AKS の拡張機能名を環境変数にコピーします。 出力例では、拡張機能名は hybridaksextension
。 表示される内容とは異なる場合があります。
$extensionName = <Name of AKS Arc extension you deployed on the custom location>
拡張機能名を取得したら、次のパラメーターの変数を作成し、Windows nodepool 機能を無効にします。
$extensionVersion = "$(az k8s-extension show -n $extensionName -g $resourceGroup -c $clusterName --cluster-type appliances --query version -o tsv)"
$releaseTrain = "$(az k8s-extension show -n $extensionName -g $resourceGroup -c $clusterName --cluster-type appliances --query releaseTrain -o tsv)"
az k8s-extension update --resource-group $resourceGroup --cluster-name $clusterName --cluster-type appliances --name $extensionName --version $extensionVersion --release-train $releaseTrain --config disable-windows-nodepool=true --yes
代替オプション: リモート デスクトップ経由で Azure ローカル物理ノードに接続した後に Windows ノードプールを無効にする
何らかの理由で、Windows ノードプールを無効にするために Azure CloudShell または Azure に接続されているマシンを使用できない場合は、リモート デスクトップを使用して Azure ローカル物理ノードのいずれかに接続した後、Windows ノードプールを無効にすることができます。 最初に Azure にサインインする必要があります。
az k8s-extension update --resource-group $resourceGroup --cluster-name $clusterName --cluster-type appliances --name $extensionName --version $extensionVersion --release-train $releaseTrain --config disable-windows-nodepool=true --yes
Windows ノードプール機能が無効になっているかどうかを検証する
次のように、 az k8s-extension show
を実行して、構成設定が適用されたかどうかを確認できます。
az k8s-extension show --name $extensionName --resource-group $resourceGroup --cluster-name $clusterName --cluster-type appliances --query configurationSettings
予想される出力:
...
"disable-windows-nodepool": "true",
...
次に、次のコマンドを実行して、Windows ノードプールが無効になっているかどうかを確認します。
az aksarc get-versions --resource-group $resourceGroup --custom-location $customlocationName
osType=Windows
の出力には "Windows nodepool 機能が無効になっています" と表示され、ready
状態は Kubernetes バージョン オプションごとにfalse
する必要があります。
...
"1.27.7": {
"readiness": [
{
"errorMessage": null,
"osSku": "CBLMariner",
"osType": "Linux",
"ready": true
},
{
"errorMessage": "Windows nodepool feature is disabled",
"osSku": "Windows2019",
"osType": "Windows",
"ready": false
},
{
"errorMessage": "Windows nodepool feature is disabled",
"osSku": "Windows2022",
"osType": "Windows",
"ready": false
}
],
...
よく寄せられる質問
Windows ノードプールを無効にしようとすると、Azure ローカル デプロイの少なくとも 1 つの AKS クラスターに Windows ノード プールが存在する場合はどうなりますか。
この機能を無効にする前に、Windows nodepool を手動で削除する必要があります。 既存の Windows ノードプールがある場合、この機能を無効にすることはできません。
Windows ノード プールを無効にした場合、ダウンロードした Windows VHD はどうなりますか?
Windows ノードプール機能が無効になっている場合、以前にダウンロードされた Windows VHD は自動的に削除されます。 Windows VHD が Azure ローカル ストレージ パスから削除されたかどうかを確認できます。 削除には時間がかかる場合があります。 確認する前に 30 分待ちます。 Windows VHD は、使用可能なストレージ容量に基づいてラウンド ロビン方式でストレージ パスに割り当てられるため、すべてのストレージ パスを確認する必要があります。