Citrix ADC ingress controller

Citrix ADC VPXを使用してAzure KubernetesサービスクラスターにCitrixイングレスコントローラーを展開する

このトピックでは、Citrix ADC VPX とともに Citrix イングレスコントローラーを Azure Kubernetes サービス(AKS) クラスターに展開する方法について説明します。また、 Azure仮想マシンでKubernetesクラスターを構成し、Citrix ADC VPXでCitrixイングレスコントローラーを展開することもできます

AKS と Azure VM の両方にデプロイする手順は同じです。ただし、Azure VM で Kubernetes を構成する場合は、Kubernetes クラスターに CNI プラグインをデプロイする必要があります。

前提条件

「」の手順を実行する前に、次のタスクを完了しておく必要があります。

  • Kubernetes クラスタが稼働していることを確認します。

    注:

    AKS で Kubernetes クラスターを作成する方法の詳細については、「AKS クラスターの作成ガイド」を参照してください。

トポロジ

この展開で使用されるトポロジの例を次に示します。

シングルティア

Azure マーケットプレイスから Citrix ADC VPX インスタンスを取得する

Citrix ADC VPX は、Azure マーケットプレイスから作成できます。 Azure マーケットプレイスから Citrix ADC VPX インスタンスを作成する方法の詳細については、「Azure マーケットプレイスから Citrix ADC VPX を取得する」を参照してください。

Azure マーケットプレイスから Citrix ingress controller を入手する

Citrix ingress controller を展開するには、Azure にイメージレジストリーを作成し、対応するイメージ URL を使用して Citrix ingress controller ライメージを取得する必要があります。

レジストリーを作成してイメージの URL を取得する方法について詳しくは、「 Azure Marketplace から Citrix ingress controller を取得する」を参照してください。

レジストリを作成したら、展開に使用する AKS クラスターに Citrix ingress controller レジストリ名をアタッチする必要があります。

    az aks update -n <cluster-name> -g <resource-group-where-aks-deployed> --attach-acr <cic-registry>

Citrix Ingress Controller 展開

Citrix ingress controller を展開するには、次の手順を実行します。

  1. Kubernetesシークレットを使用してCitrix ADC VPXログイン資格情報を作成します。

    kubectl create secret  generic nslogin --from-literal=username='<azure-vpx-instance-username>' --from-literal=password='<azure-vpx-instance-password>'
    

    注:

    Citrix ADC VPXのユーザー名とパスワードは、AzureでCitrix ADC VPXを作成するときに設定した資格情報と同じにする必要があります。

  2. SSHを使用して、Citrix ADC VPXのセカンダリIPアドレスであるCitrix ADC VPXでSNIPを構成します。この手順は、Citrix ADC がKubernetesクラスター内のポッドと対話するために必要です。

    add ns ip <snip-vpx-instance-private-ip> <vpx-instance-primary-ip-subnet>
    
    • snip-vpx-instance-private-ip は、Citrix ADC VPXインスタンスの作成中にSNIPを追加するときに割り当てられる動的プライベートIPアドレスです。

    • vpx-instance-primary-ip-subnet は、Citrix ADC VPXインスタンスのプライマリプライベートIPアドレスのサブネットです。

    プライベートIPアドレスのサブネットを確認するには、Citrix ADC VPXインスタンスにSSHで接続し、次のコマンドを使用します。

      show ip <primary-private-ip-addess>
    
  3. Citrix イングレスコントローラーのYAMLファイルで、Citrix ADC VPXイメージのURL、管理IP、およびVIPを更新します。

    1. Citrix ingress controller の YAML ファイルをダウンロードします。

      wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/azure/manifest/azurecic/cic.yaml
      

      注:

      wget をインストールしていない場合は、fetchまたはcurlコマンドを使用できます。

    2. cic.yaml ファイル内の Azure イメージ URL を使用して、Citrix ingress controller ライメージを更新します。

      - name: cic-k8s-ingress-controller
        # CIC Image from Azure
        image: "<azure-cic-image-url>"
      
    3. 次のフィールドのcic.yamlにあるCitrix ADC VPX プライマリIPアドレスを、Azure VPXインスタンスのプライマリプライベートIPアドレスで更新します。

          # Set NetScaler NSIP/SNIP, SNIP in case of HA (mgmt has to be enabled)
          - name: "NS_IP"
          value: "X.X.X.X"
      
    4. VPX Azureインスタンスの作成時に割り当てられたVIPのプライベートIPアドレスで、次のフィールドにあるcic.yamlのCitrix ADC VPX VIPを更新します。

      # Set NetScaler VIP for the data traffic
      - name: "NS_VIP"
        value: "X.X.X.X"
      
    5. Citrix ingress controller に必要な値を設定したら、次のコマンドを使用してCitrix ingress controller を展開します。

      kubectl create -f cic.yaml

サンプルアプリケーションを使用してデプロイを検証する

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

    kubectl create -f  https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/azure/manifest/azurecic/apache.yaml
    
  2. 次のコマンドを使用して Ingress リソースを作成します。

    kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/azure/manifest/azurecic/ingress.yaml
    
  3. デプロイを検証するには、以下のコマンドを使用します。

    $ curl --resolve citrix-ingress.com:80:<Public-ip-address-of-VIP> http://citrix-ingress.com
    <html><body><h1>It works!</h1></body></html>
    

    応答は Kubernetes クラスター内にあるサンプルマイクロサービス (Apache) から受信されます。Citrix ADC VPX は要求を負荷分散しました。

Citrix ADC VPXを使用してAzure KubernetesサービスクラスターにCitrixイングレスコントローラーを展開する