Citrix ADC ingress controller

Anthos で Citrix ingress controller を展開する

Anthos は、既存のオンプレミスハードウェアまたはパブリッククラウドでアプリケーションを実行できる、ハイブリッドおよびマルチクラウドプラットフォームです。クラウド環境とオンプレミス環境で、一貫した開発と運用のエクスペリエンスを提供します。

Citrix ingress controller は、次の展開モードを使用して、オンプレミスの Anthos GKE に展開できます。

  • Citrix ADC CPXをサイドカーイングレスコントローラーとともにタイプLoadBalancerのサービスとして公開する 。
  • Dual-tier Ingress deployment

Citrix ADC CPX をオンプレミスの Anthos GKE でタイプLoadBalancerのサービスとして公開する

この展開では、二重層展開と同様に、Citrix ADC VPXまたはMPXがAnthosクラスタ内のクラスタ外のTier-1に、Citrix ADC CPXがTier-2に展開されます。ただし、Ingressを使用する代わりに、Citrix ADC CPXはタイプLoadBalancerのKubernetesサービスを使用して公開されます。 Citrix ingress controller は、サービス仕様のLoadBalancerIPフィールドで指定されたIPアドレスを構成するプロセスを自動化します。

前提条件

  • Tier-1 Citrix ADC VPX または MPX は、Anthos GKE オンプレミスユーザークラスタと同じサブネットに展開する必要があります。

  • Tier-1 Citrix ADC でサブネット IP アドレス(SNIP)を構成する必要があり、Anthos GKE オンプレミスクラスターノードは IP アドレスを使用して到達可能である必要があります。

  • 別のネットワークからCitrix ADC VPXまたはMPXを使用するには、 Citrix ノードコントローラーを使用して 、Citrix ADC と Anthos GKE オンプレミスクラスター間の通信を有効にします。

  • ロードバランサの IP アドレスとして使用する仮想 IP アドレス (VIP) を確保しておく必要があります。

Citrix ADC CPX をオンプレミスの Anthos GKEにタイプLoadBalancerのサービスとして展開する

Citrix ADC CPX をオンプレミスの Anthos GKE の種類LoadBalancerのサービスとして展開するには、次の手順を実行します。

  1. 次のコマンドを使用して、必要なアプリケーションを Kubernetes クラスタにデプロイし、クラスタ内のサービスとして公開します。

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/apache.yaml
    

    注:

    この例では、 apache.yaml が使用されています。アプリケーションには特定の YAML ファイルを使用する必要があります。

  2. cpx-cic.yaml ファイルを使用して、サイドカーのCitrixイングレスコントローラーをTier-2 IngressデバイスとしてCitrix ADC CPXを展開します

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f <https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/cpx-cic.yaml>
    
  3. (オプション) 自己署名 SSL 証明書と、Ingress for TLS 設定で使用するキーを作成します。

    openssl req -subj '/CN=anthos-citrix-ingress.com/O=Citrix Systems Inc/C=IN' -new -newkey rsa:2048 -days 5794 -nodes -x509 -keyout $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.crt;openssl rsa -in $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.key
    

    注:

    SSL 証明書をすでにお持ちの場合は、同じ証明書を使用して Kubernetes シークレットを作成できます。これは自己署名証明書を作成するコマンドの例に過ぎず、このコマンドではアプリケーションのホスト名がanthos-citrix-ingress.comであると想定しています。

  4. 作成した SSL 証明書とキーのペアを使用して Kubernetes シークレットを作成します。

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret tls anthos-citrix --cert=$PWD/anthos-citrix-certificate.crt --key=$PWD/anthos-citrix-certificate.key
    
  5. tier-2-ingress.yaml ファイルを使用して、ティア 2 の Ingress リソースを作成します。

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f <https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/tier-2-ingress.yaml>
    
  6. ティア1 Citrix ADC用のKubernetesシークレットを作成します。

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret  generic nslogin --from-literal=username='citrix-adc-username' --from-literal=password='citrix-adc-password'
    
  7. Citrix ingress controller を Tier-1 イングレスコントローラーとして展開します。

    1. cic.yaml ファイルをダウンロードします。

    2. Citrix ADC 管理IPアドレスを入力します。cic.yamlファイルに指定されたプレースホルダーTier-1-Citrix-ADC-IP内のTier-1 Citrix ADCの管理IPアドレスを更新します。

    3. 以下のコマンドを使用して、cic.yamlを保存してデプロイします。

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cic.yaml
      
  8. Citrix ADC CPX をタイプLoadBalancerの Kubernetes サービスとして公開します。

    1. cpx-service-type-lb.yaml ファイルをダウンロードします。

    2. YAML ファイルを編集し、クラスタ内のアプリケーションへのアクセスに使用する VIP VIP-for-accessing-microservices アドレスとしての値を指定します。この VIP アドレスは、ロードバランサの IP アドレスとして使用するために確保されたアドレスです。

    3. 以下のコマンドを使用して、 cpx-service-type-lb.yaml ファイルを保存してデプロイします。

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cpx-service-type-lb.yaml
      
  9. マイクロサービスにアクセスするためのVIP-for-accessing-microservices の IP アドレスで DNS レコードを更新します。この例では、Apache マイクロサービスにアクセスするには、次の DNS エントリが必要です。

    `<VIP-for-accessing-microservices> anthos-citrix-ingress.com`
    
  10. アプリケーションにアクセスするには、以下のコマンドを使用します。

           curl -k --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> https://anthos-citrix-ingress.com/ <html><body><h1>It works!</h1></body></html>
    

    注:

    このコマンド --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices>では 、を使用してステップ 9 の DNS 設定部分をデモンストレーションの目的で上書きします。

