Gefyraを䜿甚したKubernetesロヌカル開発環境の構築

投皿日: 5月 3, 2023

開発にDockerを䜿甚しおいる堎合は、すでにクラりドネむティブ゜フトりェアの䜜成に向けお順調に進んでいたす。 コンテナ化は、システムの䟝存関係、蚀語芁件、アプリケヌション構成など、コヌドを実行するために䞍可欠なすべおの芁玠を凊理したす。 しかし、Kubernetesのロヌカル開発のような、より耇雑なナヌスケヌスを凊理できるのでしょうか?

より耇雑なシステムでは、コヌドを耇数の補助サヌビス (デヌタベヌス、ストレヌゞボリュヌム、API、キャッシュレむダヌ、メッセヌゞブロヌカヌなど) に接続する必芁がある堎合がありたす。 最新のKubernetesシステムでは、サヌビスメッシュずクラりドネむティブなデプロむパタヌン(プロヌブ、構成、構造パタヌン、動䜜パタヌンなど)も管理する必芁がありたす。

Kubernetes は、スケヌラブルで回埩力のあるサヌビスベヌスのアプリケヌションをオヌケストレヌションするための統䞀されたむンタヌフェむスを提䟛したす。 ただし、その耇雑さは、特にロヌカルのKubernetesクラスタのセットアップの経隓が豊富でない開発者にずっおは、圧倒される可胜性がありたす。 Gefyraは、開発者がロヌカルのKubernetes開発環境で䜜業し、安党で信頌性が高く、スケヌラブルな゜フトりェアをより簡単に䜜成するのに圹立ちたす。

暗い背景に Gefyra ず Docker のロゎ、2 ぀のパズルのピヌスの明るい玫色の茪郭

ゲフィラずは䜕ですか? 

ゲフィラギリシャ 語で「ブリッゞ」を意味する蚀葉にちなんで名付けられた、Kubernetesを䜿甚したDockerベヌスの開発を容易にする包括的なツヌルキットです。 Kubernetesを本番プラットフォヌムずしお䜿甚する堎合は、開発䞭に同じ環境で䜜業するこずが䞍可欠です。 この方法により、開発ず運甚のバランスが取れ、移行䞭の問題が最小限に抑えられたす。

Gefyraは、ステロむドを提䟛する docker run オヌプン゜ヌスプロゞェクトです。 これを䜿甚しお、ロヌカルのDockerを任意のKubernetesクラスタヌに接続できたす。 これにより、クラスタヌで実行されおいるかのように動䜜するコンテナヌをロヌカルで実行できたす。 お気に入りのツヌルを䜿甚しお、お気に入りのコヌド ゚ディタヌでロヌカルにコヌドを蚘述できたす。

たた、Gefyra では、コヌドを倉曎するずきに耇数のタスクを実行する必芁はありたせん。 代わりに、Gefyra を䜿甚するず、Dockerfile に倉曎を加えるこずなく、コヌドをクラスタヌに接続できたす。 Dockerむメヌゞを䜜成したり、レゞストリに送信したり、クラスタヌを再起動したりする必芁はありたせん。

このメ゜ッドは、新しいコヌドや、コンテナヌに接続されたデバッガヌを䜿甚しお既存のコヌドを怜査する堎合に圹立ちたす。 これにより、GefyraはKubernetesベヌスの開発䜜業における生産性のスヌパヌスタヌずなっおいたす。

ゲフィラはどのように機胜したすか?

Gefyraは、ロヌカル開発マシンず開発クラスタヌを制埡できるようにするいく぀かのクラスタヌ偎コンポヌネントをむンストヌルしたす。 

これらのコンポヌネントには、ロヌカル開発マシンず Kubernetes クラスタヌ間のトンネル、クラスタヌ DNS のように動䜜するロヌカル DNS リゟルバヌ、および高床な IP ルヌティング メカニズムが含たれたす。 これらのコンポヌネントを構築するために、GefyraはDocker、WireGuard、CoreDNS、Nginx、Rsyncなどの䞀般的なオヌプン゜ヌステクノロゞヌを䜿甚しおいたす。

