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

本篇網誌繼續之前討論Antrea與NSX Manager整合的手動安裝流程,接下來要討論流程四、五、六。這幾篇討論的安裝流程圖如下,相關的步驟於官方文件https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.2/administration/GUID-DFD8033B-22E2-4D7A-BD58-F68814ECDEB1.html , ” Registering an Antrea Container Cluster to NSX-T Data Center” 內有正式的說明。

流程四:修改安裝配置檔,輸入 NSX 及憑證相關資訊

流程一內我們由VMware官網下載了NSX interworking agent的配置檔,包含了interworking.yaml, bootstrap-config.yaml, deregisterjob.yaml這幾個。本流程內要修改這些YAML檔內相關的參數。首先在interworking.yaml以及deregisterjob.yaml這兩個檔內,我們要告知這個NSX interworking agent的image檔來源在哪。

在大部分的安裝環境有Internet連線的話,上述的image於VMware Public Harbor Registry都有。路徑可以這樣找:

  1. 在流程一內,先確定了Kubernetes Cluster內安裝的Antrea商業版本。此時,請到這個對應Antrea商業版本的Release Note頁面
  2. 確認安裝的TKC或是原生Kubernetes Cluster內,Worker Node的作業系統是哪種。在Tanzu部署的TKC配置時,通常底層Worker Node的作業系統是Ubuntu或是Photon OS。在Release Note內,依據作業系統型態,找到對應的NSX interworking agent的下載路徑。

在這幾篇網誌的展示內,我利用vSphere with Tanzu 建立的TKC 1.22.9,內建的Antrea商業版本是v1.3.1-1.2.3(請參閱流程一)。同時,配置TKC時選擇的底層OS是Photon。下圖是VMware Container Networking with Antrea 1.3.1-1.2.3版的Release Notes:https://docs.vmware.com/en/VMware-Container-Networking-with-Antrea/1.3.1/rn/VMware-Container-Networking-with-Antrea-Version-131-123-Release-Notes.html

請注意上圖內的紅框部分,就是對應到不同K8S Node作業系統的NSX interworking agent的下載路徑。因為我的K8S底層是photon,因此路徑就是這裡所標示的 projects.registry.vmware.com/antreainterworking/interworking-photon:0.2.0 。

本步驟內,請到interworking.yaml與 deregisterjob.yaml這兩個YAML配置檔內,找到所有的image部分,把上述的image下載路徑輸入進去,像是下面這張圖。在v1.3.1-1.2.3的interworking.yaml有六個地方要改,deregisterjob.yaml有一處。

如果是Air-Gap,沒有Internet連結到VMware Public Harbor Registry的環境呢?此時的做法就是將在流程一內同時已有下載的image檔案,放到內部Harbor Registry,或是手動裝到每個Worker Node裏面。請參考正式文件 https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.2/administration/GUID-DFD8033B-22E2-4D7A-BD58-F68814ECDEB1.html , ” Registering an Antrea Container Cluster to NSX-T Data Center” 裡面的最後一段,有相關指令說明,如下圖:

接著下個步驟:在bootstrap-config.yaml配置檔內,請找到下列四個欄位輸入:

  • clusterName: 請輸入這個K8S Cluster的名稱。必須與流程二與流程三內輸入的CN Name與Node ID完全一致。在這個範例內,是 tkgs-122-cluster
  • NSXManagers: 在括弧內填入 NSX Manager的IP地址,依據環境是有單台或三台NSX Managers,把IP全部填入。
  • tls.crt: 請利用 cat <流程二-憑證檔名> | base64 -w 0 的指令,將結果複製貼上
  • tls.key: 請利用 cat <流程二-私鑰檔名> | base64 -w 0 的指令,將結果複製貼上

在前面流程二,我們建立的憑證檔是tkgs-122-cluster.crt,私鑰檔是tkgs-122-cluster-private.key。下圖內,利用cat / base64 指令,取得的結果為

請把上圖的憑證 / 私鑰完整剪貼到bootstrap-config.yaml內,千萬不要遺漏了。下圖就是我們要修改的bootstrap-config.yaml範例圖,包含前面討論要修改的四個部分。

這樣所有的配置檔就修改完成了。上述參數的詳細輸入與範例,也請參考正式文件說明:https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.2/administration/GUID-1AC65601-8B35-442D-8613-D3C49F37D1CC.html ,有很完整的討論

流程五:啟用配置檔

流程五極為直接,請將上述配置檔放到可控制這個Kubernetes Cluster的跳板機內,執行下列kubectl指令進行安裝:

# kubectl apply -f bootstrap-config.yaml -f interworking.yaml

接著,可以利用kubectl get pods -n vmware-system-antrea這個指令看NSX interworking-agent的安裝狀態。若一段時間後,STATUS停留在Running,4個內部container都是寫READY,此時就安裝完成了

流程六:在NSX Manager內檢視相關Kubernetes Cluster Inventory資訊

當前面步驟順利完成,此時到NSX Manager – Inventory – Containers – Clusters就可以看到我們安裝的Kubernetes Cluster出現,也可以查詢相關的Cluster / Nodes / Pods / Services資訊,如下圖。接著,大家就可以如網誌內第六第七篇的說明,來進行微分段功能相關配置了。

多說一句,在上圖內,大家可以看到同一個NSX Manager可以管理多個Kubernetes Cluster。上面的配置內我們接了一個Tanzu Kubernetes Grid產出的Cluster (tkgm-122-tkc03)、本範例內以vSphere with Tanzu配置的Cluster (tkgs-122-cluster)、以及另一個手動建立的原生K8S叢集 (vanilla-cluster)。如前所述,這些不同方式建立的Kubernetes叢集,都可以透過一模一樣的流程,連接到NSX Manager內進行管理。

在這三篇網誌內我們詳細討論了如何將一個採用Antrea作為Container Networking Interface的K8S叢集,註冊到NSX Manager內的完整流程。以NSX來管理Kubernetes Pod東西向防火牆是很多Tanzu客戶喜愛或打算部署的功能,因此大家應該也會有機會在自己或客戶的環境內進行相關配置,希望前面的討論有順利涵蓋到安裝時需要注意的各個面向。

到目前我們討論的都著重在使用Antrea整合NSX做容器環境的安全保護。下一篇網誌開始我想介紹完全不同的課題,針對Antrea的兩個網路與IP管理功能,分別是Antrea Egress以及Antrea IPAM,與大家進行說明。