NSX-T Data Center 登錄 Antrea 容器叢集之前,必須先完成幾項必要工作。

您可以將多個 Antrea 容器叢集登錄至單一 NSX-T Data Center 部署。

如果容器叢集中的 VMware Container Networking™ with Antrea™ 版本為 1.8.0 或更新版本,請執行工作 1 至 6 以及工作 9。您可以略過本說明文件中的工作 7 和 8。

如果容器叢集中的 VMware Container Networking™ with Antrea™ 版本為 1.7.0 或更早版本,請執行工作 1 至 5 以及工作 7 至 9。工作 6 不適用。

工作 1:確定已為 Antrea-NSX Interworking 介面卡開啟所需的連接埠

Antrea-NSX Interworking 介面卡在 Antrea 容器叢集中是以網繭形式執行,且該網繭使用主機網路模式。可以排程該網繭,以在任何容器叢集節點上執行。因此,您必須確定叢集節點可以在 VMware Ports and Protocols 入口網站 (位於 https://ports.esp.vmware.com/home/NSX) 中提及的連接埠上,連線到 NSX-T Data Center IP 位址。

開啟此連結後,在搜尋文字方塊中輸入 Antrea Interworking Pod

工作 2:部署 Antrea 容器叢集

角色:Kubernetes 平台管理員

具有 Antrea 網路外掛程式的 Kubernetes 叢集必須已啟動並準備就緒。

例如,若要將 Tanzu Kubernetes Grid 執行個體中的叢集與 NSX-T Data Center 整合,請確定您已完成下列工作:
  • 已部署 Tanzu 管理叢集,且這些叢集處於執行中狀態。
  • 已部署 Tanzu Kubernetes 叢集,且這些叢集處於執行中狀態。
  • 已安裝 Tanzu 命令列介面 (CLI)。

如需這些工作的詳細資訊,請參閱 Tanzu Kubernetes Grid 說明文件,網址為 https://docs.vmware.com/tw/VMware-Tanzu-Kubernetes-Grid/index.html

在您部署管理叢集時,會在管理叢集中自動啟用 Antrea 網路功能。

備註: 還支援 networkPolicyOnly 模式下的 Antrea CNI。若要深入瞭解,請參閱 《VMware Container Networking with Antrea 安裝指南》中的 在 networkPolicyOnly 模式下安裝 VMware Container Networking with Antrea 說明文件。

工作 3:在 NSX-T Data Center 中新增適當的授權

角色:NSX 管理員

請確定您的 NSX-T Data Center 環境具有以下授權之一:
  • NSX Data Center Advanced
  • NSX Data Center Enterprise Plus
  • Antrea Enterprise Standalone
若要新增授權:
  1. NSX Manager 中,導覽到系統 > 授權 > 新增授權
  2. 輸入授權金鑰。

工作 4:確定 Kubernetes 叢集中的 Antrea 版本

角色:Kubernetes 平台管理員

您必須先判斷 Kubernetes 叢集中的 Antrea 開放原始碼版本,然後再下載 Antrea-NSX Interworking 檔案 (antrea-interworking-version.zip),這是本主題中的下一個必要條件。

重要: 每個 VMware Container Networking™ with Antrea™ 版本是以一個 Antrea 開放原始碼版本為基礎。 Antrea- NSX Interworking 版本與同一 VMware Container Networking 版本中的 Antrea 開放原始碼軟體版本相容。

例如,請參見下表。

下表並不是所有 VMware Container Networking 版本和 Antrea-NSX Interworking 版本的完整清單。如需取得完整清單,請參閱位於 https://docs.vmware.com/tw/VMware-Container-Networking-with-Antrea/index.htmlVMware 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.3.1 - 1.2.3 版本說明

v1.2.3

v0.2.*

若要判斷 Kubernetes 叢集中的 Antrea 開放原始碼版本,請執行以下步驟:
  1. 尋找 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

  2. 執行以下命令,以擷取 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 平台管理員

完成以下步驟以下載 antrea-interworking-version.zip 檔案:
  1. 在網頁瀏覽器中,開啟 VMware Customer Connect 入口網站上的所有下載項目頁面,然後使用您的 VMware 識別碼登入。
  2. 所有產品下拉式功能表中,選取網路與安全性
  3. VMware Antrea 旁,按一下下載產品。會開啟下載 VMware Antrea 頁面。
  4. 在您所需的 VMware Container Networking with Antrea 版本旁,按一下移至下載
  5. 在頁面上尋找 Antrea-NSX Interworking 介面卡映像和資訊清單服務包。按一下閱讀更多,確認 antrea-interworking-version.zip 檔案中提及的版本,與之前您判斷的 Antrea 開放原始碼軟體版本相容。
  6. 按一下立即下載
將 ZIP 檔解壓縮。其包含以下檔案。
檔案名稱 說明
interworking.yaml 用來向 NSX-T 登錄 Antrea 容器叢集的 YAML 部署資訊清單檔案。
bootstrap-config.yaml 在這個 YAML 檔案中,您可以指定下列詳細資料以進行登錄:Antrea 容器叢集名稱、NSX Manager IP 位址、容器叢集的 TLS 憑證,以及容器叢集的私密金鑰。
bin/antreansxctl Antrea-NSX 命令列公用程式。此公用程式可在 VMware Container Networking 1.7.0 版或更新版本的 antrea-interworking.zip 檔案中取得。
deregisterjob.yaml 這是 YAML 資訊清單檔案,用來從 NSX-T 中解除登錄 Antrea 容器叢集。
ns-label-webhook.yaml 用於自動在新建的 Kubernetes 命名空間中新增標籤的 Webhook 定義。僅當為 Kubernetes 1.20 版或更早版本時,才會使用此 YAML 檔案。
interworking-version.tar 管理平面介面卡中央控制平面介面卡容器映像的封存檔。

工作 6:執行 antreansxctl bootstrap 命令

角色:NSX 管理員

如果容器叢集中的 VMware Container Networking™ with Antrea™ 版本為 1.8.0 或更新版本,則可以執行 antreansxctl bootstrap 命令,以在登錄程序中自動化以下的必要工作:
  • 產生自我簽署的憑證
  • 建立主體身分識別 (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-T 中建立主體身分識別使用者帳戶 (本主題後面會進一步說明)。

使用 OpenSSL 命令,為要向 NSX-T 登錄的每個 Antrea 容器叢集各建立一個自我簽署的安全性憑證。

例如,假設您要為名為 cluster-sales 的 Antrea 容器叢集建立一個長度為 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
備註: 在用來建立 .csr 檔案的 openssl req 命令中,請確定每個 Antrea 容器叢集的「一般名稱 (CN)」是不同的。

工作 8:建立主體身分識別使用者

角色:NSX 管理員

管理平面介面卡中央控制平面介面卡會使用主體身分識別 (PI) 使用者帳戶,在 NSX Manager 中進行驗證,並將本身識別為主體身分識別。PI 使用者擁有這些介面卡所報告的詳細目錄資源。NSX-T 會阻止其他使用者意外覆寫這些詳細目錄資源。

每個 Antrea 容器叢集都需要不同的 PI 使用者。叢集名稱在 NSX-T 中必須是唯一的。憑證一般名稱和 PI 使用者名稱必須與叢集名稱相同。NSX-T 不支援在叢集之間共用憑證和 PI 使用者。

NSX-T 中建立一個主體身分識別使用者,此使用者將具有您在上一個步驟中建立的自我簽署憑證。為這個主體身分識別使用者指派企業管理員角色。此主體身分識別使用者對於 Antrea 容器叢集而言具有唯一性。

若要建立主體身分識別使用者,請執行下列動作:
  1. NSX Manager UI 中,按一下系統索引標籤。
  2. 設定下,導覽到使用者管理 > 使用者角色指派
  3. 按一下新增 > 具有角色的主體身分識別
  4. 輸入主體身分識別使用者的名稱。例如,輸入 cluster-sales
    重要: 請確定指定給 NSX 主體身分識別使用者、憑證 CN 以及 bootstrap-config.yaml 檔中 clusterName 引數的名稱是相同的。

    如需有關啟動程序組態檔的詳細資訊,請參閱編輯啟動程序組態檔案

  5. 選取該角色以作為企業管理員
  6. 節點識別碼文字方塊中,輸入 Antrea 容器叢集的名稱。對於登錄至 NSX-T 中的所有容器叢集,該名稱必須是唯一的。例如,輸入 cluster-sales
  7. 憑證 PEM 文字區域中,貼上您先前建立的完整自我簽署憑證。請確定 -----BEGIN CERTIFICATE---- 和 ------END CERTIFICATE----- 行也已貼到此文字方塊中。
  8. 按一下儲存
  9. 從左側導覽窗格中,在設定下面按一下憑證。驗證是否顯示了 Antrea 容器叢集的自我簽署憑證。

工作 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.yamlderegisterjob.yaml 檔案,並將所有映像 URL 取代為這其中一個映像位置。

這種方法的優點是,將 .yaml 檔案提交至 Kubernetes API 伺服器以登錄容器叢集時,Kubernetes 可以自動從 VMware Harbor Registry 提取容器映像。

方法 2:手動將映像複製到 Kubernetes Worker 節點和控制平面節點

如果 Kubernetes 基礎架構無法連線至網際網路,或者連線速度太慢,請使用這個手動方法。

interworking-version.tar 檔案解壓縮容器映像,並將其複製到要向 NSX-T 登錄的每個 Antrea 容器叢集內的 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