次の方法で共有


Windows Server で Azure Kubernetes Service ホストを設定し、PowerShell を使用してワークロード クラスターをデプロイする

適用対象: Windows Server データセンター

このクイックスタートでは、Azure Kubernetes Service (AKS) ホストを設定する手順について説明します。 PowerShell を使用して、Windows Server 上に Kubernetes クラスターを作成します。 Windows Admin Center を代わりに使用する場合は、Windows Admin Center を使用した設定に関するページを参照してください。

開始する前に

  • システム要件のすべての前提条件を満たしていることを確認します。
  • AKS ホストを課金用に登録するために Azure アカウントを使用します。 詳細については、「Azure の要件」を参照してください。

AksHci PowerShell モジュールのインストール

Windows Server クラスター内のすべてのノードで、次の手順に従います。

リモート PowerShell を使用している場合は、CredSSP を使用する必要があります。

  1. 開いているすべての PowerShell ウィンドウを閉じ、管理者として新しい PowerShell セッションを開き、Windows Server クラスター内のすべてのノードで次のコマンドを実行します。

    Install-PackageProvider -Name NuGet -Force 
    Install-Module -Name PowershellGet -Force -Confirm:$false
    

    読み込まれたモジュールが最新の状態に更新されるように、もう一度既存の PowerShell ウィンドウをすべて閉じる必要があります。 開いているすべての PowerShell ウィンドウを閉じるまで、次の手順に進む必要はありません。

  2. Windows Server クラスター内のすべてのノードで次のコマンドを実行して 、AksHci PowerShell モジュールをインストールします。

    Install-Module -Name AksHci -Repository PSGallery -Force -AcceptLicense
    

    読み込まれたモジュールが最新の状態に更新されるように、もう一度既存の PowerShell ウィンドウをすべて閉じる必要があります。 開いているすべての PowerShell ウィンドウを閉じるまで、次の手順に進む必要はありません。

helper スクリプトを使用して、古い AKS-HCI PowerShell モジュールを削除して、AKS デプロイでの PowerShell バージョン関連の問題を回避できます。

インストールを検証する

Get-Command -Module AksHci

AksHci PowerShell コマンドの完全な一覧については、AksHci PowerShell を参照してください。

リソース プロバイダーをサブスクリプションに登録する

登録プロセスの前に、AKS 登録のために Azure で適切なリソース プロバイダーを有効にします。 これを行うには、次の PowerShell コマンドを実行します。

Azure にサインインするには、 Connect-AzAccount PowerShell コマンドを実行します。

Connect-AzAccount

別のサブスクリプションに切り替える場合は、Set-AzContext PowerShell コマンドを実行します。

Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"

次のコマンドを実行して、Azure サブスクリプションを Azure Arc 対応 Kubernetes リソース プロバイダーに登録します。 この登録プロセスには最大 10 分かかることがありますが、特定のサブスクリプションで 1 回だけ実行する必要があります。

Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

登録プロセスを検証するには、次の PowerShell コマンドを実行します。

Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

手順 1: デプロイ用にマシンを準備する

すべての物理ノードでチェックを実行して、AKS をインストールするためのすべての要件が満たされているかどうかを確認します。 管理者として PowerShell を開き、Windows Server クラスター内のすべてのノードで次の Initialize-AksHciNode コマンドを実行します。

Initialize-AksHciNode

手順 2: 仮想ネットワークを作成する

Windows Server クラスター内の任意のノードで次のコマンドを実行します。

使用可能なスイッチの名前を取得するには、次のコマンドを実行します。 VM スイッチの SwitchType外部であることを確認します。

Get-VMSwitch

サンプル出力:

Name        SwitchType     NetAdapterInterfaceDescription
----        ----------     ------------------------------
extSwitch   External       Mellanox ConnectX-3 Pro Ethernet Adapter

デプロイ内のノードが使用する仮想ネットワークを作成するには、New-AksHciNetworkSetting PowerShell コマンドを使用して環境変数を作成します。 この仮想ネットワークは、後で静的 IP を使用するデプロイを構成するために使用されます。 DHCP を使用して AKS デプロイを構成する場合は、例 New-AksHciNetworkSetting を参照してください。 ネットワーク ノードの概念のいくつかを確認することもできます。

# static IP
$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -k8sNodeIpPoolStart "172.16.10.1" -k8sNodeIpPoolEnd "172.16.10.255" -vipPoolStart "172.16.255.0" -vipPoolEnd "172.16.255.254" -ipAddressPrefix "172.16.0.0/16" -gateway "172.16.0.1" -dnsServers "172.16.0.1" -vlanId 9

この例のコマンドに示されている値は、環境に合わせてカスタマイズする必要があります。

手順 3: デプロイを構成する

Windows Server クラスター内の任意のノードで次のコマンドを実行します。

AKS ホストの構成設定を作成するには、Set-AksHciConfig コマンドを使用します。 imageDirworkingDircloudConfigLocation のパラメーターを指定する必要があります。 構成の詳細をリセットする場合は、このコマンドを新しいパラメーターで再び実行します。

次のコマンドを使用して、デプロイを構成します。

$csvPath = 'C:\clusterstorage\volume01' # Specify your preferred CSV path
Set-AksHciConfig -imageDir $csvPath\Images -workingDir $csvPath\ImageStore -cloudConfigLocation $csvPath\Config -vnet $vnet

この例のコマンドに示されている値は環境に合わせてカスタマイズする必要がありますが、ホストまたは Kubernetes クラスターで VM 名を変更することはできません。

手順 4: Azure にサインインし、登録設定を構成する

オプション 1: "所有者" アクセス許可がある場合は、Microsoft Entra アカウントを使用する

