必須先準備 vSphere 環境,您才能使用 Tanzu CLI 或安裝程式介面來部署管理叢集。您必須確定 vSphere 符合一般需求,並匯入基礎映像範本以供 Tanzu Kubernetes Grid 建立叢集節點虛擬機器。每個基礎映像範本含有一個機器作業系統版本和一個 Kubernetes 版本。
kubectl
的機器。請參閱安裝 Tanzu CLI 和 Kubernetes CLI 以與獨立管理叢集配合使用。
tanzu
、kubectl
和其他命令。vsphere-zones.yaml
檔,用於定義區的 FailureDomain
和 DeploymentZone
物件。
FailureDomain
和 DeploymentZone
物件〉所述建立此檔案。vSphere 網路*,具有:
VSPHERE_CONTROL_PLANE_ENDPOINT
,或者如果您對控制平面端點使用 NSX Advanced Load Balancer,就讓系統自動從位址集區來設定位址。CLUSTER_API_SERVER_PORT
;或為具有 NSX Advanced Load Balancer 的環境,請設定 VSPHERE_CONTROL_PLANE_ENDPOINT_PORT
變數。~/.config/tanzu/tkg/bom/
下,且其名稱包含 Tanzu Kubernetes Grid 版本,例如 v2.3.1 的 tkg-bom-v2.3.1+vmware.1.yaml
。date
命令,以查看時區設定。esxcli system time set
。如果您要使用 NSX ALB 來作為控制平面 HA 的負載平衡器和端點提供者,則已在 vSphere 執行個體中安裝 NSX Advanced Load Balancer (ALB)。請參閱安裝 NSX Advanced Load Balancer。
如果您的 vSphere 環境執行 VMware NSX,您可以在部署管理叢集時使用 NSX 介面。請確定您的 NSX 設定含有一個啟用了 DHCP 的區段。請確定已在所有 ESXi 主機、vCenter Server 和啟動機器上設定 NTP。
*或者參閱準備網際網路受限的環境,以便在無法存取外部網路的情況下安裝。
下表說明 vSphere 上的管理叢集大小調整範例。請使用此資料作為指引,以確保管理叢集已調整,而能處理您計劃部署的工作負載叢集數量。工作負載叢集的虛擬機器大小資料行列出用於可以管理… 資料行中範例的虛擬機器大小。
管理叢集計劃 | 管理叢集的虛擬機器大小 | 可以管理… | 工作負載叢集的虛擬機器大小 |
---|---|---|---|
3 個控制平面節點和 3 個工作節點 | 控制平面節點:
工作節點:
|
範例:
|
控制平面節點:
工作節點:
|
3 個控制平面節點和 3 個工作節點 | 控制平面節點:
工作節點:
|
範例:一個工作負載叢集,其中部署了 3 個控制平面和 500 個工作節點 | 控制平面節點:
工作節點:
|
3 個控制平面節點和 3 個工作節點 | 控制平面節點:
工作節點:
|
範例:200 個工作負載叢集,每個叢集各部署了 3 個控制平面和 5 個工作節點 | 控制平面節點:
工作節點:
|
另請參閱下方的叢集節點的最小虛擬機器大小。
在 vSphere 8 上,vSphere with Tanzu 功能含有一個主管,可讓您作為 Tanzu Kubernetes Grid 的管理叢集。這表示在 vSphere 8 上,若有啟用 vSphere with Tanzu 和主管,就不需使用 tanzu management-cluster create
或 tanzu mc create
來部署管理叢集。當未啟用 vSphere with Tanzu 時,支援將 Tanzu Kubernetes Grid 管理叢集部署到 vSphere 8,但較好的作法是啟用 vSphere with Tanzu,並使用內建主管叢集 (如有可能)。vSphere with Tanzu 主管會與 vSphere 緊密整合,因此可提供比使用獨立管理叢集更簡化的使用者體驗。但是,在 vSphere 上使用獨立管理叢集時,比主管提供更多的組態和自訂選項。
重要與 vSphere 8 中的 TKG 2.x 和 vSphere with Tanzu 主管相容的 Tanzu CLI 版本與 vSphere 7 中的主管叢集不相容。如要在 vSphere 7 上對 vSphere with Tanzu 主管叢集使用 Tanzu CLI,請使用 TKG v1.6 中的 Tanzu CLI 版本。如要使用與具有主管的 TKG 2.x 相容的 Tanzu CLI 版本,請升級到 vSphere 8。如果 vSphere with Tanzu 主管叢集不存在,您可以將獨立 TKG 2.x 管理叢集部署到 vSphere 7。有關 Tanzu CLI 與 VMware 產品之間相容性的資訊,請參閱 Tanzu CLI 文件。
Tanzu CLI 適用於 vSphere with Tanzu 所提供的管理叢集,也適用於由 Azure 上的 Tanzu Kubernetes Grid、Amazon Web Services (AWS) 和 vSphere (在未啟用 vSphere with Tanzu 的情況下) 所部署的獨立管理叢集,這可讓您使用單一工具,就能跨多個基礎結構來部署及管理工作負載叢集。如需如何將 Tanzu CLI 與主管搭配使用的相關資訊,請參閱〈使用 Tanzu CLI 來建立和管理 TKG 2.3 工作負載叢集〉中的將 Tanzu CLI 連線至主管。
如需有關 vSphere 8 中的 vSphere with Tanzu 功能的相關資訊,請參閱 vSphere with Tanzu 8.0 說明文件。
附註在 Azure VMware 解決方案上,您無法建立主管叢集,而需要部署管理叢集,才能執行
tanzu
命令。
您部署到 vSphere 的每個管理叢集和工作負載叢集都需要一個靜態虛擬 IP 位址,以用來向叢集的 API 伺服器發出外部要求。您必須能夠指派此 IP 位址,因此它不能是在您的 DHCP 範圍內,但必須與 DHCP 範圍位於同一子網路中。
叢集控制平面的 Kube-Vip 網繭會使用此靜態虛擬 IP 位址來處理 API 要求,且 API 伺服器憑證會包含用來啟用安全 TLS 通訊的位址。在工作負載叢集中,Kube-Vip 是在基本的第 2 層容錯移轉模式下執行,會將虛擬 IP 位址一次指派給一個控制平面節點。在此模式下,Kube-Vip 並不是一個會處理控制平面流量的真實負載平衡器。
Tanzu Kubernetes Grid 可以使用 Kube-Vip,以在工作負載叢集中作為工作負載的負載平衡器 (技術預覽)。在 Windows 叢集上,不能將 Kube-VIP 當成 LoadBalancer
服務。如需詳細資訊,請參閱 Kube-VIP 負載平衡器。
若要對 vSphere 上的工作負載進行負載平衡,請使用 NSX Advanced Load Balancer,亦稱為 Avi 負載平衡器 (Essentials Edition)。
重要在 vSphere 8 上,若要將 NSX Advanced Load Balancer 與 TKG 獨立管理叢集及其工作負載叢集結合使用,您需要 NSX ALB v22.1.2 或更新版本以及 TKG v2.1.1 或更新版本。
將叢集部署到 vSphere 之前,您必須先將包含執行叢集節點的作業系統和 Kubernetes 版本的基礎映像範本匯入到 vSphere。對於每一個支援的作業系統和 Kubernetes 版本配對,VMware 會以 OVA 格式發佈基礎映像範本,以便將叢集部署到 vSphere。將 OVA 匯入至 vSphere 後,您必須將產生的虛擬機器轉換為虛擬機器範本。
支援的叢集節點基礎映像取決於叢集的類型,如下所示:
管理叢集:OVA 必須具有 Kubernetes v1.26.8,這是 Tanzu Kubernetes Grid v2.3.1 的預設版本。因此,其必須是下列其中一項:
Ubuntu v20.04 Kubernetes v1.26.8 OVA
附註在 Tanzu Kubernetes Grid v2.3.1 中,Ubuntu OVA 映像使用整合可延伸韌體介面 (UEFI) 開機模式。
Photon v3 Kubernetes v1.26.8 OVA
具有自訂 Tanzu Kubernetes 版本 (TKr) 的自訂 OVA,如建置機器映像中所述。
若要將基礎映像範本匯入到 vSphere,請執行下列動作:
下載叢集節點的 Tanzu Kubernetes Grid OVA。對於管理叢集,這必須是其中一個 Kubernetes v1.26.8 OVA 下載項目。
重要如果是安全修補程式版本,請確定您下載的是最新的 OVA 基礎映像範本。
您可以在 Tanzu Kubernetes Grid 產品下載頁面上,找到已更新且包含安全修補程式的基礎映像範本。
在 vSphere Client 中,在 vCenter Server 詳細目錄中的物件上按一下滑鼠右鍵,選取部署 OVF 範本 (Deploy OVF template)。
遵循安裝程式提示,從 OVA 部署虛擬機器。
附註如果您選取完整佈建作為磁碟格式,當 Tanzu Kubernetes Grid 從範本建立叢集節點虛擬機器時,會保留每個節點磁碟的完整大小。如果您部署多個叢集或具有多個節點的叢集,儲存區可能耗用很快。但是,如果您選取精簡佈建,在您部署叢集時,這可能會誤認為有大量儲存區可用。如果您選取精簡佈建,在您部署叢集時,可能還有足夠的儲存區可用,但儲存區可能隨著叢集執行和資料累積而耗盡。
OVA 部署完成後,在虛擬機器上按一下滑鼠右鍵,然後選取範本 (Template) > 轉換成範本 (Convert to Template)。
重要將虛擬機器轉換成範本之前,請勿開啟虛擬機器電源。
在虛擬機器和範本 (VMs and Templates) 視圖中,在新範本上按一下滑鼠右鍵,選取新增權限 (Add Permission),然後將 tkg-user
指派給具有 TKG
角色的範本。
如需如何為 Tanzu Kubernetes Grid 建立使用者和角色的相關資訊,請參閱以下的 vSphere 帳戶所需的權限。
針對您已下載其 OVA 檔案的每個 Kubernetes 版本,重複此程序。
您部署管理叢集時提供給 Tanzu Kubernetes Grid 的 vCenter Single Sign On 帳戶必須具有正確的權限,才能在 vSphere 中執行所需的作業。
不建議提供 vSphere 管理員帳戶給 Tanzu Kubernetes Grid,因為這樣提供給 Tanzu Kubernetes Grid 的權限遠大於其所需的權限。指派權限給 Tanzu Kubernetes Grid 的最好方式是建立一個角色和一個使用者帳戶,然後在 vSphere 物件上將該角色授與該使用者帳戶。
附註如果要將工作負載叢集部署到 vSphere 7 或 8,並啟用 vSphere with Tanzu,則除了設定以下列出的權限外,您還必須設定全域 (Global) > 雲端管理員 (Cloud Admin) 權限。如果您打算使用 Velero 來備份和還原工作負載叢集,還必須設定《Virtual Disk Development Kit 程式設計指南》中用來存取 VMDK 的認證和權限中列出的權限。
在 vSphere Client 中,移至管理 (Administration) > 存取控制 (Access Control) > 角色 (Roles),然後建立具有以下權限的新角色,例如 TKG
。
vSphere 物件 | 所需的權限 |
---|---|
CNS | 可搜尋 |
資料存放區 | 配置空間 瀏覽資料存放區 低層級檔案作業 |
全域 (如果使用 Velero 進行備份和還原) | 停用方法 啟用方法 授權 |
網路 | 指派網路 |
設定檔導向儲存 | 設定檔導向儲存視圖 |
資源 | 將虛擬機器指派給資源集區 |
工作階段 | 訊息 驗證工作階段 |
虛擬機器 | 變更組態 (Change Configuration) > 新增現有磁碟 (Add existing disk) 變更組態 (Change Configuration) > 新增磁碟 (Add new disk) 變更組態 (Change Configuration) > 新增或移除裝置 (Add or remove device) 變更組態 (Change Configuration) > 進階組態 (Advanced configuration) 變更組態 (Change Configuration) > 變更 CPU 計數 (Change CPU count) 變更組態 (Change Configuration) > 變更記憶體 (Change Memory) 變更組態 (Change Configuration) > 變更設定 (Change Settings) 變更組態 (Change Configuration) > 設定原始裝置 (Configure Raw device) 變更組態 (Change Configuration) > 擴充虛擬磁碟 (Extend virtual disk) 變更組態 (Change Configuration) > 修改裝置設定 (Modify device settings) 變更組態 (Change Configuration) > 移除磁碟 (Remove disk) 變更組態 (Change Configuration) > 切換磁碟變更追蹤 (Toggle disk change tracking)* 編輯詳細目錄 (Edit Inventory) > 從現有項目建立 (Create from existing) 編輯詳細目錄 (Edit Inventory) > 移除 (Remove) 互動 (Interaction) > 開啟電源 (Power On) 互動 (Interaction) > 關閉電源 (Power Off) 佈建 (Provisioning) > 允許唯讀磁碟存取 (Allow read-only disk access)* 佈建 (Provisioning) > 允許虛擬機器下載 (Allow virtual machine download)* 佈建 (Provisioning) > 部署範本 (Deploy template) 快照管理 (Snapshot Management) > 建立快照 (Create snapshot)* 快照管理 (Snapshot Management) > 移除快照 (Remove snapshot)* *必須具備該權限,才能啟用 Velero 外掛程式,如備份和還原管理叢集和工作負載叢集的基礎結構。您可以稍後視需要新增這些權限。 |
vApp | 匯入 |
在管理 (Administration) > Single Sign On > 使用者和群組 (Users and Groups) 中,在適當的網域中建立新的使用者帳戶,例如 tkg-user
。
在主機和叢集 (Hosts and Clusters)、虛擬機器和範本 (VMs and Templates)、儲存區 (Storage) 和網路 (Networking) 視圖中,在 Tanzu Kubernetes Grid 部署要使用的物件上按一下滑鼠右鍵,選取新增權限 (Add Permission),並將具有 TKG
角色的 tkg-user
指派給每個物件。
根據叢集的複雜性和預期需求,來設定管理叢集和工作負載叢集的節點大小。您可以根據預先定義的節點大小中所定義的,將它們設定為 small
、medium
、large
或 extra-large
。
對於 vSphere 上的所有叢集,請使用 SIZE
、CONTROLPLANE_SIZE
和 WORKER_SIZE
叢集組態變數,來設定這些叢集。或者,若要提高細微度,您可以使用 VSPHERE_*
_DISK_GIB
、_NUM_CPUS
和 _MEM_MIB
組態變數。
對於管理叢集,安裝程式介面的執行個體類型 (Instance Type) 欄位還會設定節點虛擬機器大小。
對於執行範例應用程式的單一工作管理叢集和工作負載叢集,請使用下列最小虛擬機器大小:
small
medium
若要讓 Tanzu CLI 從執行該 CLI 的機器連線至 vSphere,在您部署管理叢集時,您必須提供 SSH 金鑰配對的公開金鑰部分給 Tanzu Kubernetes Grid。如果執行 CLI 的機器上還沒有金鑰配對,則可以使用 ssh-keygen
等工具來產生金鑰配對。
在將執行 Tanzu CLI 的機器上,執行以下 ssh-keygen
命令。
ssh-keygen -t rsa -b 4096 -C "[email protected]"
當出現提示 Enter file in which to save the key (/root/.ssh/id_rsa):
時,請按 Enter 以接受預設值。
將私密金鑰新增到正在您機器上執行的 SSH Proxy,然後輸入您在上一個步驟中建立的密碼。
ssh-add ~/.ssh/id_rsa
在文字編輯器中開啟 .ssh/id_rsa.pub
檔案,以便在您部署管理叢集時輕鬆地複製貼上即可。
如果您的 vSphere 環境使用不受信任的自我簽署憑證來驗證連線,在您部署管理叢集時,必須驗證 vCenter Server 的指紋。如果您的 vSphere 環境使用已知憑證授權機構 (CA) 所簽署的受信任憑證,則無需驗證指紋。
您可以使用Web瀏覽器的憑證檢視器來取得vSphere憑證指紋。
按一下 URL 欄位中,網址左側的安全 (Secure) (鎖頭) 圖示,以存取憑證檢視器。
後續步驟視您使用的瀏覽器而定。例如,在 Google Chrome 中,選取連線是安全的 (Connection is secure) > 憑證有效 (Certificate is valid) 以查看憑證詳細資料,包括指紋。
記錄瀏覽器中的 SHA-1指紋值。如果它在每個十六進位對之間包含空格,請將每個空格替換為 :
字元,例如,6D:4A:DC:6C:C4:43:73:BB:DF:9A:32:68:67:56:F9:96:02:08:64:F4
。
當您從安裝程式介面部署管理叢集時,您可以使用此指紋字串對其進行驗證,或是在您從組態檔部署叢集時,將其提供給 VSPHERE_TLS_THUMBPRINT
選項。
若要在 IPv6 網路環境中部署支援 IPv6 的管理叢集,請執行下列動作:
將 Linux 設定成接受路由器通告,以確保當 Docker 服務啟動時,不會從路由表中移除預設 IPv6 路由。如需詳細資訊,請參閱 Docker CE 刪除 IPv6 預設路由。sudo sysctl net.ipv6.conf.eth0.accept_ra=2
為啟動叢集建立偽裝規則,以從啟動叢集傳送傳出流量:sudo ip6tables -t nat -A POSTROUTING -s fc00:f853:ccd:e793::/64 ! -o docker0 -j MASQUERADE
如需偽裝規則的詳細資訊,請參閱 MASQUERADE。
執行 tanzu mc create
以部署管理叢集,如從組態檔來部署管理叢集中所述。
TKG_IP_FAMILY
和其他變數。如要部署在 vSphere 中的多個可用區域 (AZ) 上執行的獨立管理叢集和工作負載叢集,需要執行以下操作:
在 vSphere 建立或標識以下任一組物件:
標記物件以將其與 Kubernetes 中的區域及其 AZ 相關聯,如在 vSphere 中準備區域和 AZ 中所述。
對於生產部署,強烈建議為叢集啟用身分識別管理:
如果您在具有外部網際網路連線的環境中使用 Tanzu Kubernetes Grid,一旦設定身分識別管理後,即可準備將管理叢集部署到 vSphere。