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

適用対象:Azure Stack HCI、Windows Server Datacenter

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

注意

開始する前に

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

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

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

注意

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

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

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

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

  2. Azure Stack HCI または Windows Server クラスターのすべてのノードで次のコマンドを実行して、AKS-HCI PowerShell モジュールをインストールします。

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

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

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

インストールを検証する

Get-Command -Module AksHci

AksHci PowerShell コマンドの完全な一覧を確認するには、AksHci PowerShell に関するページを参照してください。

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

登録プロセスの前に、Azure で Arc 登録によって有効になっている AKS 用の適切なリソース プロバイダーを有効にします。 これを行うには、次の 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:デプロイ用にマシンを準備する

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

Initialize-AksHciNode

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

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

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

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

Note

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

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

Azure Stack HCI および 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

Note

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

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

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

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

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

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

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

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

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

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

ヒント

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

Install-AksHci

警告

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

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

AKS ホストをインストールしたら、Kubernetes クラスターをデプロイできます。 管理者として PowerShell を開き、次の New-AksHciCluster コマンドを実行します。 次のコマンド例では、ノード数が 1 の名前 linuxnodepool の Linux ノード プールを 1 つ持つ新しい 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 に接続します。 次の例では、コマンドで渡したサブスクリプションとリソース グループの詳細を使用して、Kubernetes クラスターを Arc に Set-AksHciRegistration 接続します。

Connect-AzAccount
Enable-AksHciArcConnection -name mycluster

Note

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

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

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

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

Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3

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

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

Note

以前のバージョンの AKS on Azure Stack HCI and Windows Server では、ワーカー ノードのスケーリングにも 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

Note

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

ログを取得する

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

Get-AksHciLogs

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

次の手順