身為 vSphere 管理員,您可以透過設定 vSphere 網路堆疊以提供與工作負載的連線,從而啟用 vSphere 叢集上的工作負載管理平台。設定了 vSphere 網路的 主管叢集 支援部署使用 Tanzu Kubernetes Grid 服務 建立的 Tanzu Kubernetes 叢集。不支援執行 vSphere 網繭 或使用內嵌式 Harbor 登錄

注意: 設定 主管叢集 後,請勿停用 vSphere DRS。始終啟用 DRS 是在 主管叢集 上執行工作負載的必要條件。停用 DRS 會導致 Tanzu Kubernetes 叢集中斷。

必要條件

程序

  1. 從主功能表中,選取工作負載管理
  2. 選取 主管叢集 的授權選項。
    • 如果您具有有效的 Tanzu 版本授權,請按一下新增授權,將授權金鑰新增至 vSphere 的授權詳細目錄中。

    • 如果您還沒有 Tanzu 版本授權,請輸入連絡人詳細資料,以便可從 VMware 接收通訊,然後按一下開始使用

    主管叢集 的評估期會持續 60 天。在該期間內,您必須為叢集指派有效的 Tanzu 版本授權。如果您已新增 Tanzu 版本授權金鑰,則可以在完成 主管叢集 設定後的 60 天評估期內指派該金鑰。

  3. 工作負載管理畫面上,再次按一下開始使用
  4. 選取 vCenter Server 系統,選取 vCenter Server 網路,然後按下一步
  5. 從相容叢集的清單選取叢集。
  6. 控制平面大小頁面中,針對將在叢集的每台主機上建立的 Kubernetes 控制平面虛擬機器選取大小。

    您配置給控制平面虛擬機器的資源量決定了 主管叢集 可管理的 Kubernetes 工作負載數量。

  7. 負載平衡器畫面上,選取您要使用的負載平衡器。您可以選取 NSX Advanced Load Balancer 或 HAProxy。
    • NSX Advanced Load Balancer 輸入下列設定:

      選項

      說明

      名稱

      輸入 NSX Advanced Load Balancer 的名稱。

      Avi 控制器 IP

      NSX Advanced Load Balancer 控制器的 IP 位址。

      預設連接埠為 443

      使用者名稱

      使用 NSX Advanced Load Balancer 設定的使用者名稱。您可以使用此使用者名稱來存取該控制器。

      密碼

      使用者名稱的密碼。

      伺服器憑證授權機構

      控制器使用的憑證。

      您可以提供在設定期間指派的憑證。

      如需詳細資訊,請參閱 將憑證指派給控制器

    • 為 HAProxy 輸入下列設定:

      選項

      說明

      名稱

      負載平衡器的使用者易記名稱。

      數據平面 API 位址

      HAProxy 數據平面 API 的 IP 位址和連接埠。此元件可控制 HAProxy 伺服器,並在 HAProxy 虛擬機器內執行。這是 HAProxy 應用裝置的管理網路 IP 位址。

      使用者名稱

      使用 HAProxy OVA 檔案設定的使用者名稱。您可以使用此名稱透過 HAProxy 數據平面 API 進行驗證。

      密碼

      使用者名稱的密碼。

      虛擬伺服器的 IP 位址範圍

      Tanzu Kubernetes 叢集在工作負載網路中使用的 IP 位址範圍。此 IP 範圍來自於您在 HAProxy 應用裝置部署期間設定的 CIDR 中所定義的 IP 清單。通常是 HAProxy 部署中指定的整個範圍,但也可以是該 CIDR 的子集,因為您可以建立多個主管叢集並使用來自該 CIDR 範圍中的 IP。此範圍不得與在此精靈中為工作負載網路定義的 IP 範圍重疊。此外,此範圍還不得與此工作負載網路上的任何 DHCP 範圍重疊。

      伺服器憑證授權機構

      採用 PEM 格式的憑證,該憑證已簽署,或者是數據平面 API 提供之伺服器憑證的受信任根憑證。

      • 選項 1:如果啟用根存取,則以 root 身分透過 SSH 進入 HAProxy 虛擬機器,並將 /etc/haproxy/ca.crt 複製到伺服器憑證授權機構。請勿使用 \n 格式的轉義行。

      • 選項 2:在 HAProxy 虛擬機器上按一下滑鼠右鍵,然後選取編輯設定。從相應的欄位複製 CA 憑證,然後使用轉換工具 (例如 https://www.base64decode.org/) 從 Base64 進行轉換。

      • 選項 3:執行下列 PowerCLI 指令碼。使用適當的值取代變數 $vc$vc_user$vc_password

        $vc = "10.21.32.43"
        $vc_user = "administrator@vsphere.local"
        $vc_password = "PASSWORD"
        Connect-VIServer -User $vc_user -Password $vc_password -Server $vc
        $VMname = "haproxy-demo"
        $AdvancedSettingName = "guestinfo.dataplaneapi.cacert"
        $Base64cert = get-vm $VMname |Get-AdvancedSetting -Name $AdvancedSettingName
        while ([string]::IsNullOrEmpty($Base64cert.Value)) {
             Write-Host "Waiting for CA Cert Generation... This may take a under 5-10
        minutes as the VM needs to boot and generate the CA Cert
        (if you haven't provided one already)."
             $Base64cert = get-vm $VMname |Get-AdvancedSetting -Name $AdvancedSettingName
             Start-sleep -seconds 2
             }
             Write-Host "CA Cert Found... Converting from BASE64" 
             $cert = [Text.Encoding]::Utf8.GetString([Convert]::FromBase64String($Base64cert.Value))
        Write-Host $cert
  8. 管理網路畫面上,設定將用於 Kubernetes 控制平面虛擬機器的網路參數。
    1. 選取網路模式
      • DHCP 網路。在此模式下,將自動從 DHCP 伺服器取得管理網路的所有 IP 位址,例如控制平面虛擬機器 IP、浮動 IP、DNS 伺服器、DNS、搜尋網域和 NTP 伺服器。若要取得浮動 IP,必須將 DHCP 伺服器設定為支援用戶端識別碼。在 DHCP 模式下,所有控制平面虛擬機器均使用穩定的 DHCP 用戶端識別碼來取得 IP 位址。這些用戶端識別碼可用於為 DHCP 伺服器上控制平面虛擬機器的 IP 設定靜態 IP 指派,以確保其不會變更。不支援變更控制平面虛擬機器的 IP 以及浮動 IP。

      • 靜態。手動輸入管理網路的所有網路設定。

    2. 為管理網路進行設定。

      如果您已選取 DHCP 網路模式,但想要覆寫從 DHCP 取得的設定,請按一下其他設定並輸入新值。如果您已選取靜態網路模式,請手動填寫管理網路設定的值。

      選項 敘述

      網路

      選取已針對管理流量設定 VMkernel 介面卡的網路。

      起始控制 IP 位址

      輸入會決定用於為 Kubernetes 控制平面虛擬機器保留五個連續 IP 位址起點的 IP 位址,如下所示:

      • 每個 Kubernetes 控制平面虛擬機器各一個 IP 位址。

      • 其中一個 Kubernetes 控制平面虛擬機器的浮動 IP,將用作管理網路的介面。具有指派的浮動 IP 位址的控制平面虛擬機器將充當所有三個 Kubernetes 控制平面虛擬機器的領導虛擬機器。浮動 IP 會移到在 Kubernetes 叢集中作為 ectd 主節點的控制平面節點。這樣提高了在發生網路磁碟分割事件時的可用性。

      • 一個 IP 位址提供做為 Kubernetes 控制平面虛擬機器失敗,而將新控制平面虛擬機器啟動以加以取代時的緩衝區。

      子網路遮罩

      僅適用於靜態 IP 組態。輸入管理網路的子網路遮罩。

      例如,255.255.255.0

      DNS 伺服器

      輸入您在環境中使用的 DNS 伺服器位址。如果 vCenter Server 系統已使用 FQDN 登錄,您必須輸入與 vSphere 環境搭配使用的 DNS 伺服器的 IP 位址,以便該 FQDN 可在 主管叢集 中解析。

      DNS 搜尋網域

      輸入 DNS 在 Kubernetes 控制平面節點內搜尋的網域名稱 (如 corp.local),以便 DNS 伺服器可以解析這些網域名稱。

      NTP

      輸入您在環境中使用的 NTP 伺服器的位址 (如果有的話)。

  9. 工作負載網路頁面中,輸入將為 主管叢集 上執行的 Kubernetes 工作負載處理網路流量的網路設定。
    備註:

    如果選擇使用 DHCP 伺服器提供工作負載網路的網路設定,則在完成 主管叢集 組態後,您將無法建立任何新的工作負載網路。

    1. 選取網路模式。
      • DHCP 網路。在此網路模式下,工作負載網路的所有網路設定均透過 DHCP 取得。

      • 靜態。手動設定工作負載網路設定。

    2. 選取將用作 主管叢集 之主要工作負載網路的連接埠群組。

      主要網路將處理 Kubernetes 控制平面虛擬機器的流量和 Kubernetes 工作負載流量。

      稍後可以為每個命名空間指派不同的連接埠群組以用作網路,具體取決於您的網路拓撲。透過這種方式,您可以在 主管叢集 中的命名空間之間提供第 2 層隔離。沒有將不同的連接埠群組指派作為其網路的命名空間會使用主要網路。Tanzu Kubernetes 叢集僅使用指派給已部署該叢集的命名空間的網路,如果沒有明確指派給該命名空間的網路,則會使用主要網路。

    3. 為工作負載網路進行設定。

      如果您已選取 DHCP 網路模式,則會從 DHCP 伺服器自動填寫其他設定區段下的所有值。如果您要覆寫這些值,請按一下其他設定並輸入新值。如果您已選取靜態網路模式,請手動填寫所有設定。

    選項 敘述

    Kubernetes 服務的內部網路

    輸入 CIDR 標記法,以確定 Tanzu Kubernetes 叢集和叢集內執行的服務的 IP 位址範圍。

    網路名稱

    輸入網路名稱。

    DNS 伺服器

    輸入您在環境中使用的 DNS 伺服器的 IP 位址 (如果有的話)。

    例如,10.142.7.1

    當您輸入 DNS 伺服器的 IP 位址時,會在每個控制平面虛擬機器上新增靜態路由。這表示 DNS 伺服器的流量流經工作負載網路。

    如果在管理網路和工作負載網路之間共用您指定的 DNS 伺服器,則在初始設定後,將透過工作負載網路路由控制平面虛擬機器上的 DNS 查閱。

    閘道

    輸入主要網路的閘道。

    子網路遮罩 IP

    輸入子網路遮罩 IP 位址。

    IP 位址範圍

    輸入用於配置 Kubernetes 控制平面虛擬機器和工作負載的 IP 位址的 IP 範圍。

    此位址範圍會連線 主管叢集 節點,如果是單一工作負載網路,則還會連線 Tanzu Kubernetes 叢集節點。針對 HAProxy 使用預設組態時,此 IP 範圍不得與負載平衡器 VIP 範圍重疊。

  10. 儲存區頁面上,設定儲存區和檔案磁碟區支援。
    1. 主管叢集 選取儲存區原則。

      針對下列每個物件選取的儲存區原則,可確保該物件放置在儲存區原則中參考的資料存放區上。您可以針對物件使用相同或不同的儲存區原則。

      選項 敘述

      控制平面節點

      選取用於放置控制平面虛擬機器的儲存區原則。

      網繭暫時磁碟

      選取用於放置 vSphere 網繭 的儲存區原則。

      容器映像快取

      選取用於放置容器映像快取的儲存區原則。

    2. (選擇性) 啟用檔案磁碟區支援。
      如果計劃在叢集上部署 ReadWriteMany 持續性磁碟區,則需要此選項。請參閱 在 vSphere with Tanzu中建立 ReadWriteMany 持續性磁碟區
  11. Tanzu Kubernetes Grid 頁面上,按一下新增,然後選取包含用於部署 Tanzu Kubernetes 叢集節點之虛擬機器映像的已訂閱內容程式庫。
  12. 檢閱設定,然後按一下完成

結果

將在建立 主管叢集vCenter Server 上執行工作。工作完成後,將在屬於 vSphere 叢集的主機上建立三個 Kubernetes 控制平面虛擬機器。

下一步

主管叢集上建立和設定 vSphere 命名空間。請參閱建立和設定 vSphere 命名空間