Bridge to Kubernetes を使用するUse Bridge to Kubernetes

Bridge to Kubernetes を使用すると、Kubernetes クラスターと、開発用コンピューターで実行されているコードの間で、トラフィックをリダイレクトすることができます。You can use Bridge to Kubernetes to redirect traffic between your Kubernetes cluster and code running on your development computer. また、このガイドでは、Kubernetes クラスター上の複数のマイクロサービスを含む大規模なサンプル アプリケーションをデプロイするためのスクリプトも提供します。This guide also provides a script for deploying a large sample application with multiple microservices on a Kubernetes cluster.

開始する前にBefore you begin

このガイドでは、自転車共有サンプル アプリケーションを使用して、開発用コンピューターを Kubernetes クラスターに接続する方法を示します。This guide uses the Bike Sharing sample application to demonstrate connecting your development computer to a Kubernetes cluster. Kubernetes クラスター上で実行されている独自のアプリケーションが既にある場合でも、以下の手順に従い、独自のサービスの名前を使用できます。If you already have your own application running on a Kubernetes cluster, you can still follow the steps below and use the names of your own services.

前提条件Prerequisites

また、.NET コンソール アプリケーションの場合は、Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets NuGet パッケージをインストールします。Also, for .NET console applications, install the Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets NuGet Package.

Kubernetes クラスターを作成するCreate a Kubernetes cluster

サポートされているリージョンに AKS クラスターを作成します。Create an AKS cluster in a supported region. 下記のコマンドを使用すると、MyResourceGroup というリソース グループと MyAKS という AKS クラスターが作成されます。The below commands create a resource group called MyResourceGroup and an AKS cluster called MyAKS.

az group create \
    --name MyResourceGroup \
    --location eastus

az aks create \
    --resource-group MyResourceGroup \
    --name MyAKS \
    --location eastus \
    --node-count 3 \
    --generate-ssh-keys

サンプル アプリケーションをインストールするInstall the sample application

提供されているスクリプトを使用して、サンプル アプリケーションをクラスターにインストールします。Install the sample application on your cluster using the provided script. Azure Cloud Shell を使用してこのスクリプトを実行できます。You can run this script using the Azure Cloud Shell.

git clone https://github.com/Microsoft/mindaro
cd mindaro
chmod +x ./bridge-quickstart.sh
./bridge-quickstart.sh -g MyResourceGroup -n MyAKS

パブリック URL を開いて、クラスターで実行されているサンプル アプリケーションに移動します。この URL は、インストール スクリプトの出力に表示されます。Navigate to the sample application running your cluster by opening its public URL, which is displayed in the output of the installation script.

$ ./bridge-quickstart.sh -g MyResourceGroup -n MyAKS
Defaulting Dev spaces repository root to current directory : ~/mindaro
Setting the Kube context
...
To try out the app, open the url:
bikeapp.bikesharingweb.EXTERNAL_IP.nip.io

上の例では、パブリック URL は bikeapp.bikesharingweb.EXTERNAL_IP.nip.io です。In the above sample, the public URL is bikeapp.bikesharingweb.EXTERNAL_IP.nip.io.

クラスターに接続してサービスをデバッグするConnect to your cluster and debug a service

開発用コンピューターで、az aks get-credentials を使用して、Kubernetes CLI をダウンロードし、Kubernetes クラスターに接続するように構成します。On your development computer, download and configure the Kubernetes CLI to connect to your Kubernetes cluster using az aks get-credentials.

az aks get-credentials --resource-group MyResourceGroup --name MyAKS

GitHub の Bike Sharing (自転車共有) サンプル アプリケーション リポジトリから、緑色の [Code](コード) ボタンのドロップダウンを使用し、 [Open in Visual Studio](Visual Studio で開く) を選択し、リポジトリをローカルに複製して、Visual Studio でそのフォルダーを開きます。From the Bike Sharing sample application repo in GitHub, use the dropdown on the green Code button and choose Open in Visual Studio to clone the repo locally and open the folder in Visual Studio. 次に、 [ファイル] > [プロジェクトを開く] を使用して、samples/BikeSharingApp/ReservationEngine フォルダー内の app.csproj プロジェクトを開きます。Then, use File > Open Project to open the app.csproj project in the samples/BikeSharingApp/ReservationEngine folder.

