Application Delivery Management

NetScaler コンソールでKubernetesイングレス構成を管理します

Kubernetes (K8s) は、クラウドネイティブアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースのコンテナオーケストレーションプラットフォームです。

Kubernetes は、クラスター外のクライアントトラフィックが Kubernetes クラスター内で実行されているアプリケーションのマイクロサービスにアクセスできるようにする Ingress 機能を提供します。NetScalerインスタンスは、Kubernetesクラスター内で実行されているアプリケーションへの入力として機能できます。NetScalerインスタンスは、クライアントからのNorth-Southトラフィックを負荷分散し、Kubernetesクラスター内の任意のマイクロサービスにコンテンツルーティングできます。

  • NetScaler Consoleは、Kubernetesバージョン1.14〜1.21のクラスターのイングレス機能をサポートします。
  • NetScaler コンソールは、NetScaler VPXおよびMPXアプライアンスをイングレスデバイスとしてサポートします。
  • Kubernetes環境では、NetScaler ADCインスタンスは「nodePort」サービスタイプのみを負荷分散します。

複数のNetScalerインスタンスを、同じクラスターまたは異なるクラスターまたは名前空間上のIngressデバイスとして動作するように構成できます。インスタンスを構成したら、Ingress ポリシーに基づいて各インスタンスを異なるアプリケーションに割り当てることができます。

Kubernetes kubectl または API を使用して Ingress 設定を作成してデプロイできます。NetScalerコンソールからイングレスを構成して展開することもできます。

NetScaler コンソールでは、Kubernetes 統合の次の側面を指定できます。

  • クラスタ — NetScaler Consoleがイングレス構成を展開できるKubernetesクラスターを登録または登録解除できます。クラスターをNetScalerコンソールに登録するときに、Kubernetes APIサーバー情報を指定します。次に、Kubernetes クラスターにアクセスして Ingress 構成をデプロイできるエージェントを選択します。

  • ポリシー — Ingressポリシーを使用して、Ingress構成を展開するクラスターまたは名前空間に基づいてNetScalerインスタンスを選択します。ポリシーを追加するときに、クラスタ、サイト、およびインスタンスの情報を指定します。

はじめに

NetScaler インスタンスを Kubernetes クラスターで Ingress デバイスとして使用するには、次のものがあることを確認します。

  • Kubernetesクラスターが存在する。

  • Kubernetes クラスターはNetScaler コンソールに登録されています。

Kubernetesクラスターを管理するためのシークレットトークンを使用してNetScalerコンソールを構成する

NetScaler ConsoleがKubernetesからイベントを受信できるようにするには、KubernetesでNetScalerコンソール用のサービスアカウントを作成する必要があります。また、クラスタで必要な RBAC アクセス許可を使用してサービスアカウントを構成します。

  1. NetScaler コンソールのサービスアカウントを作成します。たとえば、サービスアカウント名はcitrixadm-saになります。サービスアカウントを作成するには、「 複数のサービスアカウントを使用する」を参照してください。

  2. cluster-admin ロールを使用してNetScaler Consoleサービスアカウントをバインドします。このバインドにより、クラスタ全体にわたってClusterRoleがサービスアカウントに付与されます。cluster-admin ロールをサービスアカウントにバインドするコマンドの例を次に示します。

    kubectl create clusterrolebinding citrixadm-sa-admin --clusterrole=cluster-admin --serviceaccount=default:citrixadm-sa
    <!--NeedCopy-->
    

    NetScaler Consoleサービスアカウントをcluster-adminロールにバインドすると、サービスアカウントはクラスター全体にアクセスできるようになります。詳細については、「 kubectl create clusterrolebinding」を参照してください。

  3. 作成したサービスアカウントからトークンを取得します。

    たとえば、以下のコマンドを実行して、 citrixadm-sa サービスアカウントのトークンを表示します。

    kubectl describe sa citrixadm-sa
    <!--NeedCopy-->
    
  4. 次のコマンドを実行して、トークンのシークレット文字列を取得します。

    kubectl describe secret <token-name>
    <!--NeedCopy-->
    

NetScaler コンソールにKubernetesクラスターを追加します

NetScalerエージェントを構成して静的ルートを構成したら、KubernetesクラスターをNetScalerコンソールに登録する必要があります。

Kubernetes クラスターを登録するには、次の手順を実行します。

  1. 管理者の資格情報を使用してNetScalerコンソールにログオンします。

  2. オーケストレーション > Kubernetes > クラスタに移動します。 [クラスタ] ページが表示されます。

  3. [追加] をクリックします。

  4. [クラスタの追加 ] ページで、次のパラメータを指定します。

    1. [名前]: 任意の名前を指定します。

    2. API サーバー URL -Kubernetes メインノードから API サーバーの URL の詳細を取得できます。

      1. Kubernetes メインノードで、kubectl cluster-infoコマンドを実行します。

        API サーバーの URL

      2. 「Kubernetes マスターが実行中です。」と表示される URL を入力します。

    3. 認証トークン - Kubernetesクラスターを管理するようにNetScaler Consoleを構成する際に取得した認証トークン文字列を指定します。認証トークンは、KubernetesクラスターとNetScalerコンソール間の通信へのアクセスを検証するために必要です。認証トークンを生成する手順は、次のとおりです。

      1. Kubernetes メインノードで、次のコマンドを実行します。

        kubectl describe secret <token-name>
        <!--NeedCopy-->
        
      2. 生成されたトークンをコピーし、認証トークンとして貼り付けます。

        詳細については、 Kubernetes ドキュメントを参照してください。

    4. リストからエージェントを選択します。

    5. [作成] をクリックします。

      クラスタの追加

NetScaler コンソールでKubernetesイングレス構成を管理します