posted

0 Comments

作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與SD-WAN方案的介紹與推廣。

同樣地,回憶一下NSX-T Controller的功能吧。NSX-T Controller會接收來自Management Plane的用戶組態,以及實際上偵測自Data Plane內虛機 / Container / OVS等的相關資訊,進行

  • 網路暫態資訊的運算與派送,像是TEP、VM or POD的Mac Address、IP地址間的對應,並把運算出的結果送到每個轉發層的節點。
  • 防火牆配置的IP運算與發送。

實際上,NSX Control Plane內的構件包含了在集中管理端的CCP Node (Central Control Plane Node,大家可以想像為在NSX for vSphere上的NSX Controller),以及部署在各個data-plane hypervisor / Edge上的LCP (Local Control Plane) Agent負責各個Data Plane節點與Controller間的溝通,並監控這個節點上的狀態比如說一個虛機網卡是否運作。CCP Node,也就是我們現在要部署的Controller,可以是三台(現況)或更多台,但目前實務上並沒有部署超過三台的必要性。

此外,在NSX-T的架構內,NSX Controller的功能會包含Distributed Firewall的規則運算,因此即使用戶僅僅使用微分段防火牆的功能,NSX Controller也是必須要配置的。

NSX-T Controller的安裝方式有兩種:由NSX-T Manager介面先連動Compute Manager後(也就是vCenter),再由NSX-T Manager介面以UI畫面來指揮vCenter進行一台台Controller的安裝。而另外一個方式,則是手動把三台NSX Controller手動匯入,然後透過命令列的方式,進行與NSX Manager間的註冊以及Controller-Cluster的建立。

聽起來是用UI介面來產生比較簡單齁,如果大家有興趣可以試一下,用這個方法也沒什麼不好。步驟大概是這樣:

  • 先在NSX-T UI介面內,選擇Fabric – Compute Managers – 按加號建立一個新的Compute Managers。輸入你環境內的vCenter名稱 / IP / 管理者帳號 / 密碼後,NSX-T Manager就會去把這個vCenter加入進行註冊了,如下圖
  • 在System – Components – Controller Cluster 這邊選擇ADD CONTROLLERS,就會出現UI,把相關參數填入,下一步下一步如果參數都沒問題的話,就會自動把各台controller產出了,如下面兩張圖

 

 

用上面的方法也可以,但下面我們要和各位討論的是手動匯入並且用Command Line配置的方法。用UI不是不好,但後續可能真的會碰到某些狀況:

  • 這個方式在vCenter / vSphere環境配置有問題的時候可能會失敗,與vCenter的穩定度有連動。而且大家一直下一步按下去如果出錯也不容易查錯
  • 更直接的是,NSX-T是一個泛用於vSphere以及vSphere以外的環境,所以真的有可能在安裝時,大家會碰到沒有vCenter的環境在(比如說純KVM的系統)。採用Command Line是一個比較泛用的方式,而且照著做也並不會太複雜。

Controller的手動安裝方式是這樣,首先如同NSX-T Manager,請大家先把NSX-T Controller三台的OVA檔分別匯入環境內,在我寫作網誌此時最新NSX-T 2.3.0版本的controller OVA檔案是nsx-controller-2.3.0.0.0.10085396.ova。匯入時幾點請稍微注意:

  • 如同NSX Manager,請輸入admin / audit / root三組用戶的密碼,可以設成一樣。用戶名不需要改。同樣的,複雜性密碼條件請在配置時要注意
  • Controller的網卡vnic (Network 1) 也應該要接在我們前篇網誌內所建立的PG-Management內
  • 把虛機名稱 / IP / Gateway / DNS / domain-name / NTP等等這些參數依據配置輸入
  • 在OVA匯入配置時,大家會看到一些參數不知道怎麼填,比如說Manager IP / Manager Token / Manager Thumbprint等等這些…反正你不知道怎麼填的這些就不要填。後面的指令內我們會把這些需要配的東西配上去。

三台controller匯入後,開機,以SSH或是VM console用admin / password登入進去。如同NSX Manager,各位可以用下列指令來確認環境是否正確:

         > get interface eth0

         > get configuration

         > ping <destination IP address>

接著我們要用Command Line來做下面的事情:把三台controller分別與nsx-manager註冊,同時這三台controller要建立起一個control-cluster,如下圖所示:

請依序執行下列的指令。首先請各位用admin / password登入NSX-T Manager輸入下列指令(指令為斜線,下方括號內為指令說明)

nsx-t-manager> get certificate api thumbprint

(這個指令會回應NSX-T Manager的thumbprint指紋值,後續每台NSX Controller與Edge要與Manager註冊時都需要這個值。請把這一大串值copy下來)

接著登入第一台Controller (NSX-T-Controller-1),同樣以admin / password登入。

nsx-t-controller-1> join management-plane <nsx-manager-ip> username admin password <password> thumbprint <nsx-manager-thumbprint>

(這個指令是讓這台controller與nsx-manager註冊,因此IP / username / password都是manager的對應參數,而thumbprint就是在NSX Manager上面查到的指紋值)

nsx-t-controller-1> set control-cluster security-model shared-secret secret <shared-password>

(這個指令在controller-1上配置了一個密碼,各個controller要互相溝通或是加入controller-cluster時必須要知道這個密碼,避免外部攻擊)

nsx-t-controller-1> initialize control-cluster

(從controller-1上,起始建立這一組control-cluster)

第一台controller配置完成了。接下來,我們要依序配置第二與第三台controller

nsx-t-controller-2> join management-plane <nsx-manager-ip> username admin password <password> thumbprint <nsx-manager-thumbprint>

(與前面一樣,這個指令是讓這controller-2與nsx-manager註冊)

nsx-t-controller-2> set control-cluster security-model shared-secret secret <shared-password>

(與前面一樣,這個指令在controller-2上配置了一個密碼。這個密碼當然應該要和我們在controller-1上面配的shared-secret一模一樣)

nsx-t-controller-2> get control-cluster certificate thumbprint

(這裡比較特別,我們要在controller-2上面抓一個特別的指紋值,下面要用到)

nsx-t-controller-1> join control-cluster <controller-2-IP> thumbprint <controller-2-thumbprint>

(請注意,這邊是回到第一台controller-1。在controller-1上,連往controller-2的IP地址,並以正確的指紋值把他加進來)

nsx-t-controller-2> activate control-clster

(又回到第二台controller-2,啟動自己身為controller的角色)

在controller-2配置好後,請把上面同樣的步驟,在controller-3上再執行一次。這樣我們就把三台controller以及其對應的control-cluster配置完成了。

幾個檢查指令:在NSX Manager上,用 > get management-cluster status,應該可以看到Manager與三個Controller的IP地址,而且management cluster / control cluster的狀態都是STABLE

在每一台NSX Controller上,可以用 > get managers 以及 > get control-cluster status指令檢查。在get control-cluster status內應該看到每台controller都是active,而且in majority地方顯示為true (代表control-cluster運作正常)

當然,此時在UI介面上,無論大家是看Dashboard,或是到System – Components – Controller Cluster內,都應該看到三台Controller是正常運作的狀況。

到此,NSX-T的管理層與控制層構件配完了,接下來我們要把Data Plane這邊的Edge虛機以及vSphere Host進行安裝並納入管理。