VMware的開放軟體專案Container Service Extension 2.0版已於2019/05/24正式發佈,這個版本最大的特色是將企業版的PKS解決方案納入CSE的管理範疇內,未來使用VMware雲服務提供商雲服務的企業,其IT人員將可利用CSE在雲端快速建立基於Enterprise PKS的標準K8S叢集,他們的開發人員就可在此環境部署容器服務,且可利用PKS的管理方式,對這些K8S叢集進行管理,大幅提高企業運行生產環境等級容器服務的意願。

這個發佈提供VMware雲服務提供商一個快速進入Kubernetes as a Service市場的捷徑,只要他們是以vCloud Director當成是雲服務的管理平台,那就可以藉此快速打造一個滿足多租戶和自服務的K8S的用戶環境。

不熟悉CSE架構的讀者可參閱我之前的這篇blog

此篇blog說明的是當雲服務提供商想要提供這個服務前,在建置測試環境時需注意的一些事項,首先,我們需要參考這篇說明,藍色和紫色所代表的就是vCD已經可以將Enterprise PKS的環境,拿來當成他的Organization VDC(虛擬數據中心)的資源,從而把這些資源分派給不同租戶或同一租戶使用。

Architecture 1

因為PKS只支援NSX-T的安裝方式,所以我們先來說明一下環境準備時,在NSX-T這一邊需要注意些什麼。

根據文件所述,CSE 2.0支援NSX-T 2.3和2.4,vCD支援版本則是9.5和9.7。

compatible

NSX-T準備事項一:

根據文件要求,CSE、vCloud Director和PKS需要安裝在同一個管理網段,所以選擇將PKS管理組件安裝在VSS/VDS網段,由於是將PKS管理組件裝在企業內網中與vCD可以路由到的網段內,而不是選擇一般安裝PKS的方式是將管理組件安裝在NSX-T的某一個T1下,所以這種方式我們不需要事先在NSX-T的T0路由中,加入對PKS管理組件的NAT規則。

no-nat

NSX-T準備事項二:

當我們安裝好NSX-T後,我們需要準備NSX Manager CA的相關憑證簽章資訊,以便接下來能順利安裝PKS。我們必須在配置PKS時,在”NSX Manager CA Cert”這個欄位提供這個資料。

  1. 建立一個Self-Signed的憑證:

方便起見,我們建立一個名為nsx-cert.cnf內容如下的檔案,置換相關NSX-T的FQDN和IP資訊PKS1

Export NSX FQDN 

export2export1

利用openssl產生憑證

generate self sign

驗證一下NSX的IP是否在SAN欄位內是正確的

openssl

2. 在NSX-T GUI導入憑證:

於NSX Manager內,註冊憑證 System -> Trust -> Certificates, 選取 Import -> Import Certificate

import NSX

import1

import NSX 2

3.查看剛剛導入的憑證ID,用命令行註冊憑證:

post

 

稍後當我們要安裝PKS時,我們必須複製底下的內容到PKS的”Networking”項目中的”NSX Manager CA Cert”欄位內。

 

import NSX 4

 

import NSX 5

NSX-T準備事項三:

在NSX-T中新增一個使用者代號,未來PKS會以這個使用者代號和權限,在管理者新增或刪除k8S叢集時,於NSX-T內啟動相關的工作,如自動新增T1路由,新增修改NAT等等。

這個使用者在PKS稱為Superuser Identity Principal,相關安裝方式請參閱PKS官方文件,筆者建議利用腳本方式比較方便,即文件裡的“Option B: Generate and Register the Certificate and Key Using Scripts”方式。

安裝完後,應可在NSX –> System –> User看到新增的使用者

user1

NSX-T準備事項四:

建立PKS的Floating IP Pool,這個Pool是未來PKS建立K8S Cluster時,要分配給Cluster負載均衡的對外VIP位址網段。

IP-Pool

另外要在NSX-T先準備好我們想讓PKS在建立K8S Cluster時,Master/Worker虛擬機和未來Container (POD)會使用的網段。

NodePOD NW

要注意的是這兩個網段我們都不需要事先去建立T1路由或相關的虛擬交換機(Swtiching),只是先預告未來PKS會用到的網路是這些網段。

以上是先針對網路部分做一個說明,接下來會對實際部署PKS和vCD的整合再另做分享,希望對讀者有一些幫助,謝謝!