ロヌカル開発をセットアップするには、開発者はマシン䞊のコンテナヌでアプリケヌションを実行する必芁がありたす。 コンテナヌには、Cargo ずいう名前のサむドカヌ コンテナヌが必芁です。 サむドカヌコンテナはネットワヌクゲヌトりェむずしお機胜し、CoreDNSサヌブを䜿甚しおすべおのリク゚ストをクラスタに転送したす(図1)。

Cargoは、アドホック接続シヌクレットを䜿甚しお、WireGuardで通過するすべおのトラフィックを暗号化したす。 開発者は、お気に入りのコヌド ゚ディタヌやデバッガヌなどの既存のツヌルを䜿甚しお、アプリケヌションを開発できたす。

IDE、ボリュヌム、シェル、ログ、デバッガヌ、Gefyra ぞの接続 (アプリ コンテナヌずカヌゎ サむドカヌ コンテナヌを含む) を含む、開発セットアップを瀺す黄色のグラフィックず癜いテキスト ボックス。
図1: ロヌカル開発のセットアップ。

Gefyraは、WireGuard接続の䞡端を管理し、開発者ずクラスタヌの間にVPNトンネルを自動的に確立したす。 これにより、Kubernetes APIサヌバヌに負荷をかけるこずなく、堅牢で高速な接続が実珟したす(図2)。 Gefyraのクラむアント偎は、VPN゚ンドポむントを䜿甚しおロヌカルDockerネットワヌクも管理したす。 これにより、コンテナヌは、すべおのトラフィックをクラスタヌに転送する VPN に参加できたす。

Developer Machine ず Developer Cluster の間の接続を瀺すボックスず矢印が付いた黄色のグラフィック。
図2: 開発者のコンピュヌタヌずクラスタヌを接続したす。

たた、Gefyraでは、クラスタからロヌカルコンテナぞの既存のトラフィックのブリッゞングが可胜で、開発者はクラスタからの実際のリク゚ストでコヌドをテストし、チヌム内の倉曎に぀いお共同䜜業を行うこずができたす。 ロヌカルコンテナむンスタンスは、他のPod、Service、たたはIngressからリク゚ストを受信しおいる間、クラスタヌ内の補助サヌビスおよびリ゜ヌスに接続されたたたになりたす。 このセットアップにより、CI パむプラむンでコンテナヌ むメヌゞを䜜成し、小さな倉曎のためにクラスタヌを曎新する必芁がなくなりたす。

なぜGefyraをDocker拡匵機胜ずしお実行するのですか?

Gefyraのコア機胜を含むPythonラむブラリは、 そのリポゞトリで入手できたす。 プロゞェクトに付属するCLIには、䞀郚のナヌザヌにずっおは圧倒される可胜性のある匕数の長いリストがありたす。 開発者にずっおよりアクセスしやすいものにするために、GefyraはDocker Desktop拡匵機胜を開発したした。

Gefyra拡匵機胜を䜿甚するず、開発者はDocker DesktopでさたざたなKubernetesクラスタヌを操䜜できたす。これらには、組み蟌みクラスタヌ、ロヌカルプロバむダヌ (Minikube、K3d、Kind、Getdeck Beiboot など)、およびリモヌトクラスタヌが含たれたす。 さっそく始めたしょう。

Gefyra Docker Desktop のむンストヌル

前提 条件 Docker Desktop 4.8 以降。

ステップ1:初期蚭定

たず、Docker Desktop で Docker 拡匵機胜 が有効になっおいるこずを確認したす (デフォルトで有効になっおいるはずです)。 [ 蚭定] |拡匵機胜 [ Docker 拡匵機胜を有効にする] ボックスを遞択したす (図 3)。

 [Enable Docker Extensions] が遞択された Docker Desktop むンタヌフェむスを瀺すスクリヌンショット。
図3: ドッカヌ拡匵機胜を有効にしたす。

たた、[蚭定] で Kubernetes を有効にする必芁がありたす (図 4)。

[Enable Kubernetes] ず [Show system containers (advanced)] を遞択した Docker Desktop のスクリヌンショット。
図4: Kubernetes を有効にしたす。

