Application Delivery Management

NetScaler ADM でKubernetes入力構成を管理する

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

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

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

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

Kubernetes kubectl または API を使用して Ingress 設定を作成してデプロイできます。NetScaler ADM から Ingress を構成して展開することもできます。

ADM では、Kubernetes 統合の次の側面を指定できます。

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

  • Policies — Ingress ポリシーは、Ingress 設定をデプロイするクラスターまたは名前空間に基づいて ADC インスタンスを選択するために使用されます。ポリシーを追加するときに、クラスタ、サイト、およびインスタンスの情報を指定します。

はじめに

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

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

  • NetScaler ADM に登録された Kubernetes クラスター。

秘密トークンを使用してNetScaler ADM を構成し、Kubernetesクラスタを管理する

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

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

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

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

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

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

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

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

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

NetScaler ADM に Kubernetes クラスタを追加する

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

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

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

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

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

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

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

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

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

        API サーバーの URL

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

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

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

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

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

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

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

      クラスタの追加

NetScaler ADM でKubernetes入力構成を管理する