チュートリアル: AKS ハイブリッドにワークロード クラスターをデプロイする

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

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

このチュートリアルでは、パート 3 の 7 つのうち、Azure Kubernetes Service (AKS) クラスターを AKS ハイブリッドにデプロイします。 学習内容は次のとおりです。

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

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

開始する前に

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

このチュートリアルでは、AksHci PowerShell モジュールを使用します。

Azure Stack HCI クラスターまたは Windows Server クラスターのすべてのノードで

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

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

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

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

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

Install-Module -Name AksHci -Repository PSGallery
Exit

読み込まれたモジュールが最新の状態に更新されるように、もう一度既存の 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

Note

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 クラスターに接続するには、kubectl (Kubernetes コマンドライン クライアント) を使用します。

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 クラスターに接続する

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