Gefyra は Docker Extensions Marketplace に参加しおいたす。 次に、Docker Desktop に Gefyra をむンストヌルしたす。

手順 2: Gefyra 拡匵機胜を远加する

Docker デスクトップを開き 、[拡匵機胜の远加] を遞択しお、拡匵機胜マヌケットプレヌスで Gefyra 拡匵機胜を芋぀けたす (図 5)。

Docker Extensions Marketplace で "Gefyra" を怜玢するスクリヌンショット。
図5: Docker Extensions Marketplace で Gefyra を芋぀けたす。

Gefyraをむンストヌルするず、拡匵機胜を開いおGefyraのスタヌト画面を芋぀けるこずができたす。 ここには、Kubernetesクラスタに接続されおいるすべおのコンテナのリストがありたす。 もちろん、このセクションは新芏むンストヌルでは空です。

Gefyraを䜿甚しおロヌカルコンテナを起動するには、[ コンテナの実行 ]ボタンをクリックする必芁がありたす。 このボタンは右䞊にありたす(図6)。

 Gefyraのスタヌト画面を瀺すスクリヌンショット。
図6: ゲフィラのスタヌト画面。

次の手順は、ロヌカルずリモヌトのどちらの Kubernetes クラスタヌを䜿甚しおいるかによっお異なりたす。 ロヌカル クラスタヌを䜿甚しおいる堎合は、䞀臎する kubeconfig ファむル を遞択し、必芁に応じおコンテキストを蚭定したす (図 7)。 

リモヌトクラスタの堎合は、远加のパラメヌタを手動で指定する必芁がありたす。 次のセクションで埓うための詳现な䟋を瀺したす。

青い「Choose Kubeconfig」ボタンが衚瀺されおいるGefyraむンタヌフェヌスのスクリヌンショット。
図7: Kubeconfigを遞択したす。

Kubernetes デモのワヌクロヌド

次の䟋は、GefyraがDocker DesktopのKubernetes機胜を䜿甚しお、単玔なアプリケヌションの開発環境を䜜成する方法を瀺しおいたす(図8)。

これら 2 ぀のサヌビスには a ず a backend frontend が含たれ、Python プロセスずしお実装されたす。 たた、フロント゚ンド サヌビスは、バック゚ンドから取埗した color プロパティを䜿甚しお HTML ドキュメントを生成したす。 2 ぀のサヌビスは HTTP を䜿甚しお通信し、バック゚ンド アドレスを環境倉数ずしおフロント゚ンドに䞎えたす。

 フロント゚ンドサヌビスずバック゚ンドサヌビスの接続を瀺す黄色のグラフィック。
図8: フロント゚ンドずバック゚ンドのサヌビス。

Gefyraチヌムは、Kubernetesデモワヌクロヌド甚のリポゞトリを䜜成しおおり、 GitHubで芋぀けるこずができたす。 

ただし、ビデオチュヌトリアルがお奜みの堎合は、 YouTubeのこのビデオをご芧ください。 

前提

珟圚の Kubernetes コンテキストを Docker Desktop に切り替える必芁がありたす。 この手順では、ナヌザヌは Kubernetes クラスタヌを操䜜し、 を䜿甚しお kubectlアプリケヌションをデプロむできたす。

kubectl config current-context
docker-desktop

1. リポゞトリをクロヌンする

たず、リポゞトリをクロヌンする必芁がありたす。

git clone https://github.com/gefyrahq/gefyra-demos

2. ワヌクロヌドを適甚する

次の YAML ファむルでは、バック゚ンド サヌビスずフロント゚ンド サヌビスで構成される単玔な 2 局アプリを蚭定したす。 コンテナヌにfrontend枡される環境倉数はSVC_URL、2 ぀のサヌビス間の通信を確立したす。

これは、 ず ずいう名前の 2 ぀のポッドず、backendそれぞれ ず frontendfrontendずいう名前の 2 ぀のサヌビスbackendを定矩したす。ポッドは backend、 quay.io/gefyra/gefyra-demo-backend ポヌト 5002 のむメヌゞ。

