Kubernetes環境でのNetScaler CPXの展開

NetScaler CPXをKubernetes展開に統合して、クラスター環境内のコンテナ化されたアプリケーションを負荷分散できます。Kubernetesについては、http://kubernetes.io/docs/を参照してください。

Kubernetes環境で、NetScaler CPXはミニオンのkube-proxyを置き換え、ポッド内のコンテナの負荷を分散します。Kubernetesサポートの開始時には、NetScaler CPXは、特権が付与されたホストモードでNetScaler IPアドレス192.168.0.1で起動します。また、ホスト上の構成とiptableをクリアし、サービスとエンドポイントの現在の状態をKubernetesに照会し、Kubernetesフレームワークの次のイベントストリームでイベントをリッスンします。

  • サービスチャネル:NetScaler CPXはこのチャネルの情報を使用して、必要な仮想サーバー数を判断します。また、各サービスの仮想サーバーを作成し、それぞれに仮想IPアドレス(192.168.0.2)を割り当てます。これらの仮想サーバーは、エフェメラルポート番号(20000~30000の範囲から選択される)に基づいて区別されます。また、NetScaler CPXは、iptable規則を作成して、クラスターIPアドレス宛てのトラフィックをさまざまな仮想IPアドレスにリダイレクトします。
  • エンドポイントチャネル:NetScaler CPXはこのチャネルの情報を使用して、アプリケーションインスタンスを負荷分散するために、仮想IPアドレスにバインドされたサービスグループ上のサービスグループメンバーを構成します。

NetScaler CPXでは、サービス用に作成されたNetScaler構成は保存されません。

サービスに割り当てるIPアドレスの範囲は、NetScaler IPアドレスと後続の3つのIPアドレスと競合しないようにする必要があります。

次の図は、NetScaler CPXがKubernetes環境とどのように連携するかを示します。

ローカライズされた画像

NetScaler CPXのインスタンスのインストールを開始する前に、次の準備ができていることを確認します。

  • DockerがLinuxホストシステムにインストールされている。
    Dockerをインストールするには、Linux Shellプロンプトで次のコマンドを実行します:
    curl –ssl https://get.docker.com/ | sh

LinuxでのDockerのインストールについて詳しくは、次を参照してください。 https://docs.docker.com/engine/installation/ubuntulinux/

  • Dockerホストからインターネットに接続できる。
  • ルートユーザーとしてログインしている。
  • Kubernetes環境が、すべてのクラスターノードが構成された状態にセットアップされている。
  • NetScaler CPX Dockerイメージを、Kubernetes環境のすべてのノードに追加する。

NetScaler CPXインスタンスはkube-proxyと一緒に使用できますが、NetScaler CPXの起動は、kube-proxyの起動後にのみ行います。また、kube-proxyが再起動されていないことを確認する必要があります。

NetScaler CPXインスタンスを、KubernetesがセットアップされたDockerホストにインストールするには、次のコマンドを実行します。

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e kubernetes_url=“http://10.102.103.222:8080/api" cpx:latest

192.168.1.0/24ネットワークをNetScaler CPX向けに予約できない場合は、空いている他のサブネットを使用できます。そのサブネットの最初のIPアドレスを、NetScaler IP(NSIP)として割り当てます。たとえば、サブネットに10.20.30.0/24を使用する場合は、次のコマンドを実行します。

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e NS_IP=10.20.30.41 -e kubernetes_url="http://10.217.212.185:8080/api" cpx:latest

Kubernetes環境でのNetScaler CPXの展開

In this article