インストールをクリーンアップする:Citrix ADC CPXを次のタイプLoadBalancerのサービスとして公開する

インストールをクリーンアップするには、 kubectl --kubeconfig delete コマンドを使用して各配置を削除します。

Citrix ADC CPXサービス展開(CPX+CICサービス)を削除するには、次のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-service-type-lb.yaml

Tier-2 Ingress オブジェクトを削除するには、次のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-2-ingress.yaml

Citrix ADC CPX展開とサイドカーCitrix ingress controller を削除するには、次のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-cic.yaml

スタンドアロンCitrix ingress controller を削除するには、次のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cic.yaml

Apache マイクロサービスを削除するには、以下のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f apache.yaml

Kubernetes シークレットを削除するには、以下のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret anthos-citrix

nslogin シークレットを削除するには、以下のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret nslogin

デュアルティア Ingress 展開

デュアルティアのIngress展開では、Citrix ADC VPXまたはMPXはKubernetesクラスタ(Tier-1)の外側に展開され、Citrix ADC CPXはKubernetesクラスタ(Tier-2)内に展開されます。

Tier-1のCitrix ADC MPXまたはVPXデバイスは、クライアントからTier-2のCitrix ADC CPXへのトラフィック(南北)をプロキシします。Tier-2 Citrix ADC CPX は、トラフィックをKubernetesクラスター内のマイクロサービスにルーティングします。スタンドアロンポッドとして展開されたCitrix ingress controller は、Tier-1 Citrix ADC を構成します。1つまたは複数のCitrix ADC CPXポッドのサイドカーCitrixイングレスコントローラーは、同じポッド内の関連付けられたCitrix ADC CPXを構成します。

前提条件

  • Tier-1 Citrix ADC VPX または MPX は、Anthos GKE オンプレミスユーザークラスタと同じサブネットに展開する必要があります。

  • Tier-1 Citrix ADC でサブネット IP アドレス(SNIP)を構成する必要があり、Anthos GKE オンプレミスクラスターノードは IP アドレスを使用して到達可能である必要があります。

  • 別のネットワークからCitrix ADC VPXまたはMPXを使用するには、 Citrix ノードコントローラーを使用して 、Citrix ADC と Anthos GKE オンプレミスクラスター間の通信を有効にします。

  • Tier-1 Ingress マニフェストでフロントエンド IP アドレスとして使用する仮想 IP アドレスを確保しておく必要があります。

Anthos GKE オンプレミスでのデュアルティア Ingress 展開