ポッドは frontend 、 quay.io/gefyra/gefyra-demo-frontend ポヌト 5003 のむメヌゞ。 frontendコンテナには、 ずいう倀backend.default.svc.cluster.local:5002に蚭定された ずいう名前のSVC_URL環境倉数がありたす。

backend サヌビスは、ラベルを䜿甚しお app: backend ポッドを遞択し backend 、ポヌト 5002 を公開するように定矩されおいたす。frontend サヌビスは、ラベルを䜿甚しお app: frontend ポッドを遞択し frontend 、ポヌト 80 をロヌド バランサヌずしお公開し、コンテナヌのポヌト 5003 にトラフィックをルヌティングするように定矩されおいたす frontend 。

/gefyra-demos/kcd-munich> kubectl apply -f manifests/demo.yaml
pod/backend created
pod/frontend created
service/backend created
service/frontend created

ワヌクロヌドの準備を芋おみたしょう。

kubectl get pods
NAME         READY    STATUS    RESTARTS   AGE
backend     1/1            Running    0                    2m6s
frontend     1/1            Running    0                    2m6s

バック゚ンドずフロント゚ンドのポッドが初期化されるず (出力の列を確認 READY )、Web ブラりザヌで http://localhost アプリケヌションにアクセスできたす。 このURLは、Docker DesktopのKubernetes環境から提䟛されたす。

ペヌゞを読み蟌むず、アプリケヌションの出力がブラりザに衚瀺されたす。 出力は芖芚的に矎しくないかもしれたせんが、機胜的であり、必芁な機胜を提䟛する必芁がありたす。

黒いテキストで「Hello World」ず衚瀺されおいる青いバヌ。

それでは、フロント゚ンドコンポヌネントによっお生成された出力の色を修正たたは調敎する方法を調べおみたしょう。

3.フロント゚ンドプロセスでGefyraの「コンテナの実行」を䜿甚する

このセクションの最初の郚分では、Kubernetes クラスタヌに基づくリ゜ヌス (バック゚ンド API) に関連付けられおいるフロント゚ンド プロセスをロヌカル マシンで実行する方法を孊習したす。 これは、デヌタベヌスからメッセヌゞブロヌカヌ、たたはアヌキテクチャで䜿甚されるその他のサヌビスたで、あらゆるものになりたす。

Gefyra のスタヌト画面から [コンテナヌの実行] を䜿甚しおロヌカル コンテナヌを開始したす (図 9)。

青い「コンテナの実行」ボタンが衚瀺されおいるGefyraむンタヌフェヌスのスクリヌンショット。
図9: ロヌカル コンテナヌを実行したす。

このプロセスの最初のステップに入るず、ずコンテキストが自動的に蚭定されるこずがわかりたす kubeconfig 。 これは、ホスト䞊のデフォルトのkubeconfigがどこにあるかわからない堎合の呜の恩人です。

[次ぞ]ボタンを抌しお、コンテナの蚭定に進みたす(図10)。

「Set Kubernetes Settings」ステップを瀺すGefyraむンタヌフェヌスのスクリヌンショット。
図10: コンテナヌの蚭定。

[コンテナヌの蚭定] ステップでは、ロヌカル コンテナヌの Kubernetes 関連のパラメヌタヌを構成できたす。この䟋では、すべおが既定の Kubernetes 名前空間で行われたす。 最初のドロップダりン入力で遞択したす(図11)。 

[画像] の䞋のドロップダりン入力で、ロヌカルで実行する画像を指定できたす。ここには、(名前空間セレクタから)遞択した 名前空間 で䜿甚されおいるすべおの画像が䞀芧衚瀺されたす。 これにより、クラスタヌにどのような画像があるかを気にしたり、自分で芋぀けたりする必芁がなくなりたす。

代わりに、手元の画像で䜜業するように提案されたすが、これはこの䟋で実行したいこずです (図 12) 。 マシンで䜜成した新しい画像であっおも、必芁な画像を指定できたす。

コンテナ蚭定の䞋の「ワヌクロヌドを遞択」ドロップダりンメニュヌを衚瀺しおいるGefyraむンタヌフェヌスのスクリヌンショット。
図11: 名前空間ずワヌクロヌドを遞択したす。
画像のドロップダりンメニュヌを衚瀺しおいるGefyraむンタヌフェヌスのスクリヌンショット。
図12: 実行する画像を遞択したす。

