システムが 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 イメージを構築する方法
この事件の発端は秦剛の日記にある一文である。 PC 時代のウェブサイトは Baidu 向けに書かれて...
offshoreracks は 2002 年に設立され、パナマに登録されています。独自のパナマ デー...
タオバオの有料プロモーションにおけるダイヤモンドブース、直通列車などのプロモーション料金は年々増加し...
512M のメモリと年間料金 9.99 ドルの banwagonhost を見逃していませんか?今で...
今年の5月から、HostCatのこの小さなウェブサイトに約10か月間お付き合いいただき、ありがとうご...
まとめ:ウォール・ストリート・ジャーナルの報道によると、米国は米国のクラウド・コンピューティング・プ...
Google は最近、検索への投資を増やしているようです。ここ数か月で、パーソナライズ検索とユニバー...
新浪科技新聞10月23日午後、ITコミュニティサイトCSDNは本日、シリーズA資金調達を完了したと発...
vpsdime、実は皆さんがよくご存知のBackupsyなどと同じブランドです。現在とても有名です!...
2月26日早朝、世界第5位のサーバーメーカーである富士通が、現在人気のクラウドコンピューティングに冷...
今年、Green Radish と Pomegranate アルゴリズムが導入され、SEO 業界は大...
今はホットトピックの時代です。信じられないなら見てみてください。百度のような検索エンジンでさえ、その...
Baidu の最適化に注目しているウェブマスターは、Baidu が最近、ブラックリンクやリンク取引を...
edgevirtは現在、主にエクニクスのマイアミデータセンターでVPSサービスを提供しています。評価...
今年も年末がやってきました。この一年、テクノロジー企業は浮き沈みを経験し、業界は数え切れないほどの変...