次の Set-AksHciRegistration PowerShell コマンドをサブスクリプションとリソース グループ名と共に実行して、Azure にサインインします。 Azure サブスクリプションと、オーストラリア東部、米国東部、東南アジア、または西ヨーロッパの Azure リージョンに既存の Azure リソース グループが必要です。

Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"

オプション 2: Azure サービス プリンシパルを使用する

所有者であるサブスクリプションにアクセスできない場合は、サービス プリンシパルを使用して課金のために AKS ホストを Azure に登録できます。 サービス プリンシパルの使用方法の詳細については、「サービス プリンシパルを 使用して Windows Server に AKS を登録する」を参照してください。

手順 5: 新しいデプロイを開始する

Windows Server クラスター内の任意のノードで次のコマンドを実行します。

デプロイを構成したら、AKS エージェントとサービス、および AKS ホストをインストールするためにデプロイを開始する必要があります。 デプロイを開始するには、次のコマンドを実行します。

ヒント

インストール中に追加の状態の詳細を表示するには、先に進む前に $VerbosePreference = "Continue" を設定します。

Install-AksHci

警告

AKS ホストのインストール中に、登録時に設定されたリソース グループに Kubernetes - Azure Arc リソースの種類が作成されます。 このリソースは AKS ホストを表しているため、削除しないでください。 このリソースは、そのディストリビューション フィールドに aks_management の値がないかどうかを確認することによって識別できます。 このリソースを削除すると、ポリシー外のデプロイになります。

手順 6: Kubernetes クラスターを作成する

AKS ホストをインストールしたら、Kubernetes クラスターをデプロイできます。 管理者として PowerShell を開き、次の New-AksHciCluster コマンドを実行します。 このコマンド例では、ノード数が 1 の linuxnodepool という名前の 1 つの Linux ノード プールを持つ新しい Kubernetes クラスターを作成します。

ノード プールの詳細については、「 AKS でのノード プールの使用」を参照してください。

New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType Linux

デプロイされたクラスターを確認する

デプロイされた Kubernetes クラスターの一覧を取得するには、次の Get-AksHciCluster PowerShell コマンドを実行します。

Get-AksHciCluster
ProvisioningState     : provisioned
KubernetesVersion     : v1.20.7
NodePools             : linuxnodepool
WindowsNodeCount      : 0
LinuxNodeCount        : 0
ControlPlaneNodeCount : 1
Name                  : mycluster

クラスター内のノード プールの一覧を取得するには、次の Get-AksHciNodePool PowerShell コマンドを実行します。

Get-AksHciNodePool -clusterName mycluster
ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

手順 7: クラスターを Arc 対応 Kubernetes に接続する

Enable-AksHciArcConnection コマンドを実行して、クラスターを Arc 対応 Kubernetes に接続します。 次の例では、 Set-AksHciRegistration コマンドで渡したサブスクリプションとリソース グループの詳細を使用して、Kubernetes クラスターを Arc に接続します。

Connect-AzAccount
Enable-AksHciArcConnection -name mycluster

インストール プロセス中に問題やエラー メッセージが発生した場合は、「 インストールの既知の問題とエラー 」を参照してください。

Kubernetes クラスターをスケーリングする

クラスターをスケールアップまたはスケールダウンする必要がある場合は、Set-AksHciCluster コマンドを使用して、コントロール プレーン ノードの数を変更できます。 ノード プールの Linux または Windows ワーカー ノードの数を変更するには、Set-AksHciNodePool コマンドを使用します。

コントロール プレーン ノードをスケーリングするには、次のコマンドを実行します。

Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3

ノード プールのワーカー ノードをスケーリングするには、次のコマンドを実行します。

Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3

以前のバージョンの Windows Server 上の AKS では、 Set-AksHciCluster コマンドもワーカー ノードのスケーリングに使用されていました。 AKS でワークロード クラスターにノード プールが導入されたので、 New-AksHciCluster で古いパラメーターを設定してクラスターが作成された場合にのみ、このコマンドを使用してワーカー ノードをスケーリングできます。

ノード プール内のワーカー ノードをスケーリングするには、 Set-AksHciNodePool コマンドを使用します。

kubectl を使用してクラスターにアクセスする

kubectl を使用して Kubernetes クラスターにアクセスするには、Get-AksHciCredential PowerShell コマンドを実行します。 このコマンドは、指定されたクラスターの kubeconfig ファイルを kubectl の既定の kubeconfig ファイルとして使用します。 kubectl を使用して、Helm を使用してアプリケーションをデプロイすることもできます。

Get-AksHciCredential -name mycluster

Kubernetes クラスターを削除する

Kubernetes クラスターを削除するには、次のコマンドを実行します。

Remove-AksHciCluster -name mycluster

Hyper-V Manager で既存の VM を確認して、クラスターが削除されていることを確認します。 削除されていない場合は、VM を手動で削除できます。 次に、コマンド Restart-Service wssdagent を実行します。 フェールオーバー クラスター内の各ノードでこのコマンドを実行します。

ログを取得する

すべてのポッドからログを取得するには、Get-AksHciLogs コマンドを実行します。 このコマンドは、作業ディレクトリに akshcilogs.zip という名前の出力 zip 形式のフォルダーを作成します。 akshcilogs.zip フォルダーへの完全なパスは、次のコマンドを実行した後の出力です。

Get-AksHciLogs

このクイックスタートでは、PowerShell を使用して AKS ホストを設定し、Kubernetes クラスターを作成する方法について説明しました。 また、PowerShell を使用して Kubernetes クラスターをスケーリングし、 kubectl を使用してクラスターにアクセスする方法についても学習しました。

次のステップ