チュートリアル: Visual Studio 上で Bridge to Kubernetes を使用してローカルで実行およびデバッグする
このチュートリアルでは、Kubernetes クラスターと開発用コンピューターの間でトラフィックをリダイレクトする方法について説明します。 このチュートリアルでは、Bridge to Kubernetes と Visual Studio を使用して、サービスをデバッグします。 Visual Studio Code を使用するには、Bridge to Kubernetes と VS Code を使用してローカルに実行およびデバッグに関するページを参照してください。
Bridge to Kubernetes の詳細については、「Bridge to Kubernetes のしくみ」を参照してください。
このチュートリアルでは、以下の内容を学習します。
- Bridge to Kubernetes を使用して自分のクラスターに接続する。
- 開発目的でローカルで実行されているサービスに要求をルーティングする。
- ローカル コンピューターで実行中のサービスをデバッグする。
前提条件
- Kubernetes クラスター。 Azure portal で作成することができます。 Azure サブスクリプションをお持ちでない場合は、無料でアカウントを作成できます。
- ご利用のシステムに kubectl 実行可能ファイルがインストールされていること。
- Windows 10 以降で実行されている Visual Studio 2019 バージョン 16.7 以降、または Visual Studio 2022。
- Visual Studio 2019 用 Bridge to Kubernetes 拡張機能または Visual Studio 2022 用 Bridge to Kubernetes 拡張機能。
- この ToDo アプリ サンプル アプリケーションなど、トラブルシューティング対象のアプリケーション。
サービスを設定する
このチュートリアルでは、Bridge to Kubernetes を使用して、任意の Kubernetes クラスター上でシンプルな ToDo サンプル アプリケーションに対して作業を行います。
サンプル アプリケーションには、対話するフロントエンドと、永続的なストレージを提供するバックエンドがあります。
Bash ウィンドウを開き、クラスターが使用可能で準備ができていることを確認します。 次に、コンテキストをそのクラスターに設定します。
kubectl cluster-info kubectl config use-context <kubernetes-cluster>
サンプル リポジトリを複製します。
git clone https://github.com/Azure/Bridge-To-Kubernetes
ディレクトリを samples/todo-app に変更して、サンプルの名前空間を作成します。
kubectl create namespace todo-app
配置マニフェストを適用します。
kubectl apply -n todo-app -f deployment.yaml
このシンプルな配置では、
LoadBalancer
型のサービスを使用してフロントエンドを公開します。 すべてのポッドが実行され、frontend
サービスの外部 IP が使用可能になるまで待機します。MiniKube でテストする場合は、
minikube tunnel
を使用して外部 IP を解決します。 AKS または別のクラウドベースの Kubernetes プロバイダーを使用している場合は、外部 IP が自動的に割り当てられます。次のコマンドを使用して
frontend
サービスを監視し、それが起動して実行されるまで待機します。kubectl get service -n todo-app frontend --watch NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE frontend LoadBalancer 10.0.245.78 10.73.226.228 80:31910/TCP 6m26s
クラスターへの接続
Visual Studio を開きます。 [作業の開始] ウィンドウで、[コードなしで続行] を選択します。
[開く]>[プロジェクト/ソリューション] の順に選択し、samples\todo-app\database-api\databaseApi.csproj プロジェクトを見つけて、[開く] を選択します。
プロジェクトで、次に示すように起動設定で [Bridge to Kubernetes] を選択します。
[Bridge to Kubernetes] の横にある開始ボタンを選択します。 [Bridge to Kubernetes のプロファイルの作成] ダイアログ ボックスで、次の値を入力します。
- お使いのクラスターの名前を選択します。
- お使いの名前空間として todo-app を選択します。
- リダイレクトするサービスとして database-api を選択します。
- ブラウザーを起動するために前に使用したのと同じ URL を選択します。
分離して実行する場合は、[ルーティング分離を有効にする] を選択します。 ルーティングの分離を有効にした場合、お客様が行った変更の影響を、クラスターを使用している他のユーザーが受けることはありません。 分離モードでは、影響を受ける各サービスのコピーに要求がルーティングされます。 他のトラフィックは通常どおりルーティングされます。 詳細については、「Bridge to Kubernetes のしくみ」を参照してください。
[保存とデバッグ] を選択して変更内容を保存します。
Note
hosts ファイルに対する昇格された特権を許可するように求めるメッセージが、EndpointManager によって表示されます。
開発用コンピューターがクラスターに接続されます。
database-api
サービスに接続中であることが、ステータス バーに示されます。タスクを入力し、それらを完了としてマークしてみてください。
[デバッグ]>[デバッグの停止] を選択してデバッグを停止します。 この操作をショートカットで実行するには、Shift+F5 キーを押すか、ツール バーの [デバッグの停止] ボタンを使用します。
Bridge to Kubernetes によって、database-api サービスのすべてのトラフィックがリダイレクトされます。 開発用コンピューター上のご利用のアプリケーションのバージョンにリダイレクトされます。 Bridge to Kubernetes ではまた、アプリケーションからのすべての送信トラフィックが、Kubernetes クラスターにルーティングされます。
Note
既定では、デバッグ タスクを停止すると、開発用コンピューターも Kubernetes クラスターから切断されます。 この動作を変更するには、[ツール]>[オプション] の順に選択して、[Kubernetes Debugging Tools] を選択します。 [デバッグ後に切断する] を [False] に設定します。
この設定を更新した後は、デバッグを停止および開始しても、開発用コンピューターは接続されたままとなります。 開発用コンピューターをクラスターから切断するには、ツール バーの [切断] ボタンをクリックします。
ブレークポイントの設定
このセクションでは、サービスにブレークポイントを設定します。
[ソリューション エクスプローラー] で、[MongoHelper.cs] を選択してエディターでファイルを開きます。 ソリューション エクスプローラーが表示されない場合は、[表示]>[ソリューション エクスプローラー] の順に選択します。
CreateTask メソッド本体の最初の行にカーソルを設定します。 次に、[デバッグ]>[ブレークポイントの設定/解除] の順に選択してブレークポイントを設定します。
このアクションのショートカットは、F9 キーです。
前のセクションで行ったように、[Bridge to Kubernetes] の横にある [開始] ボタンを選択します。 デバッグは前に入力した値から始まります。
開いているブラウザーで、ToDo に値を入力し、Enter キーを押します。 入力したブレークポイントにコードが到達します。 実際のデバッグ タスクを実行しながら、デバッグ オプションを使用してコードをステップ実行することができます。
[デバッグ]>[デバッグの停止] を選択してデバッグを停止します。
ブレークポイントを削除するには、その行を選択してから、[デバッグ]>[ブレークポイントの設定/解除] の順に選択するか、F9 キーを押します。
起動プロファイルの編集
Bridge to Kubernetes がクラスターに接続する方法を変更する必要がある場合は、このセクションで、起動プロファイルの設定を編集します。
[Bridge to Kubernetes] ボタンの横にある矢印をクリックし、databaseApi デバッグ プロパティをクリックします。
[Launch Profiles] (起動プロファイル) ダイアログの [Edit profile for Bridge to Kubernetes] (Bridge to Kubernetes のプロファイル編集) リンクをクリックします。
リソースをクリーンアップする
このチュートリアルでサンプル ToDo アプリを使用した場合は、Azure portal を使用してご利用のクラスターからそれを削除できます。 そのリポジトリをローカルに複製した場合は、手動で削除できます。
次のステップ
Bridge to Kubernetes の詳細については、「Bridge to Kubernetes のしくみ」を参照してください。
サポートされている機能と、Bridge to Kubernetes のロードマップについては、「Bridge to Kubernetes のロードマップ」を参照してください。
Visual Studio Code を使用して、ご自分の開発用コンピューターをクラスターに接続する方法については、次の記事を参照してください。