Azure Local と Windows Server で Azure Kubernetes Service ホストを設定し、PowerShell を使用してワークロード クラスターをデプロイする
適用対象: Azure Local または Windows Server Datacenter
このクイックスタートでは、Azure Kubernetes Service (AKS) ホストを設定する手順について説明します。 PowerShell を使用して、Azure Local と Windows Server に Kubernetes クラスターを作成します。 Windows Admin Center を代わりに使用する場合は、Windows Admin Center を使用した設定に関するページを参照してください。
Note
- 事前設定されたクラスター サービス オブジェクトと DNS レコードがある場合は、PowerShell を使用した、事前設定されたクラスター サービス オブジェクトと DNS レコードによる AKS ホストのデプロイに関するページを参照してください。
- プロキシ サーバーがある場合、PowerShell とプロキシ サーバーを利用し、AKS ホストを設定し、ワークロード クラスターをデプロイする方法に関するページを参照してください。
- Arc VM の設定後の Azure Local への AKS のインストールはサポートされていません。 詳細については、「arc VM の 問題を参照してください。 Azure Local に AKS をインストールする場合は、Arc Resource Bridge をアンインストールしてから、Azure Local に AKS をインストールする必要があります。 AKS をクリーンアップしてインストールした後、新しい Arc Resource Bridge をもう一度デプロイすることはできますが、以前に作成した VM エンティティは記憶されません。
開始する前に
- システム要件に関するページのすべての前提条件を満たしていることを確認してください。
- AKS ホストを課金用に登録するために Azure アカウントを使用します。 詳細については、「Azure の要件」を参照してください。
AksHci PowerShell モジュールのインストール
Azure ローカル クラスターまたは Windows Server クラスター内のすべてのノードで、次の手順に従います。
Note
リモート PowerShell を使用している場合は、CredSSP を使用する必要があります。
開いているすべての PowerShell ウィンドウを閉じ、管理者として新しい PowerShell セッションを開き、Azure Local または Windows Server クラスター内のすべてのノードで次のコマンドを実行します。
Install-PackageProvider -Name NuGet -Force Install-Module -Name PowershellGet -Force -Confirm:$false
読み込まれたモジュールが最新の状態に更新されるように、もう一度既存の PowerShell ウィンドウをすべて閉じる必要があります。 開いているすべての PowerShell ウィンドウを閉じるまで、次の手順に進む必要はありません。
Azure Local または Windows Server クラスター内のすべてのノードで次のコマンドを実行して、AKS-HCI 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 に関するページを参照してください。
リソース プロバイダーをサブスクリプションに登録する
登録プロセスの前に、Arc 登録によって有効になっている 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: デプロイ用にマシンを準備する
すべての物理ノードでチェックを実行して、Arc で有効になっている AKS をインストールするためのすべての要件が満たされているかどうかを確認します。 管理者として PowerShell を開き、Azure Local クラスターと Windows Server クラスター内のすべてのノードで次の Initialize-AksHciNode コマンドを実行します。
Initialize-AksHciNode
手順 2: 仮想ネットワークを作成する
Azure Local クラスターと 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
Note
この例のコマンドに示されている値は、環境に合わせてカスタマイズする必要があります。
手順 3: デプロイを構成する
Azure Local クラスターと Windows Server クラスター内の任意のノードで次のコマンドを実行します。
AKS ホストの構成設定を作成するには、Set-AksHciConfig コマンドを使用します。 imageDir
、workingDir
、cloudConfigLocation
のパラメーターを指定する必要があります。 構成の詳細をリセットする場合は、このコマンドを新しいパラメーターで再び実行します。
次のコマンドを使用して、デプロイを構成します。
$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 に登録できます。 サービス プリンシパルの使用方法の詳細については、「 サービス プリンシパルを使用して Azure Local および Windows Server 上の AKS を登録するを参照してください。
手順 5: 新しいデプロイを開始する
Azure Local または 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
Note
インストール プロセス中に問題またはエラー メッセージが発生した場合は、インストールに関する既知の問題とエラーに関するページを参照してください。
Kubernetes クラスターをスケーリングする
クラスターをスケールアップまたはスケールダウンする必要がある場合は、Set-AksHciCluster コマンドを使用して、コントロール プレーン ノードの数を変更できます。 ノード プールの Linux または Windows ワーカー ノードの数を変更するには、Set-AksHciNodePool コマンドを使用します。
コントロール プレーン ノードをスケーリングするには、次のコマンドを実行します。
Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3
ノード プールのワーカー ノードをスケーリングするには、次のコマンドを実行します。
Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3
Note
以前のバージョンの Azure Local および 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
Note
Hyper-V マネージャーで既存の VM を確認して、クラスターが削除されていることを確認します。 削除されていない場合は、その VM を手動で削除できます。 次に、コマンド Restart-Service wssdagent
を実行します。 フェールオーバー クラスター内の各ノードでこのコマンドを実行します。
ログを取得する
すべてのポッドからログを取得するには、Get-AksHciLogs コマンドを実行します。 このコマンドは、作業ディレクトリに akshcilogs.zip
という名前の出力 zip 形式のフォルダーを作成します。 akshcilogs.zip
フォルダーへの完全なパスは、次のコマンドを実行した後の出力です。
Get-AksHciLogs
このクイックスタートでは、PowerShell を使用して AKS ホストを設定し、Kubernetes クラスターを作成する方法について説明しました。 また、PowerShell を使用して Kubernetes クラスターをスケーリングし、kubectl
を使用してクラスターにアクセスする方法も確認しました。