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

Alibaba Cloud Service Mesh:サービス エントリの管理

最終更新日:Jan 13, 2025

ASM インスタンスの内部サービス レジストリに外部サービスのエントリを追加して、ASM インスタンス内のサービスが外部サービスにアクセスできるようにすることができます。サービス エントリは、サービスのドメイン名、ポート、プロトコル、エンドポイントなどのプロパティを記述します。このトピックでは、サービス エントリの作成、変更、削除の方法について説明します。

使用上の注意

  • サイドカーとのポートの競合を防ぐため、サービス エントリを作成する際には、Envoy が使用する以下のポートは使用しないでください。

    ポート

    プロトコル

    使用者

    説明

    15000

    TCP

    Envoy

    Envoy の管理ポートです。

    15001

    TCP

    Envoy

    Envoy のアウトバウンド ポートです。

    15006

    TCP

    Envoy

    Envoy のインバウンド ポートです。

    15020

    HTTP

    Envoy

    Istio プロキシ、Envoy、およびアプリケーションからの統合 Prometheus テレメトリに使用されるポートです。

    15021

    HTTP

    Envoy

    ヘルス チェックに使用されるポートです。

    15090

    HTTP

    Envoy

    Envoy Prometheus テレメトリに使用されるポートです。

  • 次の表は、外部サービスのサービス エントリにおけるポートの命名規則について説明しています。

    プロトコル

    ポート名

    サフィックス付きのポート名

    HTTP

    http

    http-<Suffix>

    HTTP2

    http2

    http2-<Suffix>

    HTTPS

    https

    https-<Suffix>

    TLS

    tls

    tls-<Suffix>

    gRPC

    grpc

    grpc-<Suffix>

    TCP

    tcp

    tcp-<Suffix>

    UDP

    UDP

    udp-<Suffix>

    Mongo

    mongo

    mongo-<Suffix>

    MySQL

    mysql

    mysql-<Suffix>

    Redis

    redis

    redis-<Suffix>

  • HTTP、HTTPS、TLS、または TCP を使用する場合は、以下の点に注意してください。

    • HTTP、HTTPS、または TLS を使用する場合は、サービス エントリでホストを指定する必要があります。

      apiVersion: networking.istio.io/v1alpha3
      kind: ServiceEntry
      metadata:
        name: aliyun
      spec:
        hosts:
        - www.aliyun.com
        - aliyun.com
        ports:
        - number: 443
          name: https
          protocol: HTTPS
        resolution: DNS
        location: MESH_EXTERNAL
    • TCP を使用する場合は、サービス エントリで IP アドレス範囲を指定する必要があります。

      apiVersion: networking.istio.io/v1alpha3
      kind: ServiceEntry
      metadata:
        name: mysql-external
      spec:
        hosts:
        - mysql-01.foo.bar
        addresses:
        - 10.0.0.5/32
        - 10.0.0.6/32
        ports:
        - name: tcp
          number: 3306
          protocol: tcp
        location: MESH_EXTERNAL
  • 複数の外部サービスが同じ TCP ポートを共有している場合は、サービスの IP アドレスを区別する必要があります。

    • 外部サービス 1

      apiVersion: networking.istio.io/v1beta1
      kind: ServiceEntry
      metadata:
        name: external-svc-1
        namespace: default
      spec:
        hosts:
        - fqdna.fqdn.com
        addresses:
        - 10.0.0.0
        location: MESH_EXTERNAL
        ports:
        - name: TCP
          number: 3306
          protocol: TCP
        resolution: DNS
    • 外部サービス 2

      apiVersion: networking.istio.io/v1beta1
      kind: ServiceEntry
      metadata:
        name: external-svc-2
        namespace: default
      spec:
        hosts:
        - fqdnb.fqdn.com
        addresses:
        - 10.1.0.0
        location: MESH_EXTERNAL
        ports:
        - name: TCP
          number: 3306
          protocol: TCP
        resolution: DNS
  • デフォルトでは、ASM インスタンスで外部サービスに対して作成したエントリは、すべての名前空間で有効です。外部サービスのエントリを作成した名前空間内のサービスのみが外部サービスにアクセスできるようにするには、サービス エントリの作成時に exportTo パラメーターを追加し、"." に設定します。

    apiVersion: networking.istio.io/v1alpha3
    kind: ServiceEntry
    metadata:
      name: aliyun
    spec:
      hosts:
      - www.aliyun.com
      exportTo:
      - "."
      ports:
      - number: 443
        name: https
        protocol: HTTPS
      resolution: DNS
      location: MESH_EXTERNAL
  • ドメイン ネーム システム ( DNS ) 解決を有効にすることをお勧めします。DNS 解決機能は、元の宛先 IP アドレスを無視し、指定されたホストにトラフィックを転送し、DNS クエリを実行して指定されたホストの IP アドレスを取得します。

    apiVersion: networking.istio.io/v1alpha3
    kind: ServiceEntry
    metadata:
      name: aliyun
    spec:
      hosts:
      - '*.aliyun.com'
      addresses:
       - 192.168.0.0
       - 172.16.0.0
      location: MESH_EXTERNAL
      ports:
      - number: 443
        protocol: https
        name: https
      resolution: DNS

    resolution: DNS 解決を有効にするには、このパラメーターを DNS に設定します。DNS 解決を無効にするには、このパラメーターを NONE に設定します。

サービス エントリの作成

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

  2. [メッシュ管理] ページで、ASM インスタンスの名前をクリックします。左側のナビゲーション ペインで、[クラスター & ワークロード管理] > [外部サービス ( Serviceentry )] を選択します。表示されたページで、[YAML から作成] をクリックします。

  3. [作成] ページで、名前空間とシナリオ テンプレートを選択し、ビジネス要件に基づいて [YAML] コード エディターで設定を変更し、[作成] をクリックします。

    フィールドの詳細については、「Service Entry」をご参照ください。

サービス エントリの変更

  1. ASM インスタンスの詳細ページで、左側のナビゲーション ペインの [クラスター & ワークロード管理] > [外部サービス ( Serviceentry )] を選択します。

  2. [外部サービス ( Serviceentry )] ページで、変更するサービス エントリを見つけ、YAML[アクション] 列の をクリックします。

  3. [編集] ダイアログ ボックスで、サービス エントリの構成を変更し、[OK] をクリックします。

サービス エントリの削除

  1. ASM インスタンスの詳細ページで、左側のナビゲーション ペインの [クラスター & ワークロード管理] > [外部サービス ( Serviceentry )] を選択します。

  2. [外部サービス ( Serviceentry )] ページで、削除するサービス エントリを見つけ、[アクション] 列の [削除] をクリックします。

  3. [送信] メッセージで、[OK] をクリックします。