如本說明文件所述,向 NSX 登錄 Antrea Kubernetes 叢集之前,必須先完成幾項必要工作。
您可以將多個 Antrea Kubernetes 叢集登錄至單一 NSX 部署。
如果 Kubernetes 叢集中的 VMware Container Networking™ with Antrea™ 版本為 1.8.0 或更新版本,請執行工作 1 至 6 以及工作 9。您可以略過本說明文件中的工作 7 和 8。
如果 Kubernetes 叢集中的 VMware Container Networking™ with Antrea™ 版本為 1.7.0 或更早版本,請執行工作 1 至 5 以及工作 7 至 9。工作 6 不適用。
工作 1:在 NSX 中新增適當的授權
角色:NSX 管理員
NSX 環境必須具有授權系統使用網路功能的基本授權,以及授權系統具有分散式防火牆功能完整存取權的安全性授權。
若要瞭解可用的基本授權和安全性授權,請參閱授權類型。
工作 2:確定已為 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。
工作 3:部署 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 網路功能。
工作 4:確定 Kubernetes 叢集中的 Antrea 版本
角色:Kubernetes 平台管理員
您必須先判斷 Kubernetes 叢集中的 Antrea 開放原始碼版本,然後再下載 Antrea-NSX Interworking 檔案 (antrea-interworking-version.zip),這是本主題中的下一個必要條件。
例如,請參見下表。
下表並不是所有 VMware Container Networking 版本和 Antrea-NSX Interworking 版本的完整清單。如需取得完整清單,請參閱位於 https://docs.vmware.com/tw/VMware-Container-Networking-with-Antrea/index.html 的 VMware Container Networking™ with Antrea™ 版本說明。
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 開放原始碼版本。
工作 5:下載 Antrea-NSX Interworking Zip 檔案
角色:Kubernetes 平台管理員
- 開啟 Broadcom 支援入口網站上的我的下載頁面。
- 從右上角,按一下,然後選取 VMware Cloud Foundation。
我的下載頁面僅顯示您有權下載的 SKU。
- 按一下 VMware Antrea,然後按一下 VMware Antrea Enterprise。
- 按一下與您相關的 VMware Container Networking with Antrea 版本。主要下載索引標籤即會開啟。
- 在此索引標籤頁面上搜尋 VMware Container Networking with Antrea、NSX Interworking 介面卡映像和資訊清單檔案名稱。
- 確認檔案名稱下提及的 antrea-interworking-version.zip 檔案的版本與您之前確定的 Antrea 開放原始碼軟體版本相容。
例如:
- 選取我同意 Broadcom 條款與條件核取方塊。
- 按一下下載圖示。
檔案名稱 | 說明 |
---|---|
interworking.yaml | 用來向 NSX 登錄 Antrea Kubernetes 叢集的 YAML 部署資訊清單檔案。 |
bootstrap-config.yaml | 在這個 YAML 檔案中,您可以指定下列詳細資料以進行登錄:Antrea Kubernetes 叢集名稱、NSX Manager IP 位址、Kubernetes 叢集的 TLS 憑證,以及 Kubernetes 叢集的私密金鑰。 |
bin/antreansxctl | Antrea-NSX 命令列公用程式。此公用程式可在 VMware Container Networking 1.7.0 版或更新版本的 antrea-interworking.zip 檔案中取得。 |
deregisterjob.yaml | 這是 YAML 資訊清單檔案,用來從 NSX 中解除登錄 Antrea Kubernetes 叢集。 |
ns-label-webhook.yaml | 用於自動在新建的 Kubernetes 命名空間中新增標籤的 Webhook 定義。僅當為 Kubernetes 1.20 版或更早版本時,才會使用此 YAML 檔案。 |
interworking-version.tar | 管理平面介面卡和中央控制平面介面卡容器映像的封存檔。 |
工作 6:執行 antreansxctl bootstrap 命令
角色:NSX 管理員
- 產生自我簽署的憑證
- 建立主體身分識別 (PI) 使用者
- 建立啟動程序組態 (bootstrap-config.yaml)
備註: 內嵌在 antreansxctl 命令列公用程式中的 bootstrap-config.yaml 範本與目前 Interworking 版本相容。命令列公用程式不會依賴 antrea-interworking.zip 檔案中的 bootstrap-config.yaml 檔案來執行。
若要執行 antreansxctl bootstrap 命令,請使用 antreansxctl 命令列公用程式。您可以在之前下載的 antrea-interworking.zip 檔案中找到此公用程式。
antreansxctl 公用程式是僅適用於 Linux 的可執行檔。因此,您需要使用 Linux 機器執行此公用程式。
若要瞭解 antreansxctl bootstrap 命令及其各種組態選項的用法,請參閱《VMware Container Networking with Antrea 安裝指南》中的 antreansxctl 命令列說明文件。
工作 7:建立自我簽署的安全性憑證
角色: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
工作 8:建立主體身分識別使用者
角色: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 叢集的自我簽署憑證。
工作 9:將容器映像匯入至容器登錄
角色: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
若要讓這個方法在設定了 NAT 的 vSphere with Tanzu 環境中運作,必須在跳轉主機虛擬機器上執行 SCP 和 SSH 命令以連線至 Tanzu Kubernetes 叢集節點。若要進一步瞭解有關建立 Linux 跳轉主機虛擬機器以及設定與叢集節點的 SSH 連線,請參閱 vSphere with Tanzu 說明文件,網址為 https://docs.vmware.com/tw/VMware-vSphere/index.html。