チュートリアル: 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 を使用して自分のクラスターに接続する。
  • 開発目的でローカルで実行されているサービスに要求をルーティングする。
  • ローカル コンピューターで実行中のサービスをデバッグする。

前提条件

サービスを設定する

このチュートリアルでは、Bridge to Kubernetes を使用して、任意の Kubernetes クラスター上でシンプルな ToDo サンプル アプリケーションに対して作業を行います。

サンプル アプリケーションには、対話するフロントエンドと、永続的なストレージを提供するバックエンドがあります。

  1. Bash ウィンドウを開き、クラスターが使用可能で準備ができていることを確認します。 次に、コンテキストをそのクラスターに設定します。

    kubectl cluster-info
    kubectl config use-context <kubernetes-cluster>
    
  2. サンプル リポジトリを複製します。

    git clone https://github.com/Azure/Bridge-To-Kubernetes
    
  3. ディレクトリを samples/todo-app に変更して、サンプルの名前空間を作成します。

    kubectl create namespace todo-app
    
  4. 配置マニフェストを適用します。

    kubectl apply -n todo-app -f deployment.yaml
    

    このシンプルな配置では、LoadBalancer 型のサービスを使用してフロントエンドを公開します。 すべてのポッドが実行され、frontend サービスの外部 IP が使用可能になるまで待機します。

    MiniKube でテストする場合は、minikube tunnel を使用して外部 IP を解決します。 AKS または別のクラウドベースの Kubernetes プロバイダーを使用している場合は、外部 IP が自動的に割り当てられます。

  5. 次のコマンドを使用して 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
    

クラスターへの接続

  1. Visual Studio を開きます。 [作業の開始] ウィンドウで、[コードなしで続行] を選択します。

  2. [開く]>[プロジェクト/ソリューション] の順に選択し、samples\todo-app\database-api\databaseApi.csproj プロジェクトを見つけて、[開く] を選択します。

  3. プロジェクトで、次に示すように起動設定で [Bridge to Kubernetes] を選択します。

    Screenshot shows debugging tools with Bridge to Kubernetes selected.

  4. [Bridge to Kubernetes] の横にある開始ボタンを選択します。 [Bridge to Kubernetes のプロファイルの作成] ダイアログ ボックスで、次の値を入力します。

    • お使いのクラスターの名前を選択します。
    • お使いの名前空間として todo-app を選択します。
    • リダイレクトするサービスとして database-api を選択します。
    • ブラウザーを起動するために前に使用したのと同じ URL を選択します。

    Screenshot shows the Create profile for Bridge to Kubernetes dialog box with the values entered.

  5. 分離して実行する場合は、[ルーティング分離を有効にする] を選択します。 ルーティングの分離を有効にした場合、お客様が行った変更の影響を、クラスターを使用している他のユーザーが受けることはありません。 分離モードでは、影響を受ける各サービスのコピーに要求がルーティングされます。 他のトラフィックは通常どおりルーティングされます。 詳細については、「Bridge to Kubernetes のしくみ」を参照してください。

  6. [保存とデバッグ] を選択して変更内容を保存します。

    Screenshot shows the todo service displayed from your debugging, with an entry box for tasks.

    Note

    hosts ファイルに対する昇格された特権を許可するように求めるメッセージが、EndpointManager によって表示されます。

    開発用コンピューターがクラスターに接続されます。 database-api サービスに接続中であることが、ステータス バーに示されます。

    Screenshot shows the status bar that verifies that your development computer is connected.

  7. タスクを入力し、それらを完了としてマークしてみてください。

  8. [デバッグ]>[デバッグの停止] を選択してデバッグを停止します。 この操作をショートカットで実行するには、Shift+F5 キーを押すか、ツール バーの [デバッグの停止] ボタンを使用します。

Bridge to Kubernetes によって、database-api サービスのすべてのトラフィックがリダイレクトされます。 開発用コンピューター上のご利用のアプリケーションのバージョンにリダイレクトされます。 Bridge to Kubernetes ではまた、アプリケーションからのすべての送信トラフィックが、Kubernetes クラスターにルーティングされます。

Note

既定では、デバッグ タスクを停止すると、開発用コンピューターも Kubernetes クラスターから切断されます。 この動作を変更するには、[ツール]>[オプション] の順に選択して、[Kubernetes Debugging Tools] を選択します。 [デバッグ後に切断する][False] に設定します。

Screenshot shows the Disconnect After Debugging value in the Kubernetes Debugging Tools.

この設定を更新した後は、デバッグを停止および開始しても、開発用コンピューターは接続されたままとなります。 開発用コンピューターをクラスターから切断するには、ツール バーの [切断] ボタンをクリックします。

ブレークポイントの設定

このセクションでは、サービスにブレークポイントを設定します。

  1. [ソリューション エクスプローラー] で、[MongoHelper.cs] を選択してエディターでファイルを開きます。 ソリューション エクスプローラーが表示されない場合は、[表示]>[ソリューション エクスプローラー] の順に選択します。

  2. CreateTask メソッド本体の最初の行にカーソルを設定します。 次に、[デバッグ]>[ブレークポイントの設定/解除] の順に選択してブレークポイントを設定します。

    Screenshot shows the CreateTask method with a breakpoint set in the first line.

    このアクションのショートカットは、F9 キーです。

  3. 前のセクションで行ったように、[Bridge to Kubernetes] の横にある [開始] ボタンを選択します。 デバッグは前に入力した値から始まります。

  4. 開いているブラウザーで、ToDo に値を入力し、Enter キーを押します。 入力したブレークポイントにコードが到達します。 実際のデバッグ タスクを実行しながら、デバッグ オプションを使用してコードをステップ実行することができます。

  5. [デバッグ]>[デバッグの停止] を選択してデバッグを停止します。

  6. ブレークポイントを削除するには、その行を選択してから、[デバッグ]>[ブレークポイントの設定/解除] の順に選択するか、F9 キーを押します。

起動プロファイルの編集

Bridge to Kubernetes がクラスターに接続する方法を変更する必要がある場合は、このセクションで、起動プロファイルの設定を編集します。

  1. [Bridge to Kubernetes] ボタンの横にある矢印をクリックし、databaseApi デバッグ プロパティをクリックします。 Screenshot shows the Bridge to Kubernetes drop down menu.

  2. [Launch Profiles] (起動プロファイル) ダイアログの [Edit profile for Bridge to Kubernetes] (Bridge to Kubernetes のプロファイル編集) リンクをクリックします。 Screenshot shows Launch Profiles dialog with a link to edit the Bridge to Kubernetes profile

リソースをクリーンアップする

このチュートリアルでサンプル ToDo アプリを使用した場合は、Azure portal を使用してご利用のクラスターからそれを削除できます。 そのリポジトリをローカルに複製した場合は、手動で削除できます。

次のステップ

Bridge to Kubernetes の詳細については、「Bridge to Kubernetes のしくみ」を参照してください。

サポートされている機能と、Bridge to Kubernetes のロードマップについては、「Bridge to Kubernetes のロードマップ」を参照してください。

Visual Studio Code を使用して、ご自分の開発用コンピューターをクラスターに接続する方法については、次の記事を参照してください。