Citrix ADC ingress controller

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

アプリケーションのすべての利用可能なサービスが、単一の Kubernetes クラスタに完全にデプロイされないことがあります。1 つのクラスターの外部にあるサービスに依存するアプリケーションがある場合もあります。この場合、マイクロサービスは ExternalName サービスを定義してドメイン名を解決する必要があります。ただし、このアプローチでは、トラフィック管理、ポリシー適用、フェールオーバー管理などの機能は利用できません。別の方法として、ドメイン名を解決してCitrix ADCの機能を利用するようにCitrix ADCを構成することもできます。

外部サービスにアクセスするようにCitrix ADCを構成する

Citrix ingress controller を使用して、Citrix ADC をドメイン名リゾルバーとして構成できます。Citrix ADCをドメイン名リゾルバーとして構成する場合、次の問題を解決する必要があります。

  • マイクロサービスからのCitrix ADC 到達可能性
  • 外部サービスに到達するためのCitrix ADCでのドメイン名解決

KubernetesクラスターからCitrix ADCに到達できるようにサービスを構成する

マイクロサービスからCitrix ADCにアクセスするには、Citrix ADCサービスに解決されるヘッドレスサービスを定義する必要があります。これにより、マイクロサービスとCitrix ADC間の接続が確立されます。

apiversion: v1
kind: Service
metadata: 
  name: external-svc
spec:
  selector:
    app: cpx
  ports:
    - protocol: TCP
      port: 80

Citrix ingress controller を使用してCitrix ADCをドメイン名リゾルバーとして構成する

Citrix イングレスコントローラーを介してCitrix ADCを構成し、イングレスアノテーションingress.citrix.com/external-serviceを使用してドメインベースのサービスグループを作成できます。 ingress.citrix.com/external-service の値は、外部ネームサービスとそれに対応するドメイン名のリストです。Citrix ADC VPXの場合、ネームサーバーはConfigMapを使用してCitrix ADC上で構成されます。

注:

ConfigMapsは、Citrix ADC VPXに対してのみCitrix ADC上のネームサーバーを構成するために使用されます。Citrix ADC CPX の場合、CoreDNS は名前解決要求をアップストリームDNSサーバーに転送します。

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

次の図は、外部サービスに到達するためのCitrix ADC CPXの展開を示しています。Ingressは、Citrix ADC CPXでDNSを構成するために外部サービスアノテーションが指定されている場所に展開されます。

注: ConfigMapは、Citrix ADC VPXでネームサーバーを構成するために使用されます。

Citrix ADC CPXによるトラフィック管理

この展開は、以下のように管理されます。

  1. マイクロサービスは、解決されるwww.externalsvc.comのDNSクエリをCitrix ADC CPXサービスに送信します。
  2. Citrix ADC CPX は www.externalsvc.com を解決し、外部サービスに到達します。

外部サービスの負荷分散を行うようにCitrix ADC CPXを構成する手順は次のとおりです。

  1. Citrix ADC に到達するヘッドレスサービスを定義します。

    apiVersion: v1
    kind: Service
    metadata:
      name: external-svc
    spec:
      selector:
        app: cpx
      ports:
        - protocol: TCP
          port: 80
    
  2. ingress を定義し、 dbs-ingress.yaml ファイルで指定されているとおりに外部サービスアノテーションを指定します。このアノテーションを指定すると、Citrix ingress controller はCitrix ADC上にDNSサーバーを作成し、サーバーを対応するサービスグループにバインドします。

        annotations:
          ingress.citrix.com/external-service: '{"external-svc": {"domain": "www.externalsvc.com"}}'
    
  3. ConfigMapを使用して、Citrix ADCにDNSサーバーのIPアドレスを追加します。

    注:

    この手順は、Citrix ADC VPX にのみ適用されます。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: nameserver-cmap
      namespace: default
    data:
      NS_DNS_NAMESERVER: '[]'
    <!--NeedCopy-->
    
外部サービスのトラフィック管理