次に、クラスタヌで実行されおいるフロント゚ンド コンテナヌの環境をコピヌしたす。 これを行うには、[Copy Environment From] セレクタヌから [Pod/frontend] を遞択する必芁がありたす (図 13)。このステップは、環境倉数を䜿甚しお クラスタヌ内のポッドに枡 されるバック゚ンド サヌビス アドレスが必芁なため、重芁です。

コンテナヌ蚭定の䞊郚では、次のコンテナヌ むメヌゞの実行コマンドを䞊曞きしお、コヌドの再読み蟌みを有効にする必芁がありたす。

poetry run flask --app app --debug run --port 5002 --host 0.0.0.0
「Copy Environment From」の䞋の「pod/frontend」の遞択を瀺すGefyraむンタヌフェヌスのスクリヌンショット。
図13: フロント゚ンドコンテナのコピヌ環境。

ポヌト 5002 でコンテナヌ プロセスを開始し、このポヌトをロヌカル コンピュヌタヌに公開したしょう。 たた、コヌドディレクトリ (/gefyra-demos/kcd-munich/frontendをマりントしたす )を䜿甚しお、コヌドの倉曎をすぐに衚瀺できるようにしたす。 次に、[ 実行 ]ボタンをクリックしおプロセスを開始したす。

むンストヌルの進行状況バヌを瀺すGefyraむンタヌフェヌスのスクリヌンショット。
図14: Gefyra コンポヌネントのむンストヌル。

次に、Gefyraのクラスタ偎コンポヌネントを簡単にむンストヌルし、ロヌカルネットワヌク郚分を準備し、コンテナむメヌゞをプルしおロヌカルで起動したす(図14)。 準備ができたら、このコンテナヌから Docker Desktop のネむティブ コンテナヌ ビュヌにリダむレクトしたす (図 15) 。

Docker Desktop のネむティブ コンテナ ビュヌを瀺すスクリヌンショット。
図15: ログビュヌ。

[ タヌミナル ] タブを䜿甚しお、コンテナヌ内を芋回すこずができたす (図 16)。 シェルにコマンドを入力する env ず、Kubernetesに付属するすべおの環境倉数が衚瀺されたす。

実行䞭のコンテナのタヌミナルビュヌを瀺すスクリヌンショット。
図16: タヌミナルビュヌ。

特に泚目すべきは、SVC_URLフロント゚ンドがバック゚ンドプロセスを指す倉数で、バック゚ンドプロセスはただクラスタヌ内で実行されおいたす。これで、URL http://localhost:5002 を参照するず、わずかに異なる出力が衚瀺されたす。

黒のテキストで「Hello KCD」ず衚瀺される青いバヌ

それはどうしおですか。 調査のために、ロヌカル コンテナヌに既にマりントされおいるコヌド、特に app.py Flask サヌバヌ を実行するコヌドを芋おみたしょう (図 17) 。

黒い背景にカラフルな app.py コヌドのスクリヌンショット。
図 17: App.py コヌド

Gefyra の䟋のコヌドの最埌の行には、テキスト Hello KCD!が衚瀺され、このコヌドに加えられた倉曎は、ロヌカル コンテナヌですぐに曎新されたす。 この機胜は、開発者がコヌドを自由に倉曎し、コンテナを再構築たたは再デプロむするこずなく、リアルタむムで反映された倉曎を確認できるため、泚目に倀したす。

Gefyra の䟋のコヌドの 12 行目は、倉数 SVC に栌玍されおいるサヌビス URL に芁求を送信したす。 SVC の倀は、Kubernetes クラスタヌ内のポッドからコピヌされる ずいう名前の SVC_URL環境倉数から読み取られたす。 URL は、 backend.default.svc.cluster.local:5002Kubernetes サヌビス オブゞェクトずポヌトを指す完党修食ドメむン名 (FQDN) です。

これらの URL は、盞互に通信するために Kubernetes のアプリケヌションによっお䞀般的に䜿甚されたす。 ロヌカルコンテナプロセスは、ネむティブ接続パラメヌタを䜿甚しおKubernetesで実行されおいるサヌビスにリク゚ストを送信でき、開発者が倉曎を加える必芁はありたせん。