次の図のように、プロジェクトで起動設定のドロップダウンから [Bridge to Kubernetes] を選択します。In your project, select Bridge to Kubernetes from the launch settings dropdown as shown below.

Bridge to Kubernetes を選択する

[Bridge to Kubernetes] の横にある開始ボタンをクリックします。Click on the start button next to Bridge to Kubernetes. [Create profile for Bridge to Kubernetes](Bridge to Kubernetes のプロファイルの作成) ダイアログで、次の手順を実行します。In the Create profile for Bridge to Kubernetes dialog:

  • サブスクリプションを選択します。Select your subscription.
  • クラスターとして MyAKS を選択します。Select MyAKS for your cluster.
  • 名前空間として bikeapp を選択します。Select bikeapp for your namespace.
  • リダイレクトするサービスとして reservationengine を選択します。Select reservationengine for the service to redirect.
  • 起動プロファイルとして app を選択します。Select app for the launch profile.
  • ブラウザーを起動する URL として http://bikeapp.bikesharingweb.EXTERNAL_IP.nip.io を選択します。Select http://bikeapp.bikesharingweb.EXTERNAL_IP.nip.io for the URL to launch your browser.

Bridge to Kubernetes クラスターを選択する

重要

リダイレクトできるのは、ポッドが 1 つのサービスだけです。You can only redirect services that have a single pod.

分離して実行するかどうかを選択します。つまり、変更しても、クラスターを使用している他のユーザーは影響を受けません。Choose whether or not you want to run isolated, meaning that others who are using the cluster won't be affected by your changes. 影響を受ける各サービスのコピーに要求をルーティングし、他のすべてのトラフィックは通常どおりルーティングすることで、この分離モードは達成されます。This isolation mode is accomplished by routing your requests to your copy of each affected service, but routing all other traffic normally. この実行方法の詳細については、「Bridge to Kubernetes のしくみ」を参照してください。More explanation on how this is done can be found at How Bridge to Kubernetes Works.

[Save and start debugging](保存してデバッグを開始する) をクリックします。Click Save and start debugging.

reservationengine サービスに対する Kubernetes クラスター内のすべてのトラフィックが、開発用コンピューターで実行されているアプリケーションのバージョンにリダイレクトされます。All traffic in the Kubernetes cluster is redirected for the reservationengine service to the version of your application running in your development computer. Bridge to Kubernetes ではまた、アプリケーションからのすべての送信トラフィックが、Kubernetes クラスターにルーティングされます。Bridge to Kubernetes also routes all outbound traffic from the application back to your Kubernetes cluster.

注意

EndpointManager が管理者特権で実行して hosts ファイルを変更することを許可するように求められます。You will be prompted to allow the EndpointManager to run elevated and modify your hosts file.

reservationengine サービスに接続していることがステータス バーに表示されたら、開発用コンピューターに接続されています。Your development computer is connected when the status bar shows you are connected to the reservationengine service.

接続された開発用コンピューター

注意

以降の起動時には、 [Create profile for Bridge to Kubernetes](Bridge to Kubernetes のプロファイルの作成) ダイアログは表示されません。On subsequent launches, you will not be prompted with the Create profile for Bridge to Kubernetes dialog. これらの設定は、プロジェクトのプロパティの [デバッグ] で更新します。You update these settings in the Debug in the project properties.

開発用コンピューターが接続されると、置き換えているサービスのトラフィックの、開発用コンピューターに対するリダイレクトが開始されます。Once your development computer is connected, traffic starts redirecting to your development computer for the service you are replacing.

ブレーク ポイントを設定するSet a break point

