Kubernetes 上の Cisco Prime Network Registrar

Kubernetes は、ソフトウェアの展開、スケーリング、および管理を自動化するためのオープンソースのコンテナ オーケストレーション システムです。Cisco Prime Network Registrar 11.1 以降、次の Docker イメージを使用して Cisco Prime Network Registrar インスタンスを Kubernetes に展開できます。

  • リージョンインスタンスの展開の場合:cpnr-regional-11.1-1.el8.x86_64_rhel_docker.tar.gz

  • ローカルインスタンスの展開の場合:cpnr-local-11.1-1.el8.x86_64_rhel_docker.tar.gz


(注)  


イメージの名前は、今後のリリースで変更されます。


コンテナイメージを読み込むには、Kubernetes にプライベート Docker レジストリが必要です。

この章の内容は、次のとおりです。

Kubernetes 上で Cisco Prime Network Registrar インスタンスを展開

YAML ファイルを使用して、Kubernetes に Cisco Prime Network Registrar インスタンスを展開できます。YAML は、Kubernetes 構成ファイルで使用される標準規格です。Cisco Prime Network Registrar キット cpnr-11.1-1.el8.x86_64_kubernetes.tar.gz には、Kubernetes に Cisco Prime Network Registrar を展開する方法の 1 つを示す YAML ファイルの例(cpnr-local-statefulset.yaml および cpnr-regional-statefulset.yaml)が含まれています。


(注)  


Kubernetes 環境に Cisco Prime Network Registrar を展開するために特別なライセンスは必要ありません。既存のコンテナのライセンスを使用します。


たとえば、Cisco Prime Network Registrar キットの cpnr-local-statefulset.yaml を使用して、Kubernetes に Cisco Prime Network Registrar ローカルインスタンスを作成できます。この設定では、StatefulSet および hostNetwork の展開を使用します。この YAML を使用して作成されたインスタンスは、Cisco Prime Network Registrar ローカルインスタンスを設定済みのワーカーノードにバインドします。このインスタンスは、設定されたワーカーノードでのみ実行され、他のノードでは実行されません。

ポッドが hostNetwork: true で設定されている場合、ポッドで実行されているアプリケーションは、ポッドが開始されたホストマシンのネットワーク インターフェイスを直接表示できます。また、すべてのネットワーク インターフェイスでリッスンするように設定されたアプリケーションは、ホストマシンのすべてのネットワーク インターフェイスでアクセスできます。

YAML ファイルは、次の Kubernetes リソースで構成されます。

  • サービス

    cpnr-local-statefulset.yaml では cpnr-local がサービス名で、ヘッドレスサービスが使用されているため clusterIp は None に設定されています。

  • StatefulSet

    cpnr-local-statefulset.yaml では cpnr-local は StatefulSet 名であり、1 つのレプリカで Cisco Prime Network Registrar 11.1 Docker イメージを実行するために使用されます。

    次の 2 つの理由から、Cisco Prime Network Registrar で StatefulSet が使用されます。

    • 一定のポッド名

    • 展開を使用して作成されたポッドが削除されると、古いポッドが完全に終了する前に新しいポッドが作成されます。ホストノードの古い Cisco Prime Network Registrar プロセスが完全に終了する前に hostNetwork が使用されるため、新しい Cisco Prime Network Registrar ポッドが作成され、古いポッドの Cisco Prime Network Registrar プロセスが完全に終了しないため、新しいポッドの Cisco Prime Network Registrar サービスが停止します。

      これは StatefulSet で古いポッドが完全に終了し、新しいポッドが作成されることで解決されます。


(注)  


他のネットワークモードでは HA とフェールオーバーのペアに問題があったため、Cisco Prime Network Registrar は hostNetwork を使用してテストされています。hostNetwork モードでは、ポッドが起動すると、ホストネットワーク名前空間とホスト IP アドレスを使用します。これは基本的に、ポッドがホストのすべてのネットワーク インターフェイスを認識できるということです。hostNetwork モードでは、ノードに展開できる Cisco Prime Network Registrar インスタンスは 1 つだけであるため、YAML のレプリカは 1 に設定されます。hostNetwork モードを使用して複数の Cisco Prime Network Registrar ポッドを同じノードにデプロイする場合は、ポッドごとに、すべての Cisco Prime Network Registrar 関連のポートを変更し、それに応じてレプリカを調整する必要があります。ただし、これが役に立たない場合もあります。


手順


ステップ 1

YAML ファイルで次のパラメータを設定します。

  • NODE_NAME:Cisco Prime Network Registrar インスタンスが実行されるワーカーノード名。たとえば、「cnr-k8s-worker2. server.com」です。kubectl get nodes コマンドを使用してノード名を取得します。

  • IMAGE:Docker イメージの場所。たとえば、「cnr-k8s-worker1.server.com/cpnr-local:11.1」の場合、cnr-k8s-worker1. server.com はプライベートレジストリで、イメージ名はタグ 11.1 の cpnr-local です。

  • HOST_MOUNT_PATH:ホストマシン上のディレクトリパス。このディレクトリは、Cisco Prime Network Registrar インスタンスに構成ファイルとデータを格納するために使用されます。ポッドの /var/nwreg2 は、ホストマシンの HOST_MOUNT_PATH にマッピングされます。これは、ホストマシンで Cisco Prime Network Registrar インスタンスのデータを保持するために必要です。

ステップ 2

次のコマンドを使用して、Kubernetes に Cisco Prime Network Registrar インスタンスを作成します。

  • Cisco Prime Network Registrar ローカルインスタンスの展開の場合:

    # kubectl create -f cpnr-local-statefulset.yaml
  • Cisco Prime Network Registrar リージョンインスタンスの展開の場合:

    # kubectl create -f cpnr-regional-statefulset.yaml

ステップ 3

次のコマンドを使用して、Kubernetes の Cisco Prime Network Registrar インスタンスの詳細を確認します。

# kubectl get all

ステップ 4

次のコマンドを使用して、Cisco Prime Network Registrar インスタンスポッドにログインします。

# kubectl exec -it <pod name> -- bash
次に例を示します。
# kubectl exec -it cpnr-dhcp-dns-0 -- bash
# /opt/nwreg2/local/usrbin/nrcmd -s
100 Ok

ステップ 5

ユーザー名とパスワードを設定し、ローカルポッドをリージョンポッドに登録します。


Kubernetes の Cisco Prime Network Registrar インスタンスを削除する場合は、次のコマンドを使用します。

  • Cisco Prime Network Registrar ローカルインスタンスの場合:

    # kubectl delete -f cpnr-local-statefulset.yaml
  • Cisco Prime Network Registrar リージョンインスタンスの場合:

    # kubectl delete -f cpnr-regional-statefulset.yaml

ポッドの障害をデバッグするには、kubectl logs podname または kubectl describe pod podname コマンドを使用します。


(注)  


Cisco Prime Network Registrar ポッドを別のワーカーノードに展開する場合は、YAML ファイルに変更を加える必要があります(たとえば、service.metadata.name と statefulset.metadata.name を変更する必要があります)。



(注)  


Cisco Prime Network Registrar 11.1 Docker イメージは、Kubernetes バージョン 1.23.5 でテストされています。使用されている CNI は Calico 3.22.0 です。テスト全体が、例として提供されている YAML ファイルを使用して実行されています。YAML ファイルを変更する場合は、実稼働に移行する前にテストする必要があります。