外部サービス向けのトラフィック管理

最終公開日 : Oct 02, 2026
アプリケーションの利用可能なすべてのサービスが、単一のKubernetesクラスターに完全にデプロイされていない場合があります。1つのクラスター外のサービスに依存するアプリケーションがあるかもしれません。この場合、マイクロサービスはドメイン名を解決するためにExternalNameサービスを定義する必要があります。ただし、このアプローチでは、トラフィック管理、ポリシー適用、フェイルオーバー管理などの機能を利用できません。代替策として、NetScalerを構成してドメイン名を解決し、NetScalerの機能を活用できます。

外部サービスに到達するようにNetScalerを構成する

NetScaler Ingress Controllerを使用して、NetScalerをドメイン名リゾルバーとして構成できます。NetScalerをドメイン名リゾルバーとして構成する場合、以下を解決する必要があります。
  • マイクロサービスからNetScalerへの到達可能性
  • 外部サービスに到達するためのNetScalerでのドメイン名解決

KubernetesクラスターからNetScalerへの到達可能性のためのサービスを構成する

マイクロサービスからNetScalerに到達するには、NetScalerサービスに解決されるヘッドレスサービスを定義する必要があります。これにより、マイクロサービスとNetScaler間の接続が確立されます。
apiversion: v1
kind: Service
metadata: 
  name: external-svc
spec:
  selector:
    app: cpx
  ports:
    - protocol: TCP
      port: 80

NetScaler Ingress Controllerを使用してNetScalerをドメイン名リゾルバーとして構成する

NetScaler Ingress Controllerを介してNetScalerを構成し、イングレスアノテーションingress.citrix.com/external-serviceを使用してドメインベースのサービスグループを作成できます。ingress.citrix.com/external-serviceの値は、対応するドメイン名を持つ外部名サービスのリストです。NetScaler VPXの場合、ネームサーバーはConfigMapを使用してNetScaler上に構成されます。
注:
ConfigMapは、NetScaler VPXの場合にのみNetScaler上のネームサーバーを構成するために使用されます。NetScaler CPXの場合、CoreDNSは名前解決要求をアップストリームDNSサーバーに転送します。

NetScaler CPXを使用したトラフィック管理

次の図は、外部サービスに到達するためのNetScaler CPXのデプロイメントについて説明しています。NetScaler CPXでDNSを構成するために外部サービスアノテーションが指定されたIngressがデプロイされます。
注: ConfigMapは、NetScaler VPX上のネームサーバーを構成するために使用されます。
NetScaler CPXによるトラフィック管理
このデプロイでは:
  1. マイクロサービスは、www.externalsvc.com のDNSクエリを送信し、それはNetScaler CPXサービスに解決されます。
  2. NetScaler CPXは www.externalsvc.com を解決し、外部サービスに到達します。
NetScaler CPXを構成して外部サービスをロードバランシングする手順は次のとおりです。
  1. NetScalerに到達するためのヘッドレスサービスを定義します。
    apiVersion: v1
    kind: Service
    metadata:
      name: external-svc
    spec:
      selector:
        app: cpx
      ports:
        - protocol: TCP
          port: 80
  2. イングレスを定義し、dbs-ingress.yaml ファイルで指定されているように external-service アノテーションを指定します。このアノテーションを指定すると、NetScaler Ingress Controller はNetScaler上にDNSサーバーを作成し、そのサーバーを対応するサービスグループにバインドします。
    annotations:
      ingress.citrix.com/external-service: '{"external-svc": {"domain": "www.externalsvc.com"}}'
  3. ConfigMapを使用して、NetScaler上のDNSサーバーのIPアドレスを追加します。
    注:
    この手順はNetScaler VPXにのみ適用されます。
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: nameserver-cmap
      namespace: default
    data:
      NS_DNS_NAMESERVER: '[]'