アプリケーションをデプロイする
この記事では、コンテナー化されたアプリケーションを Kubernetes クラスターにデプロイする方法について説明します。
前提条件
開始するには、 単一コンピューターの Kubernetes または 完全な Kubernetes クラスターを設定します。
サンプル Linux アプリケーションをデプロイする
手順 1: マニフェスト ファイルを更新する
この記事では、Microsoft の azure-vote-front イメージに基づくフロントエンドとバックエンドで構成される単純な投票アプリであるサンプル アプリケーションを使用します。 このアプリケーションのコンテナー イメージは、Azure Container Registry (ACR) でホストされます。 デプロイ マニフェストについては、GitHub リポジトリ パッケージの linux-sample.yaml を参照してください。 YAML では、タグを nodeSelector
Linux として指定しました。
手順 2: アプリケーションをデプロイする
ご利用になるアプリケーションをデプロイするには、kubectl apply コマンドを使用します。 このコマンドは、マニフェスト ファイルを解析し、定義されている Kubernetes オブジェクトを作成します。 次の例に示すように、YAML マニフェスト ファイルを指定します。
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml
手順 3: ポッドを確認する
ポッドが 実行 状態になるまで数分待ちます。
kubectl get pods -o wide
手順 4: サービスを確認する
進行状況を監視するには、 パラメーターを指定して kubectl get services コマンドを --watch
使用します。
kubectl get services
最初は、 EXTERNAL-IP
サービスの が azure-vote-front
として pending
表示されます。 アドレスが EXTERNAL-IP
から pending
実際のパブリック IP アドレスに変更された場合は、サービスに割り当てられた IP アドレスを使用できます。
重要
単一マシン クラスターで、 を指定せずに Kubernetes クラスターを -ServiceIPRangeSize
デプロイした場合、ワークロード サービスに IP が割り当てられず、外部 IP アドレスがありません。 この場合は、Linux VM の IP アドレス (Get-AksEdgeNodeAddr
) を見つけます。
Get-AksEdgeNodeAddr -NodeType Linux
VM の IP アドレス ( 192.168.1.12:30432 など) に外部ポートを追加できるようになりました。
手順 5: アプリケーションをテストする
アプリケーションが動作していることを確認するには、Web ブラウザーを開いてサービスの外部 IP アドレスにアクセスします。
アプリケーションが読み込まれない場合は、イメージ レジストリの承認の問題が原因である可能性があります。 コンテナーのステータスを表示するには、kubectl get pods
コマンドを使用します。 コンテナー イメージを取得できない場合は、「Azure Kubernetes ServiceからAzure Container Registryで認証する」を参照してください。
手順 6: アプリケーションを削除する
クリーンするには、次のコマンドを使用してすべてのリソースを削除します。
kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/linux-sample.yaml
クラスターにサンプル Windows アプリケーションをデプロイする
この例では、Microsoft のサンプル イメージに基づいて、アプリケーション ASP.NET サンプルを実行します。
win-sample.yaml を参照してください。 YAML は、タグを nodeSelector
Windows として指定 します。
手順 1: YAML マニフェストの名前を指定してアプリケーションをデプロイする
PowerShell ウィンドウの YAML のディレクトリにいることを確認し、次のコマンドを実行します。
kubectl apply -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml
手順 2: サンプル ポッドが実行されていることを確認する
インターネット接続によっては、ポッドが実行中の状態に達するまでに時間がかかる場合があります。 ASP.NET イメージは大きいです。
kubectl get pods -o wide
手順 3: サンプル サービスが実行されていることを確認する
kubectl get services
このサンプルは NodePort 型のサービスとしてデプロイされるため、アプリケーションが実行されている Kubernetes ノードの IP アドレスを取得し、 NodePort のポートを追加できます。 次 Get-AksEdgeNodeAddr
のコマンドを使用して、Kubernetes ノードの IP を取得します。
Get-AksEdgeNodeAddr -NodeType Windows
手順 4: 実行中の Windows サンプルを確認する
Web ブラウザーを開き、 NodePort を見つけてサービスにアクセスします。
手順 5: クリーン
クリーンするには、次のコマンドを使用してすべてのリソースを削除します。
kubectl delete -f https://raw.githubusercontent.com/Azure/AKS-Edge/main/samples/others/win-sample.yaml
独自のアプリケーションのデプロイ
前の手順では、サンプル アプリケーションをデプロイする方法を示しました。 独自のアプリケーションをデプロイするには、次の操作を行います。
アプリケーションをコンテナー イメージにパッケージ化し、イメージをAzure Container Registryまたは任意のコンテナー レジストリにアップロードします。 アプリケーションのコンテナー イメージを作成するには、次の手順を確認します。
AKS Edge Essentialsでは、混合 OS クラスターが有効になります。 対応する OS を使用して、ポッドがノードでスケジュールされていることを確認します。 デプロイ ファイルに を追加
nodeSelector
します。 このオプションは、特定のオペレーティング システム (OS) のノードでポッドを実行するように Kubernetes に指示します。 クラスターが単一 OS の場合は、この手順をスキップできます。ただし、ベスト プラクティスとして、各デプロイ ファイルにノード セレクターのラベルを付けます。nodeSelector: "kubernetes.io/os": linux
nodeSelector: "kubernetes.io/os": windows