すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:localhost アプリケーションを他の Pod に公開

最終更新日:Aug 29, 2026

Sidecar リソースを設定し、クラスター内の他の Pod が Service を使用して localhost でリッスンするアプリケーションにアクセスできるようにします。

他の Pod が localhost アプリケーションにアクセスできない理由

localhost はループバックアドレスであり、同一の Pod 内からのみアクセス可能です。クラスターにデプロイされたアプリケーションが localhost でリッスンしている場合、Service を通じてアプリケーションのサービスポートを公開しても、クラスター内の他の Pod からアクセスすることはできません。

以下の例は、異なる言語で記述されたアプリケーションが localhost でリッスンする方法を示しています。

  • Golang: net.Listen("tcp", "localhost:8080")

  • Node.js: http.createServer().listen(8080, "localhost")

  • Python: socket.socket().bind(("localhost", 8083))

オプションの選択

アプリケーションを公開するには 2 つのオプションがあります。アプリケーションコードを変更できるかどうかに基づいて、いずれかを選択してください。

  • オプション 1 — アプリケーションがリッスンするネットワークアドレスを変更します。アプリケーションコードを変更できる場合は、このオプションを選択してください。

  • オプション 2 — アプリケーションコードを変更したくない場合は、Service Mesh (ASM) を使用して localhost でリッスンするアプリケーションを公開します。

オプション 1: アプリケーションがリッスンするネットワークアドレスの変更

アプリケーションを公開するには、localhost の代わりに 0.0.0.0 でリッスンするようにアプリケーションコードを変更します。

オプション 2: ASM を使用した localhost でリッスンするアプリケーションの公開

ASM コンソールで Sidecar リソースを作成します。Sidecar リソースは、選択した Pod へのインバウンドリクエストをインターセプトし、localhost 上のアプリケーションにリクエストを転送します。

次の手順を実行します。

  1. ASM コンソール にログインします。左側のナビゲーションウィンドウで、[サービスメッシュ] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[トラフィック管理センター] > [サイドカートラフィック設定] を選択します。表示されるページで、[YAML から作成] をクリックします。

  3. 作成 ページで、名前空間 と任意の シナリオテンプレート を選択し、次の YAML を設定してから 作成 をクリックします。

    apiVersion: networking.istio.io/v1beta1
    kind: Sidecar
    metadata:
      name: localhost-access
      namespace: {namespace}
    spec:
      ingress:
        - defaultEndpoint: '127.0.0.1:{container_port}'
          port:
            name: tcp
            number: {port}
            protocol: TCP
      workloadSelector:
        labels:
          {key}: {value}

    次のパラメーターを実際の値に置き換えてください。

    パラメーター

    説明

    {namespace}

    アプリケーションがデプロイされている名前空間。

    {container_port}

    アプリケーションが localhost でリッスンしているコンテナポート。

    {port}

    アプリケーションのサービスポート。

    {key}: {value}

    アプリケーションの Pod を選択する label。

説明

前述の設定は、workloadSelector で定義されているラベルを持つポッドにのみ適用され、ingress で定義されている単一の TCP ポートを公開します。