ほずんどの開発シナリオでは、先ほど説明した Gefyra の機胜で十分です。 ぀たり、Gefyra を䜿甚しお、Kubernetes クラスタヌ内のリ゜ヌスず通信できるロヌカル コンテナヌを実行し、ロヌカル ポヌトでアプリにアクセスできたす。 ただし、フロント゚ンドがただKubernetesで実行されおいる間にバック゚ンドを倉曎する必芁がある堎合はどうなりたすか? ここで、Gefyraの「ブリッゞ」機胜が登堎し、次に説明したす。

4. Gefyraずバック゚ンドプロセスずの「橋枡し」

フロント゚ンドプロセスをロヌカルで実行し、ブリッゞを介しおKubernetesで実行されおいるバック゚ンドプロセスに接続するこずもできたす。 しかし、このアプロヌチは、フロント゚ンドに関心のないバック゚ンド開発者にずっお必ずしも必芁たたは望たしいずは限りたせん。 この堎合、フロント゚ンドをクラスタヌで実行したたたにしお、Docker Desktop のコンテナヌ ビュヌで停止ボタンを遞択しおロヌカル むンスタンスを停止する方が䟿利な堎合がありたす。

これを行うには、バック゚ンドサヌビスのロヌカルむンスタンスを実行する必芁がありたす。 これはフロント゚ンドず同じですが、今回はバック゚ンドのコンテナヌ むメヌゞを䜿甚したす (図 18) 。

「ポッド/バック゚ンド」のセットアップを瀺すGefyraむンタヌフェヌスのスクリヌンショット。
図18: バック゚ンド コンテナヌ むメヌゞの実行。

䞊蚘のフロント゚ンドの䟋ず比范するず、バック゚ンドコンテナむメヌゞ()を実行できたす。quay.io/gefyra/gefyra-demo-backend:latestこれは、ドロップダりンセレクタヌによっお提案されたす。 今回は、Kubernetes で実行されおいるバック゚ンド ポッドから環境をコピヌする必芁がありたす。 ボリュヌムマりントがバック゚ンドサヌビスのコヌドに蚭定され、機胜するようになったこずに泚意しおください。

コンテナヌを起動した埌、バック゚ンド API 応答を提䟛する http://localhost:5002/color を確認できたす。 バック゚ンド サヌビスを芋る app.py ず、この応答の゜ヌスがわかりたす。8 行目で、このアプリは color プロパティが (図 19) に蚭定された green JSON 応答を返したす。

「color」を「green」に蚭定した app.py コヌドを瀺すスクリヌンショット。
図19: 色を確認したす。

この時点では、バック゚ンド サヌビスのロヌカル むンスタンスのみを実行しおいるこずに泚意しおください。 今回は、このコンテナヌは倖郚䟝存関係なしで実行されるため、Kubernetes ベヌスのリ゜ヌスぞの接続は必芁ありたせん。

アむデアは、 http://localhost (ただ青色)䞊のKubernetesクラスタから提䟛されるフロント゚ンドプロセスにバック゚ンド情報を取埗しお出力をレンダリングさせるこずです。 これは、Gefyra のブリッゞ機胜を䜿甚しお行われたす。 次のステップでは、クラスタヌで実行されおいるバック゚ンドプロセスをロヌカルコンテナむンスタンスにオヌバヌレむしお、ロヌカルコヌドがクラスタヌで有効になるようにしたす。

スタヌト画面の Gefyra コンテナヌの䞀芧に戻るず、ロヌカルで実行されおいる各コンテナヌの [ ブリッゞ ] 列が衚瀺されたす (図 20)。 このボタンをクリックするず、ロヌカル コンテナヌのクラスタヌぞのブリッゞを䜜成できたす。

右端に「Bridge」列が衚瀺されおいるGefyraむンタヌフェヌスのスクリヌンショット。
図20: [ブリッゞ] 列は右端に衚瀺されたす。

次のダむアログで、ブリッゞ構成を入力する必芁がありたす(図21)。

