サンプルで Bridge to Kubernetes を使用する
手記
Bridge to Kubernetes は、2025 年 4 月 30 日に廃止されます。 提供終了とオープンソースの代替方法の詳細については、GitHub の問題を参照してください。
このサンプルでは、Bridge to Kubernetes を使用して、任意の Kubernetes クラスターで単純な TODO アプリケーションのマイクロサービス バージョンを開発する方法を示します。 このサンプルは、Visual Studio Code を使用して、TodoMVCによって提供されるコードから調整されています。 この例では、MiniKube を使用してアプリケーションをホストしますが、これらの手順は任意の Kubernetes クラスターで動作する必要があります。
TODO アプリケーション のサンプルは、フロントエンドと、永続的なストレージを提供するバックエンドで構成されています。 この拡張サンプルでは、統計コンポーネントを追加し、アプリケーションを多数のマイクロサービスに分割します。具体的には次のとおりです。
- フロントエンドはデータベース API を呼び出して TODO 項目を永続化および更新します。
- database-api サービスは、TODO 項目を保持するために Mongo データベースに依存します。
- フロントエンドは、RabbitMQ キューにイベントの追加、完了、および削除を書き込みます。
- 統計ワーカーは RabbitMQ キューからイベントを受信し、Redis キャッシュを更新します。
- 統計 API は、表示するフロントエンドのキャッシュされた統計を公開します。
全体として、この拡張 TODO アプリケーションは、相互に関連する 6 つのコンポーネントで構成されます。
前提 条件
- 任意の Kubernetes クラスター、または Chocolatey パッケージマネージャー を使用して MiniKube をインストールする
- Windows 10 の場合は、Hyper-V
- Kubectl がインストールされ、選択したコマンド ライン環境のパスに設定されています
- Bridge to Kubernetes Visual Studio Code 拡張機能
MiniKube のインストール
Bridge to Kubernetes で任意の Kubernetes プロバイダーを使用できます。 この記事では、MiniKube を使用します。 MiniKube は、ローカル コンピューターで Kubernetes をホストできる軽量の Kubernetes プロバイダーです。 のインストール手順に従って、Windows 10、Linux、または macOS に MiniKube をインストールします。
Windows 10 で最適な結果を得るには、Hyper-V VM マネージャーを使用し、仮想スイッチを作成する必要があります。
インストールが完了したら、MiniKube を起動し、Hyper-V を使用するように指定し、プライマリ仮想スイッチの名前を指定します。 このコマンドは、管理者特権でコマンド プロンプトから実行する必要があります。
minikube start --vm-driver hyperv --hyperv-virtual-switch "Primary Virtual Switch"
アプリケーションをデプロイする
Bridge to Kubernetes リポジトリをクローンし、現在の作業フォルダーを todo-app にしてコマンド ウィンドウを開きます。
サンプルの名前空間を作成します。
kubectl create namespace todo-app
次に、配置マニフェストを適用します。
kubectl apply -n todo-app -f deployment.yaml
これは、LoadBalancer
型のサービスを使用してフロントエンドを公開する単純なデプロイです。 すべてのポッドが実行され、frontend
サービスの外部 IP が使用可能になるまで待ちます。
MiniKube でテストする場合は、minikube tunnel
を使用して外部 IP を解決する必要があります。
kubectl get services -n todo-app
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
frontend LoadBalancer 10.0.49.177 127.0.0.1 80:30145/TCP 18h
外部 IP とローカル ポート (PORT(S) 列の最初の番号) を使用して、アプリケーションを参照します。
http://{external-ip}:{local-port}
ブラウザーで実行中のアプリをテストします。 todo アイテムを追加、完了、削除すると、統計ページが予想されるメトリックで更新されます。
stats-api サービスをデバッグする
これで、Bridge to Kubernetes 拡張機能を使用して、Kubernetes クラスターからのトラフィックをローカルで実行されているバージョンの stats-api にリダイレクトする方法を示すことができます。
cd stats-api/
VS Code で stats-api のソース コードを開きます。
code .
VS Code が起動したら、VS Code の左側のサイドバーから Kubernetes ペインを開き、MiniKube クラスター内の todo-app 名前空間を選択します。 todo-app ノードを右クリックし、[名前空間を使用] を選択します。
を選択する
ターミナル ウィンドウで npm install
を実行して依存関係をインストールします (Ctrl + ~)。
npm install
次に、server.js
の 17 行目にブレークポイントを配置します。
コマンド パレットを開き(Macの場合は Ctrl+Shift+P または Cmd+Shift+P) を開き、「Bridge to Kubernetes」と入力します。 [Bridge to Kubernetes: 構成] オプションを選択します。
を構成する
置き換えるサービス、開発用コンピューターから転送するポート、使用する起動タスクを構成するように求められます。
stats-api
サービスを選択します。
サービスを選択すると、ローカル アプリケーションの TCP ポートを入力するように求められます。 この例では、「3001」と入力します。
起動タスクとして [スクリプトの実行: 開発] を選択します。
を選択する
分離または分離しないを実行するオプションがあります。 分離して実行する場合、要求のみがローカル プロセスにルーティングされます。他の開発者は、影響を受けずにクラスターを使用できます。 分離して実行しない場合、すべてのトラフィックがローカル プロセスにリダイレクトされます。 このオプションの詳細については、「分離で開発するためのルーティング機能の使用」を参照してください。 この例では、非分離を使用してみましょう。
を選択する
手記
VS Code では、EndpointManager が管理者特権で実行され、hosts ファイルを変更することを許可するように求められます。
Bridge to Kubernetes デバッグ プロファイルが正常に構成されました。
左側の [デバッグ] アイコンを選択し、[スクリプト 実行: Kubernetesを使用した開発] を選択します。 [スクリプトの実行: Kubernetes での開発] の横にある開始ボタンをクリックします。
VS Code ステータス バーがオレンジ色になり、Kubernetes 拡張機能に接続済みであることが示されると、開発用コンピューターが接続されます。 開発用コンピューターが接続されると、置き換える stats-api の開発用コンピューターへのトラフィックのリダイレクトが開始されます。
todo-app のフロントエンド エントリ ポイントに移動します。 minikube の場合は、127.0.0.1
を使用します。 アプリのローカル エンドポイント URL にアクセスするには、ステータス バーの Kubernetes メニューを開き、エンドポイント エントリを選択します。
[stats] リンクを選んで、stats-api に要求を行います。
クラスターで最初に開始されたトラフィックが、ブレークポイントがトリガーされたローカルで実行されているバージョン (クラスターの外部) にリダイレクトされていることに注意してください。
再生を選んで、引き続き要求を透過的に完了させます。
この例は、AKS 以外のクラスターで Bridge to Kubernetes を使用する方法の 1 つの図にすぎません。 次は自分のプロジェクトで試してみてください。
クリーンアップする
このサンプルによって生成された資産をクリーンアップするには、次を実行します。
kubectl delete namespace todo-app
次の手順
Bridge to Kubernetes を使用して Azure Kubernetes Service (AKS) にアプリをデプロイすることもできます。 AKS で Bridge to Kubernetes を使用する を参照してください