Application Delivery Management

NetScaler® ADM での Kubernetes Ingress 構成の管理

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

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

  • NetScaler ADM は、Kubernetes バージョン 1.14~1.21 のクラスターで Ingress 機能をサポートしています。
  • NetScaler ADM は、NetScaler VPX および MPX アプライアンスを Ingress デバイスとしてサポートしています。
  • Kubernetes 環境では、NetScaler インスタンスは「NodePort」サービスタイプのみをロードバランスします。

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

Kubernetes の kubectl または API を使用して Ingress 構成を作成およびデプロイできます。NetScaler ADM から Ingress を構成およびデプロイすることもできます。

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

  • クラスター – ADM が Ingress 構成をデプロイできる Kubernetes クラスターを登録または登録解除できます。NetScaler ADM にクラスターを登録する際は、Kubernetes API サーバー情報を指定します。次に、Kubernetes クラスターに到達し、Ingress 構成をデプロイできる ADM エージェントを選択します。

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

開始する前に

NetScaler インスタンスを Kubernetes クラスター上の Ingress デバイスとして使用するには、以下が必要です。

  • Kubernetes クラスターが準備されていること
  • NetScaler ADM に Kubernetes クラスターが登録されていること

NetScaler ADM での Kubernetes クラスター管理のためのシークレットトークン構成

NetScaler ADM が Kubernetes からイベントを受信できるようにするには、NetScaler ADM 用のサービスアカウントを Kubernetes に作成する必要があります。そして、クラスター内で必要な 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 エージェントを構成し、静的ルートを構成した後、NetScaler ADM に Kubernetes クラスターを登録する必要があります。

Kubernetes クラスターを登録するには:

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

  2. Orchestration > Kubernetes > Cluster の順に移動します。 [クラスター] ページが表示されます。

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

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

    1. 名前 - 任意の名前を指定します。

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

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

        API サーバー URL

      2. 「Kubernetes master is running at.」 に表示される URL を入力します。

    3. 認証トークン - NetScaler ADM での Kubernetes クラスター管理のためのシークレットトークン構成 の際に取得した認証トークン文字列を指定します。認証トークンは、Kubernetes クラスターと NetScaler ADM 間の通信のアクセスを検証するために必要です。認証トークンを生成するには:

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

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

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

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

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

      クラスターの追加

NetScaler® ADM での Kubernetes Ingress 構成の管理