如本說明文件所述,向 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:確定已為 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

工作 2:部署 Antrea Kubernetes 叢集

角色:Kubernetes 平台管理員

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

例如,若要將 Tanzu Kubernetes Grid 執行個體中的叢集與 NSX 整合,請確定您已完成下列工作:
  • 已部署 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 中新增適當的授權

角色:NSX 管理員

請確定您的 NSX 環境具有以下授權之一:

  • NSX Data Center Advanced
  • NSX Data Center Enterprise Plus
  • Antrea Enterprise Standalone

工作 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. 開啟 Broadcom 支援入口網站上的我的下載頁面。
  2. 從右上角,按一下選取 Broadcom 部門功能表。,然後選取 VMware Cloud Foundation

    我的下載頁面僅顯示您有權下載的 SKU。

  3. 按一下 VMware Antrea,然後按一下 VMware Antrea Enterprise
  4. 按一下與您相關的 VMware Container Networking with Antrea 版本。主要下載索引標籤即會開啟。
  5. 在此索引標籤頁面上搜尋 VMware Container Networking with Antrea、NSX Interworking 介面卡映像和資訊清單檔案名稱。
  6. 確認檔案名稱下提及的 antrea-interworking-version.zip 檔案的版本與您之前確定的 Antrea 開放原始碼軟體版本相容。

    例如:


    Antrea 開放原始碼軟體版本顯示在檔案名稱下方。
  7. 選取我同意 Broadcom 條款與條件核取方塊。
  8. 按一下下載圖示。
將 ZIP 檔解壓縮。其包含以下檔案。
檔案名稱 說明
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 管理員

如果 Kubernetes 叢集中的 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 中建立主體身分識別使用者帳戶 (本主題後面會進一步說明)。

使用 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
備註: 在用來建立 .csr 檔案的 openssl req 命令中,請確定每個 Antrea Kubernetes 叢集的「一般名稱 (CN)」是不同的。

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

角色:NSX 管理員

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

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

NSX 中建立一個主體身分識別使用者,此使用者將具有您在上一個步驟中建立的自我簽署憑證。為這個主體身分識別使用者指派企業管理員角色。

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

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

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