|
| 1 | +--- |
| 2 | +title: ローカルでのサービス開発・デバッグ |
| 3 | +content_type: task |
| 4 | +--- |
| 5 | + |
| 6 | +<!-- overview --> |
| 7 | + |
| 8 | +Kubernetesアプリケーションは通常、複数の独立したサービスから構成され、それぞれが独自のコンテナで動作しています。これらのサービスをリモートのKubernetesクラスター上で開発・デバッグするには、[get a shell on a running container](/docs/task/debug-application-cluster/get-shell-running-container/)してリモートシェル内でツールを実行しなければならず面倒な場合があります。 |
| 9 | + |
| 10 | +`telepresence`は、リモートKubernetesクラスターにサービスをプロキシーしながら、ローカルでサービスを開発・デバッグするプロセスを容易にするためのツールです。 |
| 11 | +`telepresence` を使用すると、デバッガーやIDEなどのカスタムツールをローカルサービスで使用でき、ConfigMapやsecret、リモートクラスター上で動作しているサービスへのフルアクセスをサービスに提供します。 |
| 12 | + |
| 13 | +このドキュメントでは、リモートクラスタ上で動作しているサービスをローカルで開発・デバッグするために`telepresence`を使用する方法を説明します。 |
| 14 | + |
| 15 | +## {{% heading "prerequisites" %}} |
| 16 | + |
| 17 | +* Kubernetesクラスターがインストールされていること |
| 18 | +* クラスターと通信するために `kubectl` が設定されていること |
| 19 | +* [telepresence](https://www.telepresence.io/reference/install)がインストールされていること |
| 20 | + |
| 21 | +<!-- steps --> |
| 22 | + |
| 23 | +## リモートクラスター上でシェルの取得 |
| 24 | + |
| 25 | +ターミナルを開いて、引数なしで`telepresence`を実行すると、`telepresence`シェルが表示されます。 |
| 26 | +このシェルはローカルで動作し、ローカルのファイルシステムに完全にアクセスすることができます。 |
| 27 | + |
| 28 | +この`telepresence`シェルは様々な方法で使用することができます。 |
| 29 | +例えば、ラップトップでシェルスクリプトを書いて、それをシェルから直接リアルタイムで実行することができます。これはリモートシェルでもできますが、好みのコードエディターが使えないかもしれませんし、コンテナが終了するとスクリプトは削除されます。 |
| 30 | + |
| 31 | +終了してシェルを閉じるには`exit`と入力してください。 |
| 32 | + |
| 33 | +## 既存サービスの開発・デバッグ |
| 34 | + |
| 35 | +Kubernetes上でアプリケーションを開発する場合、通常は1つのサービスをプログラミングまたはデバッグすることになります。 |
| 36 | +そのサービスは、テストやデバッグのために他のサービスへのアクセスを必要とする場合があります。 |
| 37 | +継続的なデプロイメントパイプラインを使用することも一つの選択肢ですが、最速のデプロイメントパイプラインでさえ、プログラムやデバッグサイクルに遅延が発生します。 |
| 38 | + |
| 39 | +既存のデプロイメントとtelepresenceプロキシーを交換するには、`--swap-deployment` オプションを使用します。 |
| 40 | +スワップすることで、ローカルでサービスを実行し、リモートのKubernetesクラスターに接続することができます。 |
| 41 | +リモートクラスター内のサービスは、ローカルで実行されているインスタンスにアクセスできるようになりました。 |
| 42 | + |
| 43 | +telepresenceを「--swap-deployment」で実行するには、次のように入力します。 |
| 44 | + |
| 45 | +`telepresence --swap-deployment $DEPLOYMENT_NAME` |
| 46 | + |
| 47 | +ここで、$DEPLOYMENT_NAMEは既存のDeploymentの名前です。 |
| 48 | + |
| 49 | +このコマンドを実行すると、シェルが起動します。そのシェルで、サービスを起動します。 |
| 50 | +そして、ローカルでソースコードの編集を行い、保存すると、すぐに変更が反映されるのを確認できます。 |
| 51 | +また、デバッガーやその他のローカルな開発ツールでサービスを実行することもできます。 |
| 52 | + |
| 53 | +## {{% heading "whatsnext" %}} |
| 54 | + |
| 55 | +もしハンズオンのチュートリアルに興味があるなら、Google Kubernetes Engine上でGuestbookアプリケーションをローカルに開発する手順を説明した[こちらのチュートリアル](https://cloud.google.com/community/tutorials/developing-services-with-k8s)をチェックしてみてください。 |
| 56 | + |
| 57 | +telepresenceには、状況に応じて[numerous proxying options](https://www.telepresence.io/reference/methods)があります。 |
| 58 | + |
| 59 | +さらに詳しい情報は、[telepresence website](https://www.telepresence.io)をご覧ください。 |
| 60 | + |
0 commit comments