適用対象: Windows Server データセンター
このクイックスタートでは、Azure Kubernetes Service (AKS) ホストを設定する手順について説明します。 PowerShell を使用して、Windows Server 上に Kubernetes クラスターを作成します。 Windows Admin Center を代わりに使用する場合は、Windows Admin Center を使用した設定に関するページを参照してください。
注
- クラスター サービス オブジェクトと DNS レコードを事前にステージングした場合は、「 PowerShell を使用して事前設定されたクラスター サービス オブジェクトと DNS レコードを含む AKS ホストをデプロイする」を参照してください。
- プロキシ サーバーがある場合、PowerShell とプロキシ サーバーを利用し、AKS ホストを設定し、ワークロード クラスターをデプロイする方法に関するページを参照してください。
開始する前に
- システム要件のすべての前提条件を満たしていることを確認します。
- AKS ホストを課金用に登録するために Azure アカウントを使用します。 詳細については、「Azure の要件」を参照してください。
AksHci PowerShell モジュールのインストール
Windows Server クラスター内のすべてのノードで、次の手順に従います。
注
リモート PowerShell を使用している場合は、CredSSP を使用する必要があります。
開いているすべての PowerShell ウィンドウを閉じ、管理者として新しい PowerShell セッションを開き、Windows Server クラスター内のすべてのノードで次のコマンドを実行します。
Install-PackageProvider -Name NuGet -Force Install-Module -Name PowershellGet -Force -Confirm:$false
読み込まれたモジュールが最新の状態に更新されるように、もう一度既存の PowerShell ウィンドウをすべて閉じる必要があります。 開いているすべての PowerShell ウィンドウを閉じるまで、次の手順に進む必要はありません。
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 コマンドを使用します。
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
注
この例のコマンドに示されている値は環境に合わせてカスタマイズする必要がありますが、ホストまたは 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 を使用してクラスターにアクセスする方法についても学習しました。