システムが k8s クラスターにデプロイされると、開発およびテスト モードもある程度変更されます。以下は、適切に対処しないと効率に直接影響する一般的な問題です。
ほとんどの開発者が上記の問題に遭遇したことがあると思いますが、一般的な方法は、サービスをテストのために k8s にデプロイすることです。この方法はシンプルですが、システムはまだ単体テスト段階であり、バグが多く発生するため、非常に非効率的です。すべての変更を再リリースする必要があり、システムのパッケージ化と展開に時間がかかります。 これは、上記の問題を解決するのに役立つ Alibaba のオープンソース k8s ツールです。 KtConnect の紹介写真 KtConnect (Kt は Kubernetes Toolkit クラスター ツールキットの略) は Alibaba によってオープンソース化されています。これは、ローカルテストと共同デバッグの効率を向上させるための、k8s 環境に基づく小さなツールです。ローカル クラスターとテスト環境クラスター間の双方向の相互接続機能を提供します。 アドレス: https://github.com/alibaba/kt-connect 特性
クイック体験このドキュメントでは、KtConnect を使用してクラスター内のサービスにローカルで直接アクセスし、クラスター内の指定されたサービスに対する要求をローカル サーバーに転送するプロセスを簡単な例を使用して簡単に説明します。 インストール
写真 サンプルアプリケーションの展開結果を表示しやすくするために、まずクラスターに Tomcat サービスをデプロイし、デフォルトのホームページを作成します。 写真 Pod とサービスの IP アドレスを照会します。 写真 Tomcat インスタンスの Pod IP は 172.18.25.22 であり、サービスの Cluster IP は 192.168.220.59 であることがわかります。後で使用するために書き留めておいてください。 クラスターネットワークへの接続ktctl connect コマンドを使用して、ローカル コンピューターからクラスターへのネットワーク チャネルを確立します。このコマンドには管理者権限が必要であることに注意してください。 写真 クラスターリソースへのローカルアクセス上記のログが出力された後、ブラウザまたは curl コマンドを使用して確認できるクラスター リソースにローカルで直接アクセスできます。 写真 クラスタトラフィックをローカルに転送するクラスターがローカル サービスにアクセスするシナリオを確認するために、Tomcat コンテナーをローカルで起動し、異なるコンテンツを含むホームページも作成します。 写真 KtConnect には、使用シナリオが若干異なる、クラスター トラフィックをローカル サービスにリダイレクトできる 2 つのコマンドが用意されています。
交換コマンドk8s クラスター内の指定されたサービスにアクセスするためのすべての要求をインターセプトし、指定されたローカル ポートに転送します。通常、現在のサービスがk8sクラスタにデプロイされておらず、シナリオを迅速に検証したい場合に、テスト環境でのデバッグに使用されます。 写真 ktctl exchange コマンドを使用して、以前にクラスターにデプロイされたすべての Tomcat サービス トラフィックをローカル ポート 8080 にリダイレクトします。 写真 出力結果を表示するには、例の冒頭でクラスターにデプロイされた Tomcat サービスにローカルまたはクラスター内でアクセスします。
写真 ご覧のとおり、クラスター内の Tomcat サービスへのアクセス要求は、ローカルの Tomcat インスタンスに転送されます。
メッシュコマンドクラスター内の指定されたサービスにアクセスするためのいくつかの要求をインターセプトし、指定されたローカル ポートに転送します。これは通常、他の開発者のテスト環境の通常の使用に影響を与えずに、呼び出しチェーンの途中でサービスをデバッグする必要があるチームコラボレーションで使用されます。 写真 Mesh コマンドは、HTTP リクエストの自動オンデマンド ルーティングを直接実装できます。結果の検証を容易にするために、まず ktctl exchange コマンドを停止します。次に、ktctl mesh コマンドを使用してプロキシ Pod を作成します。 写真 上記の赤でマークされた部分を見ると、特定のヘッダー値が出力されています。この時点で、クラスター内の Tomcat サービスに直接アクセスすると、トラフィックは正常にクラスターのサービス インスタンスに入ります。リクエストに Mesh コマンドによって出力されたヘッダーが含まれている場合、トラフィックはローカル サービス インスタンスに転送されます。 写真 実際のテストでは、ModHeader プラグインを使用して、ブラウザーによって開始された HTTP リクエストにカスタム ヘッダーを自動的に追加できます。 写真 写真 他の開発者にローカルサービスを提供する開発プロセス中に、KtConnect を使用してローカル サービスをクラスターにすばやく「デプロイ」し、他の開発者やクラスター内の他のサービスが一時的に使用できるように一時サービスに変換することもできます。
プレビューコマンドローカルで実行されているサービス インスタンスをクラスターに登録します。これは主に、共同デバッグやプレビューのために、ローカルで開発中のサービスを他の開発者に提供するために使用されます。 次に、ktctl preview コマンドを使用して、ローカル ポート 8080 で実行されているサービスをテスト クラスターに登録し、tomcat-v2 という名前を付けます。 写真 登録が成功すると、クラスタ内のサービスはtomcat-v2名を介してローカルに登録されたサービスインスタンスにアクセスできるようになります。 写真 他の開発者は、ktctl connect を実行した後、tomcat-v2 サービス名を介してサービスのリアルタイム ステータスを直接プレビューすることもできます。 写真 前進コマンドクラスター内の任意の IP またはサービスを指定されたローカル ポートにマップします。テスト中に localhost アドレスを使用してクラスター内の特定の IP アドレスまたはサービスに簡単にアクセスするのに使用されます。一般的なシナリオは、プレビュー コマンドを通じて他の開発者が登録したローカル サービスにアクセスすることです。 写真 上の図に示すように、開発者Aが前述のプレビューコマンドを実行した後、開発者Bはktctl forwardコマンドを使用してローカルポート9090にマップし、 写真 上記のコマンドを実行した後、開発者はlocalhsot:9090にアクセスして実行することができます。 写真 forward コマンドは kubectl port-forward コマンドに似ていると思いますか?実際、このコマンドは、ネットワークの切断後に自動的に再接続する機能を追加するだけです。 |
<<: トマゴ・アルミニウムがクラウドへの取り組みで方針を変えた理由
>>: GitHub Actions を使用して Docker イメージを構築する方法
インターネットで何年も活動した後、私はそれなりの成功を収めましたが、それはほんの一瞬の成功に過ぎませ...
iPhone のセキュリティに関して言えば、一つは電話機自体のセキュリティであり、もう一つは App...
最近、 WeChatの公式パブリックアカウントは、ミニプログラム開発者を奨励しサポートするために、2...
conoha.jpでは昨年の2,000円プレゼント企画は終了しました。公式スタッフがホストキャット専...
Hostyun(10年間運営している元祖ホストシェアリング組織)は本日、日本のデータセンターを追加し...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス最近、国内の医療機器メー...
[[382681]] 「クラウド」という概念は私たちの生活の隅々まで浸透しています。 2021年の春...
最近、SEOグループのみんなが、光年フォーラムは20日に閉鎖されると言っています。ため息をつくしかあ...
Baidu Webmaster Platform の情報エリアに注目すると、Baidu が Web ...
UCloud が 2012 年に設立されて以来、仮想ネットワークは常に IaaS 製品のコア コンポ...
v.ps は、最大 40% オフ、年間支払いで 30% オフ、2 年支払いで 35% オフ、3 年支...
このタイトルを見ると、これはナンセンスだと言うかもしれません。もちろん、同じページでもキーワードによ...
「Baidu Knows」は皆さんもよくご存知だと思います。さまざまな目的でプロモーションを行うため...
過去2年間で、ユーザーは次々と「無料」に別れを告げてきました。支払い残高の引き出しには料金がかかり、...
1月29日、金緑シンクタンクが発表した最新データによると、昨年11月、ほとんどのユーザー生成コンテン...