Citrix ADC ingress controller

AWS で LoadBalancer タイプのサービス用の Citrix ソリューションをデプロイする

LoadBalancer タイプのサービスは、Kubernetes クラスターで実行されているマイクロサービスを外部に公開するための、よりシンプルで高速な方法です。クラウドデプロイメントでは、LoadBalancer タイプのサービスを作成すると、クラウドマネージドロードバランサーがサービスに割り当てられます。その後、ロードバランサーを使用してサービスが公開されます。LoadBalancer タイプのサービスの詳細については、 LoadBalancer タイプのサービスを参照してください

Citrix LoadBalancerタイプのサービス向けソリューションでは、Citrix ADCを使用して、クラウド管理型ロードバランサーの代わりにサービスを直接負荷分散して公開できます。Citrix は、オンプレミスおよびクラウド向けのLoadBalancerタイプのサービスに対してこのソリューションを提供しています。LoadBalancer タイプのサービスは、AWS、GCP、Azure などのパブリッククラウド上の Kubernetes デプロイメントでネイティブにサポートされます。

AWS にサービスをデプロイすると、ロードバランサーが自動的に作成され、IP アドレスがサービスの外部フィールドに割り当てられます。このCitrixソリューションでは、Citrix IPAMコントローラーがIPアドレスを割り当て、そのIPアドレスはCitrix ADC VPXのVIPです。KubernetesクラスターにデプロイされたCitrix ingress controller は、クラスターの外部にデプロイされたCitrix ADCを構成して、着信トラフィックの負荷を分散します。そのため、クラウドロードバランサーではなくCitrix ADC VPXを介してサービスにアクセスします。

このサービスtypeは、サービス定義のようにLoadBalancerとして指定する必要があります。AWS上のサービスのロードバランサーをLoadBalancerプロビジョニングするようにtypeフィールドを設定します。

Citrix IPAMコントローラーは、指定されたIPアドレス範囲からLoadBalancerタイプのサービスにIPアドレスを自動的に割り当てるために使用されます。LoadBalancer タイプのサービスに対するCitrix ソリューションの詳細については、「 LoadBalancer タイプのサービスを公開する」を参照してください。

Helm チャートまたは YAML ファイルを使用して、LoadBalancer タイプのサービス用の Citrix ソリューションを AWS にデプロイできます。

前提条件

  • Elastic Kubernetes サービス (EKS) クラスターバージョン 1.18 以降が稼働していることを確認します。
  • Citrix ADC VPX と EKS が同じVPCにデプロイされ、実行されていることを確認します。AWS で Citrix ADC VPX を作成する方法については、「 AWS Marketplace から Citrix ADC VPX インスタンスを作成する」を参照してください。

Helm チャートを使用して AWS に LoadBalancer タイプのサービス用の Citrix ソリューションをデプロイする

Helm チャートを使用して LoadBalancer タイプのサービス用にCitrix ソリューションを構成するには、次の手順を実行します。

  1. unified-lb-values.yaml ファイルをダウンロードし、YAML ファイルを編集して次の詳細を指定します。

  2. 編集した YAML ファイルを使用して、Citrix IP アドレス管理コントローラーと Citrix イングレスコントローラーを Amazon EKS クラスターにデプロイします。次のコマンドを使用します。

    helm repo add citrix https://citrix.github.io/citrix-helm-charts/
    
    helm install serviceLB citrix/citrix-cloud-native -f values.yaml
    
  3. Amazon EKS にアプリケーションとサービスをデプロイします。

    1. サービスマニフェストに次のアノテーションを追加します。

      beta.kubernetes.io/aws-load-balancer-type: "external"
      
    2. 以下のコマンドを使用して、アノテーションを変更したアプリケーションとサービスをデプロイします。

      kubectl create -f https://github.com/citrix/citrix-k8s-ingress-controller/blob/master/docs/how-to/typeLB/aws/guestbook-all-in-one-lb.yaml
      

      : guestbook マイクロサービスは、この手順で使用されるサンプルです。任意のアプリケーションをデプロイできます。サービスのタイプが LoadBalancer で、サービスマニフェストにアノテーションが含まれていることを確認します。

    3. エラスティックIPアドレスをCitrix ADC VPX IPに関連付けます。

    4. ブラウザを使用してアプリケーションにアクセスします。例:http://EIP-associated-with-vip

YAML を使用して AWS に LoadBalancer タイプのサービス用の Citrix ソリューションをデプロイする

YAML を使用して LoadBalancer タイプのサービス用の Citrix ソリューションを展開するには、次の手順を実行します。

  1. citrix-k8s-ingress-controller.yaml ファイルをダウンロードし、次の詳細を指定します。

  2. 変更した YAML を使用して Citrix ingress controller をデプロイします。

    kubectl create -f citrix-k8s-ingress-controller.yaml
    
  3. 次のコマンドを使用して、Citrix Ingress コントローラーと IP アドレス管理コントローラー間の通信を有効にする Citrix VIP CRD を展開します。

    kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/crd/vip/vip.yaml
    

    Citrix VIP CRDの展開について詳しくは、「 VIP CRDの展開」を参照してください。

  4. IP アドレス管理コントローラを展開します。IP アドレス管理コントローラの展開については、IP アドレス管理コントローラの展開を参照してください

    注:

    IPAM展開YAMLファイルのVIP_RANGEフィールドに、Citrix ADC VPX VIPのリストを指定します。

  5. Amazon EKS にサービスタイプ LoadBalancer のアプリケーションをデプロイするには、次の手順に従います。

    1. サービスマニフェストに次のアノテーションを追加します。

      beta.kubernetes.io/aws-load-balancer-type: "external"
      
    2. 以下のコマンドを使用して、アノテーションを変更したアプリケーションとサービスをデプロイします。

      kubectl create -f https://github.com/citrix/citrix-k8s-ingress-controller/blob/master/docs/how-to/typeLB/aws/guestbook-all-in-one-lb.yaml
      

      注:

      guestbook マイクロサービスは、この手順で使用されるサンプルです。任意のアプリケーションをデプロイできます。サービスのタイプが LoadBalancer で、サービスマニフェストにアノテーションが含まれていることを確認します。

    3. エラスティックIPアドレスをCitrix ADC VPX IPに関連付けます。

    4. ブラウザを使用してアプリケーションにアクセスします。例:http://EIP-associated-with-vip

AWS で LoadBalancer タイプのサービス用の Citrix ソリューションをデプロイする