Kubernetes環境におけるNSX Container plug-inの導入について

 

NSX Container Plug-inの導入手順

 Kubernetes + NSX-T環境におけるPlug-inの導入については

最初にZIPファイルをダウンロードする必要があります。

各種ドキュメントにURLが貼られていないので入手方法に迷われる方も多いと思います(私もその一人でした)。

色々検索ワードを変えてみること15分、アッサリmy vmwareのリンクがHITしましたので同じような方のためにURLを記載しておきます。

(以下はNSX-T 2.5.1用となります。)

 

NSX Container Plugin

https://my.vmware.com/jp/group/vmware/details?downloadGroup=NSX-T-PKS-251&productId=673&download=true

ダウンロードされるファイルについて

上記からダウンロードすると1GB程度のZIPファイルが保存されます。

解凍すると総計2GB弱程度でした。

こちらのファイルを直接k8s nodeへ送ってunzipコマンド叩いてOS上で解凍作業を実行しても問題ないですが

不必要なファイルをmasterへ送りたくない!という方は別途管理端末で解凍し、SCP等でk8s環境へ送付してもいいかと思います。

以下、管理端末で解凍すると...

f:id:pocmemo:20200101180324p:plain

 

フォルダをクリックして展開すると以下フォルダが表示されます。

 

 

f:id:pocmemo:20200101180410p:plain

今回はOpenshift環境ではないのでそのまま"Kubernetes" フォルダへ進んでいきましょう。

Kubernetes フォルダ配下は以下。

 

 

f:id:pocmemo:20200101180515p:plain

 

 

ここから先はKubernetesUbuntu / RHELどちらで構成されているかにより使用ファイルが変わります。

先述したようにZIPファイルをそのままk8s環境へ送付すると、必ず半分は不必要なファイルを送ってしまっている...ということになります。

送付先のOS上で不要ファイルを削除しても勿論問題ありませんが、本番環境でのヒューマンエラーに関する芽はできるだけ摘んでおきたいですね。

 

なおTARファイルはdocker loadコマンドで読み込ませるイメージのため、tarファイルのままk8s環境に送付しましょう。

 

ちなみにyamlファイルについて、導入前に覗いておくことをお勧めします。

(読まずにkubectl applyする方は稀かと思いますが...)

ドキュメントに導入後の追加項目が詳細に記述されていないですが、yamlファイルがそのまま閲覧可能ですので事前確認しておかない手は無いです。

 

以下抜粋。

実際は非常に多くのKind定義がされております。

f:id:pocmemo:20200101180804p:plain

 

以下公式ドキュメントにも記述がありますが

細かい作業を省いてざっくり手順分けすると以下の作業工程になります。

 

1. ファイルのダウンロード

2. tarファイルイメージをdocker loadで読み込ませる

3. yamlファイルをapplyする

https://docs.vmware.com/jp/VMware-NSX-T-Data-Center/2.5/ncp-kubernetes/GUID-6C539F16-2F50-426C-83D3-1720900C397D.html

導入後の状態について

上記のようにClusterRole / ClusterRoleBindなど非常に多数の追加項目があるためすべてご紹介はできませんが、一部導入後の状態について以下のような状態となります。

 

apparmorのサービス稼働状況:

f:id:pocmemo:20200101181252p:plain

 

Namespaceの作成状況:

(nsx-systemが新規作成されています。)

f:id:pocmemo:20200101181329p:plain

ダウンロードしたyamlファイル103行目で定義されているように、デフォルトでは"nsx-system"固定です。

f:id:pocmemo:20200101182337p:plain

 

PodやDeploymentなどの作成状況:

"nsx-ncp" と命名されたDeployment / nsx-node-agentのDaemonsetが確認され、

それぞれPodの形で動作している状態です。

f:id:pocmemo:20200101181403p:plain

configmapも同様:

f:id:pocmemo:20200101182541p:plain

 

 

なお互換性についてですが、Release Noteに記述がありますのでこちらも必ず事前に確認しておきましょう。

https://docs.vmware.com/en/VMware-NSX-T-Data-Center/2.5/rn/NSX-Container-Plugin-251-Release-Notes.html

 

f:id:pocmemo:20200101182928p:plain

 

 

 

VMware社がProject Pacificに力を入れている事はvmworld / vForumでもひしひしと伝わってきましたので

広く公式ローンチがされるであろう将来のリリースに備えて、NSX-Tそのものの導入だけでなく、on Kubernetesでの各種導入・アップデートについても追いかける必要がありますね。