ローカルで実行されているDockerコンテナーを、Kubernetesクラスターで実行されているサービスに接続したいと思います。そのために、いくつかの静的IPアドレスを予約してサービスを公開しました。
また、これらのIPアドレスをローカルDNSの/etc/hosts/
ファイルに保存しました。
123.123.123.12 host1
456.456.456.45 host2
クラスターで処理できるように、すべてのトラフィックがそれらのアドレスにルーティングされるように、コンテナーをコンテナーにリンクしたいと思います。Dockerコンテナでリンク機能を使用していますが、機能していません。
IPを使用して直接接続したいですか?これはどのようにすればよいですか?
クライアントがDockerにある場合とない場合で、これを行うことに違いはありません。ただし、Kubernetesからサービスを公開している場合は、外部ホストで実行されているプロセスまたはそのホストのDockerコンテナで実行されているプロセスから同じ接続を確立します。
たとえば、Kubernetesドキュメントの例のように、クラスター内のすべてのノードのポート31496でアクセス可能なNodePortサービスを実行していて、クラスターの外部から接続しようとしているとします。たぶん、質問123.123.123.12のように、クラスター内のノードです。典型的なセットアップは、環境変数(JavaScript process.env.THE_SERVICE_URL
; Ruby ENV['THE_SERVICE_URL']
; Python os.environ['THE_SERVICE_URL']
; ...)からサービスの場所を取得することです。
開発中は、ローカルシェルでその変数を設定できます。
export THE_SERVICE_URL=http://123.123.123.12:31496
cd here && ./kubernetes_client_script.py
アプリケーションをデプロイするときに、同じ環境変数を設定できます。
docker run -e THE_SERVICE_URL=http://123.123.123.12:31496 me:k8s-client
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加