向 NSX 登錄 Antrea Kubernetes 叢集之前,必須先完成幾項必要工作。
您可以將多個 Antrea Kubernetes 叢集登錄至單一 NSX 部署。
確定已為 Antrea-NSX Interworking 介面卡開啟所需的連接埠
Antrea-NSX Interworking 介面卡在 Antrea Kubernetes 叢集中是以網繭形式執行,且該網繭使用主機網路模式。可以排程該網繭,以在任何 Kubernetes 節點上執行。因此,您必須確定 K8s 節點可以在 VMware Ports and Protocols 入口網站 (位於 https://ports.esp.vmware.com/home/NSX) 中提及的連接埠上,連線到 NSX IP 位址。
開啟此連結後,在搜尋文字方塊中輸入 Antrea Interworking Pod。
部署 Antrea Kubernetes 叢集
角色:Kubernetes 平台管理員
具有 Antrea 網路外掛程式的 Kubernetes 叢集必須已啟動並準備就緒。
- 已部署 Tanzu 管理叢集,且這些叢集處於執行中狀態。
- 已部署 Tanzu Kubernetes 叢集,且這些叢集處於執行中狀態。
- 已安裝 Tanzu 命令行介面 (CLI)。
如需這些工作的詳細資訊,請參閱 Tanzu Kubernetes Grid 說明文件,網址為 https://docs.vmware.com/tw/VMware-Tanzu-Kubernetes-Grid/index.html。
在您部署管理叢集時,會在管理叢集中自動啟用 Antrea 網路功能。
在 NSX 中新增適當授權
角色:NSX 管理員
- NSX Data Center Advanced
- NSX Data Center Enterprise Plus
- Antrea Enterprise Standalone
- 在 NSX Manager 中,導覽到 。
- 輸入授權金鑰。
建立自我簽署的安全性憑證
角色:NSX 管理員
需要使用自我簽署安全憑證,才能在 NSX 中建立主體身分識別使用者帳戶 (本主題後面會進一步說明)。
使用 OpenSSL 命令,為要向 NSX 登錄的每個 Antrea Kubernetes 叢集各建立一個自我簽署的安全性憑證。
例如,假設您要為名為 cluster-sales 的 Antrea Kubernetes 叢集建立一個長度為 2048 位的自我簽署 OpenSSL 憑證。以下 OpenSSL 命令可為此叢集產生私密金鑰檔案、憑證簽署要求檔案,以及自我簽署憑證檔案。
openssl genrsa -out cluster-sales-private.key 2048 openssl req -new -key cluster-sales-private.key -out cluster-sales.csr -subj "/C=US/ST=CA/L=Palo Alto/O=VMware/OU=Antrea Cluster/CN=cluster-sales" openssl x509 -req -days 3650 -sha256 -in cluster-sales.csr -signkey cluster-sales-private.key -out cluster-sales.crt
建立主體身分識別使用者
角色:NSX 管理員
管理平面介面卡和中央控制平面介面卡會使用主體身分識別 (PI) 使用者帳戶,在 NSX Manager 中進行驗證,並將本身識別為主體身分識別。PI 使用者擁有這些介面卡所報告的詳細目錄資源。NSX 會阻止其他使用者意外覆寫這些詳細目錄資源。
每個 Antrea Kubernetes 叢集都需要不同的 PI 使用者。叢集名稱在 NSX 中必須是唯一的。憑證一般名稱和 PI 使用者名稱必須與叢集名稱相同。NSX 不支援在叢集之間共用憑證和 PI 使用者。
在 NSX 中建立一個主體身分識別使用者,此使用者將具有您在上一個步驟中建立的自我簽署憑證。為這個主體身分識別使用者指派企業管理員角色。
- 在 NSX Manager UI 中,按一下系統索引標籤。
- 在設定下,導覽到 。
- 按一下 。
- 輸入主體身分識別使用者的名稱。例如,輸入 cluster-sales。
重要: 請確定指定給 NSX 主體身分識別使用者、憑證 CN 以及 bootstrap-config.yaml 檔中 clusterName 引數的名稱是相同的。
如需有關啟動程序組態檔的詳細資訊,請參閱編輯啟動程序組態檔案。
- 選取該角色以作為企業管理員。
- 在節點識別碼文字方塊中,輸入 Antrea Kubernetes 叢集的名稱。對於登錄至 NSX 中的所有 Kubernetes 叢集,該名稱必須是唯一的。例如,輸入 cluster-sales。
- 在憑證 PEM 文字區域中,貼上您先前建立的完整自我簽署憑證。請確定 -----BEGIN CERTIFICATE---- 和 ------END CERTIFICATE----- 行也已貼到此文字方塊中。
- 按一下儲存。
- 從左側導覽窗格中,在設定下面按一下憑證。驗證是否顯示了 Antrea Kubernetes 叢集的自我簽署憑證。
判斷 Kubernetes 叢集中的 Antrea 版本
角色:Kubernetes 平台管理員
您必須先判斷 Kubernetes 叢集中的 Antrea 開放原始碼版本,然後再下載 Antrea-NSX Interworking 檔案 (antrea-interworking-version.zip),這是本主題中的下一個必要條件。
例如,請參見下表。
VMware Container Networking 版本 | 以 Antrea OSS 版本為基礎 | 與 Antrea-NSX Interworking 版本相容 |
---|---|---|
v1.5.0 請參閱:v1.5.0 版本說明 |
v1.7.1 |
v0.7.* |
v1.4.0 請參閱:v1.4.0 版本說明 |
v1.5.2 |
v0.5.* |
v1.3.1 |
v1.2.3 |
v0.2.* |
- 尋找 Antrea 控制器網繭名稱。Kubernetes 會使用隨機字串產生此名稱,因此,您可以從 K8s 叢集中取得該名稱。
例如:
$ kubectl get pod -n kube-system -l component=antrea-controller NAME READY STATUS RESTARTS AGE antrea-controller-6b8cb7cd59-wcjvd 1/1 Running 0 13d
在此命令輸出中,Antrea 控制器網繭名稱為 antrea-controller-6b8cb7cd59-wcjvd。
- 執行以下命令,以擷取 Antrea 開放原始碼版本:
$ kubectl exec -it antrea-controller-6b8cb7cd59-wcjvd -n kube-system -- antctl version antctlVersion: v1.7.1-cacafc0 controllerVersion: v1.7.1-cacafc0
在此命令輸出中,v1.7.1 是您想判斷的 Antrea 開放原始碼版本。
下載 Antrea-NSX Interworking Zip 檔案
角色:Kubernetes 平台管理員
- 在網頁瀏覽器中,開啟 VMware Customer Connect 入口網站上的所有下載項目頁面,然後使用您的 VMware 識別碼登入。
- 從所有產品下拉式功能表中,選取網路與安全性。
- 在 VMware Antrea 旁,按一下下載產品。會開啟下載 VMware Antrea 頁面。
- 在您所需的 VMware Container Networking with Antrea 版本旁,按一下移至下載。
- 在頁面上尋找 Antrea-NSX Interworking 介面卡映像和資訊清單服務包。按一下閱讀更多,確認 antrea-interworking-version.zip 檔案中提及的版本,與之前您判斷的 Antrea 開放原始碼軟體版本相容。
- 按一下立即下載。
檔案名稱 | 說明 |
---|---|
interworking.yaml | 用來向 NSX 登錄 Antrea Kubernetes 叢集的 YAML 部署資訊清單檔案。 |
bootstrap-config.yaml | 在這個 YAML 檔案中,您可以指定下列詳細資料以進行登錄:Antrea Kubernetes 叢集名稱、NSX Manager IP 位址、Kubernetes 叢集的 TLS 憑證,以及 Kubernetes 叢集的私密金鑰。 |
deregisterjob.yaml | 這是 YAML 資訊清單檔案,用來從 NSX 中解除登錄 Antrea Kubernetes 叢集。 |
ns-label-webhook.yaml | 用於自動在新建的 Kubernetes 命名空間中新增標籤的 Webhook 定義。僅當為 Kubernetes 1.20 版或更早版本時,才會使用此 YAML 檔案。 |
interworking-version.tar | 管理平面介面卡和中央控制平面介面卡容器映像的封存檔。 |
將容器映像匯入到容器登錄
角色:Kubernetes 平台管理員
有兩種方法可用來完成此必要工作。
- 方法 1 (建議):從 VMware Harbor Registry提取映像
-
VMware 已將容器映像裝載在 VMware Harbor Registry 上。
映像位置如下所示:- projects.registry.vmware.com/antreainterworking/interworking-debian:version
- projects.registry.vmware.com/antreainterworking/interworking-ubuntu:version
- projects.registry.vmware.com/antreainterworking/interworking-photon:version
如需 version 的相關資訊,請參閱 VMware Container Networking with Antrea 版本說明 (https://docs.vmware.com/tw/VMware-Container-Networking-with-Antrea/index.html)。
在所選的任何文字編輯器中開啟 interworking.yaml 和 deregisterjob.yaml 檔案,並將所有映像 URL 取代為這其中一個映像位置。
這種方法的優點是,將 .yaml 檔案提交至 Kubernetes API 伺服器以登錄叢集時,Kubernetes 可以自動從 VMware Harbor Registry 提取容器映像。
- 方法 2:手動將映像複製到 Kubernetes Worker 節點和控制平面節點
-
如果 Kubernetes 基礎架構無法連線至網際網路,或者連線速度太慢,請使用這個手動方法。
從 interworking-version.tar 檔案解壓縮容器映像,並將其複製到要向 NSX 登錄的每個 Antrea Kubernetes 叢集內的 Kubernetes Worker 節點和控制平面節點。
例如,在 Tanzu CLI 中,針對每個 Kubernetes Worker 節點 IP 和控制平面節點 IP,執行以下命令,以複製 .tar 和 .yaml 檔案:scp -o StrictHostKeyChecking=no interworking* capv@{node-ip}:/home/capv
將映像匯入至由容器執行階段引擎所管理的本機 Kubernetes 登錄。或者,如果您的組織具有私用容器登錄,您可以將容器映像匯入至私用容器登錄。
例如,在 Tanzu CLI 中,針對每個 Kubernetes Worker 節點 IP 和控制平面節點 IP,執行以下命令,以將容器映像匯入至本機 Kubernetes 登錄:
ssh capv@{node-ip} sudo ctr -n=k8s.io i import interworking-{version-id}.tar