チュートリアル:Arc で有効になっている AKS にワークロード クラスターをデプロイする

適用対象: AKS on Azure Stack HCI 22H2、AKS on Windows Server

Kubernetes には、コンテナー化されたアプリケーション用の分散プラットフォームが用意されています。

このチュートリアルでは、7 つのパート 3 である Kubernetes クラスターを AKS on Azure Stack HCI にデプロイします。 学習内容は次のとおりです。

  • Azure Stack HCI に AKS クラスターをデプロイする
  • Kubernetes CLI (kubectl) をインストールする
  • kubectl を構成してワークロード クラスターに接続する

後続のチュートリアルでは、Azure 投票アプリケーションをクラスターにデプロイし、スケーリングして更新します。

開始する前に

これまでのチュートリアルでは、コンテナー イメージを作成して、Azure Container Registry インスタンスにアップロードしました。 これらの手順を完了していない場合は、チュートリアル 1 - コンテナー イメージを作成するに関するページから開始してください。

このチュートリアルでは、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 Kubernetes Service ホストをインストールする

まず、登録設定を構成します。

Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup

これらの値は、Azure サブスクリプションとリソース グループ名に応じてカスタマイズする必要があります。

次に、次のコマンドを実行して、AKS on Azure Stack HCI をインストールするために、各物理ノード上のすべての要件が満たされていることを確認します。

Initialize-AksHciNode

次に、仮想ネットワークを作成します。 使用可能な外部スイッチの名前が必要です。

Get-VMSwitch

サンプル出力:

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

次のコマンドを実行して、静的 IP を使用して仮想ネットワークを作成します。

$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -macPoolName myMacPool -k8sNodeIpPoolStart "172.16.10.0" -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

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

Set-AksHciConfig -imageDir c:\clusterstorage\volume1\Images -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16" 

これで、AKS ホストをインストールする準備ができました。

Install-AksHCi

Kubernetes クラスターを作成する

New-AksHciCluster コマンドを使用して、Kubernetes クラスターを作成します。 次の例では、 という名前linuxnodepoolの 1 つの Linux ノード プールを持つ という名前myclusterのクラスターを作成します。ノード数は 1 です。

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

デプロイが成功したことを確認するには、次のコマンドを実行します。

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

注意

で新しいパラメーター セット New-AksHciCluster を使用してクラスターをデプロイした後、 を実行 Get-AksHciCluster してクラスター情報を取得すると、フィールド WindowsNodeCountLinuxNodeCount 出力で が返されます 0。 各ノード プール内のノードの正確な数を取得するには、指定したクラスター名で コマンド Get-AksHciNodePool を使用します。

クラスター内のノード プールの一覧を取得するには、次の 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

Kubernetes CLI のインストール

ローカル コンピューターから Kubernetes クラスターに接続するには、Kubernetes コマンド ライン クライアントである kubectl を使用します。

kubectl を使用したクラスターへの接続

Kubernetes クラスターに接続するように kubectl を構成するには、Get-AksHciCredential コマンドを使用します。 次の例では、 という名前 myclusterのクラスターの資格情報を取得します。

Get-AksHciCredential -name mycluster

クラスターへの接続を確認するには、クラスター ノードの一覧を返す kubectl get nodes コマンドを実行します。

kubectl get nodes
NAME              STATUS   ROLES                  AGE     VERSION
moc-lbs6got5dqo   Ready    <none>                 6d20h   v1.20.7
moc-lel7tzxdt30   Ready    control-plane,master   6d20h   v1.20.7

次のステップ

このチュートリアルでは、Kubernetes クラスターを AKS にデプロイし、kubectl を構成してクラスターに接続しました。 以下の方法を学習しました。

  • Azure Stack HCI に AKS クラスターをデプロイする
  • Kubernetes CLI (kubectl) をインストールする
  • kubectl を構成して AKS クラスターに接続する

次のチュートリアルに進み、アプリケーションをクラスターにデプロイする方法を学習してください。