BikesHelper.cs を開き、26 行目のどこかをクリックして、カーソルをそこに置きます。Open BikesHelper.cs and click somewhere on line 26 to put your cursor there. F9 キーを押すか、 [デバッグ] > [ブレークポイントの設定/解除] の順に選択してブレークポイントを設定します。Set a breakpoint by hitting F9 or selecting Debug > Toggle Breakpoint.

パブリック URL を開いて、サンプル アプリケーションに移動します。Navigate to the sample application by opening the public URL. ユーザーとして Aurelia Briggs (顧客) を選択してから、借りる自転車を選択します。Select Aurelia Briggs (customer) as the user, then select a bike to rent. [Rent Bike](自転車をレンタルする) を選択します。Choose Rent Bike. Visual Studio に戻って、26 行目が強調表示されていることを確認します。Return to Visual Studio and observe line 26 is highlighted. 設定したブレークポイントによって、26 行目でサービスが一時停止されました。The breakpoint you set has paused the service at line 26. サービスを再開するには、F5 キーを押すか、 [デバッグ] > [続行] の順にクリックします。To resume the service, hit F5 or click Debug > Continue. ブラウザーに戻り、自転車をレンタルしたことがページに表示されることを確認します。Return to your browser and verify the page shows you have rented the bike.

BikesHelper.cs の 26 行目にカーソルを置いて F9 キーを押すことで、ブレークポイントを削除します。Remove the breakpoint by putting your cursor on line 26 in BikesHelper.cs and hitting F9.

注意

既定では、デバッグ タスクを停止すると、開発用コンピューターも Kubernetes クラスターから切断されます。By default, stopping the debugging task also disconnects your development computer from your Kubernetes cluster. デバッグ オプションの [Kubernetes Debugging Tools](Kubernetes デバッグ ツール) セクションで [Disconnect after debugging](デバッグ後に切断する)false に変更することで、この動作を変更できます。You can change this behavior by changing Disconnect after debugging to false in the Kubernetes Debugging Tools section of the debugging options. この設定を更新した後は、デバッグを停止して開始するとき、開発用コンピューターは接続されたままになります。After updating this setting, your development computer will remain connected when you stop and start debugging. 開発用コンピューターをクラスターから切断するには、ツール バーの [切断] ボタンをクリックします。To disconnect your development computer from you cluster click on the Disconnect button on the toolbar.

追加構成Additional configuration

Bridge to Kubernetes では、ルーティング トラフィックを処理し、追加の構成なしで環境変数をレプリケートできます。Bridge to Kubernetes can handle routing traffic and replicating environment variables without any additional configuration. ConfigMap ファイルなど、Kubernetes クラスターのコンテナーにマウントされているファイルをダウンロードする必要がある場合、KubernetesLocalProcessConfig.yaml を作成し、開発用コンピューターにそれらのファイルをダウンロードできます。If you need to download any files that are mounted to the container in your Kubernetes cluster, such as a ConfigMap file, you can create a KubernetesLocalProcessConfig.yaml to download those files to your development computer. 詳細については、Bridge to Kubernetes 向けの追加の構成に KubernetesLocalProcessConfig.yaml を使用する方法に関するページを参照してください。For more information, see Using KubernetesLocalProcessConfig.yaml for additional configuration with for Bridge to Kubernetes.

ログ記録と診断の使用Using logging and diagnostics

診断ログは、開発用コンピューターの TEMP ディレクトリの Bridge to Kubernetes ディレクトリにあります。You can find the diagnostic logs in Bridge to Kubernetes directory in your development computer's TEMP directory.

クラスターからサンプル アプリケーションを削除するRemove the sample application from your cluster

クラスターからサンプル アプリケーションを削除するには、提供されているスクリプトを使用します。Use the provided script to remove the sample application from your cluster.

./bridge-quickstart.sh -c -g MyResourceGroup -n MyAKS

次のステップNext steps

Bridge to Kubernetes のしくみについて説明します。Learn how Bridge to Kubernetes works.