オンプレミスのAnthos GKEにCitrix ADC デュアルティアIngress展開を展開するには、次の手順を実行します。

  1. 次のコマンドを使用して、必要なアプリケーションを Kubernetes クラスタにデプロイし、クラスタ内のサービスとして公開します。

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/apache.yaml
    

    注:

    この例では、 apache.yaml が使用されています。アプリケーションには特定の YAML ファイルを使用する必要があります。

  2. cpx-cic.yaml ファイルを使用して、Citrix ingress controller をティア2イングレスとしてCitrix ADC CPXを展開します

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/cpx-cic.yaml
    
  3. cpx-service.yamlファイルを使用して、Citrix ADC CPX をKubernetesサービスとして公開します。

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/cpx-service.yaml
    
  4. (オプション) 自己署名 SSL 証明書と、Ingress for TLS 設定で使用するキーを作成します。

    注:

    SSL 証明書をすでにお持ちの場合は、同じ証明書を使用して Kubernetes シークレットを作成できます。

    openssl req -subj '/CN=anthos-citrix-ingress.com/O=Citrix Systems Inc/C=IN' -new -newkey rsa:2048 -days 5794 -nodes -x509 -keyout $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.crt;openssl rsa -in $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.key
    

    注:

    これは自己署名証明書を作成するコマンドの例に過ぎず、このコマンドではアプリケーションのホスト名がanthos-citrix-ingress.comであると想定しています。

  5. 作成した SSL 証明書とキーのペアを使用して Kubernetes シークレットを作成します。

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret tls anthos-citrix --cert=$PWD/anthos-citrix-certificate.crt --key=$PWD/anthos-citrix-certificate.key
    
  6. tier-2-ingress.yaml ファイルを使用して、ティア 2 の Ingress リソースを作成します。

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f <https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/tier-2-ingress.yaml>
    
  7. ティア1 Citrix ADC用のKubernetesシークレットを作成します。

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret  generic nslogin --from-literal=username='citrix-adc-username' --from-literal=password='citrix-adc-password'
    
  8. Citrix ingress controller を Tier-1 イングレスコントローラーとして展開します。

    1. cic.yaml ファイルをダウンロードします。

    2. Citrix ADC 管理IPアドレスを入力します。cic.yamlファイルに指定されたプレースホルダーTier-1-Citrix-ADC-IP内のTier-1 Citrix ADCの管理IPアドレスを更新します。

    3. 以下のコマンドを使用して、cic.yamlを保存してデプロイします。

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cic.yaml
      
  9. tier-1-ingress.yaml ファイルを使用して、Tier-1 の Ingress リソースを作成します。

    1. ティア 1 ingress.yaml ファイルをダウンロードします。

    2. YAML ファイルを編集し、VIP-Citrix-ADCを確保された VIPアドレスに置き換えます。

    3. 以下のコマンドを使用して、 tier-1-ingress.yaml ファイルを保存してデプロイします。

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f tier-1-ingress.yaml
      
  10. マイクロサービスにアクセスするためのVIP-Citrix-ADCの IP アドレスで DNS レコードを更新します。この例では、Apache マイクロサービスにアクセスするには、次の DNS エントリが必要です。

           <VIP-Citrix-ADC> anthos-citrix-ingress.com
    
  11. アプリケーションにアクセスするには、以下のコマンドを使用します。

       curl -k --resolve anthos-citrix-ingress.com:443:<VIP-Citrix-ADC>   https://anthos-citrix-ingress.com/
       <html><body><h1>It works!</h1></body></html>
    

    注:

    このコマンドでは、 --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> は DNS 設定部分をオーバーライドするために使用されます。

インストールのクリーンアップ:デュアルティア Ingress

インストールをクリーンアップするには、 kubectl --kubeconfig delete コマンドを使用して各配置を削除します。

Tier-1 Ingress オブジェクトを削除するには、次のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-1-ingress.yaml

Tier-2 Ingress オブジェクトを削除するには、次のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-2-ingress.yaml`

Citrix ADC CPX展開とサイドカーCitrix ingress controller を削除するには、次のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-cic.yaml

Citrix ADC CPX サービスの展開を削除するには、次のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-service.yaml

スタンドアロンCitrix ingress controller を削除するには、次のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cic.yaml

Apache マイクロサービスを削除するには、以下のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f apache.yaml

Kubernetes シークレットを削除するには、以下のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret anthos-citrix

nslogin シークレットを削除するには、以下のコマンドを使用します。

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret nslogin`
Anthos で Citrix ingress controller を展開する