クイック スタート: PowerShell を使用して Azure Stack HCI および Windows Server 上に Azure Kubernetes Service ホストを設定し、ワークロード クラスターをデプロイする
適用対象: Azure Stack HCI on Windows Server
このクイックスタートでは、Azure Kubernetes Service (AKS) ホストのセットアップについて説明します。 PowerShell を使用して AKS on Azure Stack HCI and Windows Server クラスターを作成します。 Windows Admin Center を代わりに使用する場合は、Windows Admin Center を使用した設定に関するページを参照してください。
注意
- 事前設定されたクラスター サービス オブジェクトと DNS レコードがある場合は、PowerShell を使用した、事前設定されたクラスター サービス オブジェクトと DNS レコードによる AKS ホストのデプロイに関するページを参照してください。
- プロキシ サーバーがある場合、PowerShell とプロキシ サーバーを利用し、AKS ホストを設定し、ワークロード クラスターをデプロイする方法に関するページを参照してください。
開始する前に
- システム要件に関するページのすべての前提条件を満たしていることを確認してください。
- AKS ホストを課金用に登録するために Azure アカウントを使用します。 詳細については、「Azure の要件」を参照してください。
- AKS on Azure Stack HCI and Windows Server に使用する Azure サブスクリプションに対する以下のアクセス レベルのうち少なくと 1 つがあることを確認します。
- 組み込みの所有者ロールを持つユーザー アカウント。 アクセス レベルを確認するには、サブスクリプションに移動し、Azure portal の左側にある [アクセス制御 (IAM)] をクリックして、[マイ アクセスの表示] をクリックします。
- 組み込みの Kubernetes クラスター - Azure Arc のオンボード ロール (最低限)、組み込みの共同作成者ロール、または組み込みの所有者ロールのいずれかを持つサービス プリンシパル。
- サブスクリプションでは、登録する前に、上記のサブスクリプションで利用可能な、オーストラリア東部、米国東部、東南アジア、または西ヨーロッパの Azure リージョンの Azure リソース グループを指定する必要があります。
- 以下のうち少なくとも 1 つを使用します。
- Azure Stack HCI on Windows Server クラスター
- Windows Server 2019/2022 Datacenter フェールオーバー クラスター
Note
Azure Stack HCI on Windows Server クラスターを使用することをお勧めします。 上記のいずれもない場合は、Azure Stack HCI の登録ページの手順に従ってください。
AksHci PowerShell モジュールのインストール
AksHci PowerShell モジュールをインストールしていない場合は、次のコマンドを実行してモジュールをインストールします。
重要
前提条件となる PowerShell パッケージとモジュールをインストールするには、すべての既存の PowerShell ウィンドウを閉じて、新しい管理セッションを開く必要があります。
Install-Module -Name Az.Accounts -Repository PSGallery -RequiredVersion 2.2.4
Install-Module -Name Az.Resources -Repository PSGallery -RequiredVersion 3.2.0
Install-Module -Name AzureAD -Repository PSGallery -RequiredVersion 2.0.2.128
Install-Module -Name AksHci -Repository PSGallery
Import-Module Az.Accounts
Import-Module Az.Resources
Import-Module AzureAD
Import-Module AksHci
リモート PowerShell を使用している場合は、CredSSP を使用する必要があります。
重要
読み込まれたモジュールが最新の状態に更新されるように、もう一度既存の PowerShell ウィンドウをすべて閉じる必要があります。 すべての PowerShell ウィンドウを閉じるまでは、次の手順に進まないでください。
インストールを検証します。
重要
すべての PowerShell ウィンドウを閉じ、新しい管理セッションを開き直して、使用している PowerShell モジュールが最新バージョンかどうかを確認します。
Get-Command -Module AksHci
AksHci PowerShell コマンドの完全な一覧を確認するには、AksHci PowerShell に関するページを参照してください。
Azure Stack HCI クラスター内のすべてのノード
Azure Stack HCI on Windows Server クラスター内のすべてのノードで次のコマンドを実行します。
Install-PackageProvider -Name NuGet -Force
Install-Module -Name PowershellGet -Force -Confirm:$false -SkipPublisherCheck
重要
読み込まれたモジュールが最新の状態に更新されるように、もう一度既存の PowerShell ウィンドウをすべて閉じる必要があります。 すべての PowerShell ウィンドウを閉じるまでは、次の手順に進まないでください。
Azure Stack HCI on Windows Server クラスター内のすべてのノードで次のコマンドを実行して、AKS-HCI PowerShell モジュールをインストールします。
Install-Module -Name AksHci -Repository PSGallery
リソース プロバイダーをサブスクリプションに登録する
登録プロセスの前に、AKS on Azure Stack HCI and Windows Server の登録用に Azure で適切なリソース プロバイダーを有効にする必要があります。 そのためには、次の PowerShell コマンドを実行します。
Azure にログインするには、Connect-AzAccount PowerShell コマンドを実行します。
Connect-AzAccount
別のサブスクリプションに切り替える場合は、Set-AzContext PowerShell コマンドを実行します。
Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"
次のコマンドを実行して、Azure Arc 対応 Kubernetes リソース プロバイダーに Azure サブスクリプションを登録します。 この登録プロセスには最大 10 分かかる場合がありますが、実行する必要があるのは特定のサブスクリプションで 1 回のみです。
Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
登録プロセスを検証するには、次の PowerShell コマンドを実行します。
Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
手順 1:デプロイ用にマシンを準備する
すべての物理ノードでチェックを実行して、AKS on Azure Stack HCI and Windows Server をインストールするためのすべての要件が満たされているかどうかを確認します。 管理者として PowerShell を開き、次の Initialize-AksHciNode コマンドを実行します。 Azure Stack HCI on Windows Server クラスター内のすべてのノードで次のコマンドを実行します。
Initialize-AksHciNode
手順 2: 仮想ネットワークを作成する
Azure Stack HCI on Windows Server クラスター内の任意の 1 つのノードで、手順 2 として次のコマンドを実行します。
使用可能なスイッチの名前を取得するには、次のコマンドを実行します。 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 on Windows Server クラスター内の任意の 1 つのノードで、手順 3 として次のコマンドを実行します。
AKS ホストの構成設定を作成するには、Set-AksHciConfig コマンドを使用します。 imageDir、workingDir、cloudConfigLocation のパラメーターを指定する必要があります。 構成の詳細をリセットする場合は、このコマンドを新しいパラメーターで再び実行します。
次のコマンドを使用して、デプロイを構成します。
Set-AksHciConfig -imageDir c:\clusterstorage\volume1\Images -workingDir c:\ClusterStorage\Volume1\ImageStore -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16"
Note
この例のコマンドで指定した値は、ご利用の環境に合わせてカスタマイズする必要があります。
手順 4: Azure にログインし、登録設定を構成する
サブスクリプションとリソース グループ名を指定して次の Set-AksHciRegistration PowerShell コマンドを実行して、Azure にログインします。 続行するには、Azure サブスクリプションと、オーストラリア東部、米国東部、東南アジア、または西ヨーロッパの Azure リージョンに既存の Azure リソース グループが必要です。
Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"
手順 5: 新しいデプロイを開始する
Azure Stack HCI on Windows Server クラスター内の任意の 1 つのノードで、手順 5 として次のコマンドを実行します。
デプロイを構成したら、AKS on Azure Stack HCI and Windows Server エージェント/サービスおよび AKS ホストをインストールするために、デプロイを開始する必要があります。 デプロイを開始するには、次のコマンドを実行します。
ヒント
インストール中に状態について追加の詳細を表示するには、先に進む前に $VerbosePreference = "Continue" を設定してください。
Install-AksHci
警告
Azure Kuberenetes Service ホストのインストール中に、登録中に設定されるリソース グループ内に Kubernetes - Azure Arc というリソースの種類が作成されます。 このリソースは Azure Kuberenetes Service ホストを表すため、削除しないでください。 このリソースは、そのディストリビューション フィールドに aks_management の値がないかどうかを確認することによって識別できます。 このリソースを削除すると、ポリシー違反のデプロイになります。
手順 6: Kubernetes クラスターを作成する
AKS ホストをインストールすると、Kubernetes クラスターをデプロイする準備は完了です。 管理者として PowerShell を開き、次の New-AksHciCluster コマンドを実行します。 このコマンド例では、ノード数が 1 つの linuxnodepool という名前の Linux ノード プールを持つ新しい Kubernetes クラスターを作成します。 ノード プールの詳細については、AKS on Azure Stack HCI and Windows Server でのノード プールの使用に関するページを参照してください。
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 コマンドで渡したサブスクリプションとリソース グループの詳細を使用して、AKS on Azure Stack HCI and Windows Server クラスターを Arc に接続します。
Connect-AzAccount
Enable-AksHciArcConnection -name mycluster
Note
インストール プロセス中に問題またはエラー メッセージが発生した場合は、インストールに関する既知の問題とエラーに関するページを参照してください。
Kubernetes クラスターをスケーリングする
クラスターをスケールアップまたはスケールダウンする必要がある場合は Set-AksHciCluster コマンドを使用してコントロール プレーン ノードの数を変更できます。また Set-AksHciNodePool コマンドを使用して、ノード プール内の Linux または Windows ワーカー ノードの数を変更できます。
コントロール プレーン ノードをスケーリングするには、次のコマンドを実行します。
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 on Azure Stack HCI and Windows Server ではワークロード クラスター内にノード プールが導入されているため、このコマンドを使ってワーカー ノードをスケーリングできるのは、クラスターが 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 ホストを設定し、AKS on Azure Stack HCI and Windows Server クラスターを作成する方法について説明しました。 また、PowerShell を使用して Kubernetes クラスターをスケーリングし、kubectl を使用してクラスターにアクセスする方法も確認しました。