Kubernetes ノードを準備する手順のほとんどは、nsx-ovs と nsx-ncp-bootstrap 2 つのコンテナによって自動化されています。これらのコンテナはそれぞれ nsx-node-agent DaemonSet と nsx-ncp-bootstrap DaemonSet で実行されます。
NCP をインストールする前に、Kubernetes ノードに Python がインストールされ、コマンド ライン インターフェイスからアクセスできることを確認してください。Linux パッケージ マネージャを使用してインストールできます。たとえば、Ubuntu では、コマンド apt install python を実行できます。
sudo cat /sys/module/apparmor/parameters/enabled
sudo /etc/init.d/apparmor status
ncp-apparmor プロファイル ファイルは、node-agent-apparmor と呼ばれる NSX Node Agent 用の AppArmor プロファイルを提供します。これは、docker-default プロファイルとは次の点で異なります。
- deny mountルールが削除されている。
- mountルールが追加されている。
- いくつかの network、capability、file、および umount オプションが追加されている。
node-agent-apparmorプロファイルは、別のプロファイルに置き換えることができます。その場合は、NCP YAML ファイルでプロファイル名 node-agent-apparmor を変更する必要があります。
- /etc/cni/net.d
- /etc/apparmor.d/ncp-apparmor
- /opt/cni/bin/nsx
- /opt/cni/bin/nsx
- /etc/cni/net.d/99-loopback.conf
- /etc/cni/net.d/10-nsx.conflist
- /etc/apparmor.d/ncp-apparmor
/opt/cni/bin/loopback ファイルと /etc/cni/net.d/99-loopback.conf ファイルが存在する場合、これらのファイルは上書きされません。OS タイプが Ubuntu の場合、ncp-apparmor ファイルもホストにコピーされます。
ブートストラップ コンテナは IP アドレスとルートを br-int から node-if に移動します。また、OVS がホストで実行されている場合は、OVS を停止します。OVS は nsx-ovs コンテナ内で実行されます。br-int インスタンスが存在しない場合、nsx-ovs コンテナはこのインスタンスを作成します。さらに、ノードの論理スイッチに接続されているネットワーク インターフェイス (node-if) を br-int に追加し、br-int と node-if のリンク状態が「稼動中」であることを確認します。IP アドレスとルートを node-if から br-int に移動します。nsx-node-agent ポッドまたは nsx-ovs コンテナが再起動されると、数秒のダウンタイムが発生します。
auto eth1 iface eth1 inet static address 172.16.1.4/24 #persistent static routes up route add -net 172.16.1.3/24 gw 172.16.1.1 dev eth1
次に、ifdown eth1; ifup eth1 コマンドを実行します。
HWADDR=00:0C:29:B7:DC:6F TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none IPADDR=172.10.0.2 PREFIX=24 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV4_DNS_PRIORITY=100 IPV6INIT=no NAME=eth1 UUID=39317e23-909b-45fc-9951-849ece53cb83 DEVICE=eth1 ONBOOT=yes
次に、systemctl restart network.service コマンドを実行します。
RHEL のパーシステント ルートを構成する方法については、https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/sec-configuring_static_routes_in_ifcfg_filesを参照してください。
必要に応じて、ブートストラップ コンテナによって行われた変更を取り消すことができます。詳細については、Kubernetes ノードのクリーンアップを参照してください。