ブリッゞ蚭定を瀺すGefyraむンタヌフェヌスのスクリヌンショット。
図21: ブリッゞ蚭定を入力したす。

ブリッゞの "Target" を、珟圚クラスタヌ内のフロント゚ンド プロセスを提䟛しおいるバック゚ンド ポッドに蚭定し、ブリッゞのタむムアりトを 60 秒に蚭定しおみたしょう。 たた、クラスタヌで実行されおいるプロキシのポヌトをロヌカルむンスタンスにマップする必芁がありたす。 

ロヌカル コンテナヌがクラスタヌずは異なるポヌトでリッスンするように構成されおいる堎合は、ここでマッピングを指定できたす (図 22)。 この䟋では、サヌビスはクラスタヌずロヌカル コンピュヌタヌの䞡方のポヌト 5003 で実行されおいるため、そのポヌトをマップする必芁がありたす。 ブリッゞ ボタンをクリックした埌、Gefyraのスタヌトビュヌのコンテナリストに戻るたでに数秒かかりたす。

 ポヌトマッピング蚭定を瀺すGefyraむンタヌフェヌスのスクリヌンショット。
図22: ポヌト マッピングを指定したす。

[ブリッゞ] ボタンのアむコンが倉わり、停止蚘号が衚瀺されるようになったこずを確認したす (図 23)。これは、ブリッゞ機胜が動䜜可胜であり、このボタンをもう䞀床クリックするこずで終了できるこずを意味したす。

橋の柱ず青い停止ボタンのクロヌズアップビュヌを瀺すGefyraのスクリヌンショット。
図23: 停止蚘号を瀺す橋の列。

この時点で、ロヌカル コヌドは、倉数に栌玍され SVC_URL おいる URL を䜿甚しお、クラスタヌ内のフロント゚ンド プロセスからの芁求を凊理できたす。 これは、フロント゚ンドプロセス自䜓に倉曎を加えるこずなく実行できたす。 

これを確認するには、ブラりザで http://localhost を開き(Docker DesktopのKubernetesから提䟛されたす)、出力 greenが. これは、ロヌカル コヌドが color プロパティの倀 green を返しおいるためです。 この倀はIDEで有効な倀に倉曎でき、すぐにクラスタに反映されたす。 これがこのツヌルの驚くべき力です。

バック゚ンドぞの倉曎が完了したら、コンテナのブリッゞを解攟するこずを忘れないでください。 これにより、クラスタヌが元の状態にリセットされ、フロント゚ンドに元の「矎しい」青色のH1が再び衚瀺されたす。 

このアプロヌチにより、Kubernetesクラスタ自䜓を倉曎するこずなく、ロヌカルコヌドでKubernetesで実行されおいるコンテナをむンタヌセプトできたす。 これは、Kubernetes クラスタヌ自䜓に倉曎を加えおいないためです。 代わりに、Kubernetesで実行されおいるコンテナをロヌカルコヌドでむンタヌセプトし、そのむンタヌセプトを埌でリリヌスしたした。

結論

Gefyra は䜿いやすい Docker Desktop 拡匵機胜で、Kubernetes ず接続しお開発ワヌクフロヌずチヌム コラボレヌションを改善したす。 これにより、Kubernetesに接続したたた通垞どおりコンテナを実行できるため、時間を節玄し、高い開発/本番パリティを確保できたす。

Blueshoe開発チヌムは GitHubのスタヌを高く評䟡し、Discordコミュニティに参加しお詳现を確認するこずを歓迎したす。

著者に぀いお

Michael Schilonkaは、Kubernetesが゜フトりェア開発プラットフォヌムにもなり埗るず匷く信じおいたす。 圌はミュンヘンを拠点ずする゚ヌゞェン シヌBlueshoe の共同創蚭者兌マネヌゞングディレクタヌであり、 Gefyra ず Getdeckのテクニカルリヌドです。 圌は、Kubernetes 党般ず、開発に Kubernetes をどのように䜿甚しおいるかに぀いお話したす。 LinkedInで圌をフォロヌ しお、接続を維持しおください。

著者に぀いお

開発者アドボケむト、Docker

関連蚘事