
VMware Tanzu 社區(qū)版是 VMware Tanzu 的免費(fèi)、社區(qū)支持的開(kāi)源發(fā)行版,已在 DevOps Loop 2021 上宣布。
首先,Tanzu 社區(qū)版打算匯集 Tanzu 的所有功能,為用戶提供跨多個(gè)云和基礎(chǔ)設(shè)施提供商創(chuàng)建和支持現(xiàn)代應(yīng)用程序生命周期的能力。這些平臺(tái)的中心引擎是Kubernetes。但是,根據(jù)團(tuán)隊(duì)的需求,可以使用其他工具來(lái)輕松分層更多平臺(tái)抽象和功能。例如,Tanzu Community Edition 可用于基于 Knative 配置無(wú)服務(wù)器平臺(tái)、自動(dòng)配置基礎(chǔ) Kubernetes 集群、配置容器網(wǎng)絡(luò)接口 (CNI)、安裝 Contour 等入口控制器以及部署 Knative。此過(guò)程是自動(dòng)化的,可以在任何云提供商上運(yùn)行。
(資料圖)
Tanzu Community Edition 基于 Tanzu CLI 工作,并提供簡(jiǎn)單的 CLI/UI 界面。它使用 Docker 來(lái)啟動(dòng)預(yù)配請(qǐng)求,因此必須在引導(dǎo)計(jì)算機(jī)上預(yù)安裝 Docker(在此處查找說(shuō)明)。確保為 Docker 提供至少 6GB 的內(nèi)存和兩個(gè) CPU。截至此日期,v. 0.9.1 是 Tanzu 社區(qū)版的最新版本。
如果你在MacOS或Linux上運(yùn)行,獲得Tanzu CLI的最簡(jiǎn)單方法是通過(guò)Homebrew。添加 vmware-tanzu tap,安裝 tanzu CLI,然后運(yùn)行配置腳本:
??brew tap vmware-tanzu/tanzu?
?
??brew install tanzu-community-edition?
?
安裝后,根據(jù)您的平臺(tái)運(yùn)行以下命令:
??Linux : {HOMEBREW-INSTALL-LOCATION}/configure-tce.shMac: {HOMEBREW-INSTALL-LOCATION}/v0.9.1/libexec/configure-tce.sh?
?
如果您在 Windows 上運(yùn)行或未安裝 Homebrew,請(qǐng)從此處下載 tar/zip 文件,將其解壓縮,然后從解壓縮的目錄運(yùn)行安裝腳本。
構(gòu)建現(xiàn)代應(yīng)用程序的開(kāi)發(fā)團(tuán)隊(duì)可以使用 Tanzu 社區(qū)版創(chuàng)建一個(gè)以 Kubernetes 為中心的平臺(tái),以開(kāi)發(fā)、測(cè)試、驗(yàn)證并最終在給定的云或基礎(chǔ)架構(gòu)端點(diǎn)上部署其應(yīng)用程序代碼。它可以在 vSphere、AWS、Azure 或筆記本電腦或臺(tái)式機(jī)上運(yùn)行的 Docker 上自動(dòng)預(yù)配 Kuberernetes 集群。
使用 Tanzu 社區(qū)版配置 Kubernetes 集群有兩種方法:
獨(dú)立集群– 預(yù)配開(kāi)發(fā)環(huán)境的最簡(jiǎn)單方法是預(yù)配“獨(dú)立”群集。Tanzu 社區(qū)版將接受所需的節(jié)點(diǎn)數(shù)量、基礎(chǔ)設(shè)施身份驗(yàn)證和授權(quán)等輸入來(lái)配置節(jié)點(diǎn),以及 Docker 來(lái)啟動(dòng)配置控制器。在此運(yùn)行結(jié)束時(shí),你將部署 Kubernetes 群集和群集配置文件。但是,不建議在快速開(kāi)發(fā)環(huán)境之外使用此方法。由于不存儲(chǔ) Kubeconfig 和其他詳細(xì)信息,因此由用戶來(lái)存儲(chǔ)和保存訪問(wèn)集群的憑據(jù)。此外,目前的獨(dú)立集群無(wú)法擴(kuò)展。出于這些原因,對(duì)于許多用例,不建議使用獨(dú)立集群。由管理群集管理的工作負(fù)載群集– 預(yù)配 Kubernetes 群集的另一種方法是首先為給定基礎(chǔ)結(jié)構(gòu)預(yù)配管理群集,然后使用該群集預(yù)配工作負(fù)載群集。每當(dāng)預(yù)配生產(chǎn)環(huán)境時(shí),建議這樣做。管理群集將身份驗(yàn)證詳細(xì)信息存儲(chǔ)到所有工作負(fù)載集群,可以擴(kuò)展工作負(fù)載集群,還可以提供身份服務(wù)。運(yùn)營(yíng)團(tuán)隊(duì)可以配置 Kubernetes 集群,并通過(guò)身份和身份驗(yàn)證管理向用戶提供對(duì) Kubernetes API 的訪問(wèn)權(quán)限。
預(yù)配獨(dú)立群集的方法有兩種:一種是通過(guò) UI 實(shí)現(xiàn)的,另一種是通過(guò)提供群集配置 YAML 文件的 Tanzu CLI。處理所有依賴項(xiàng)的最簡(jiǎn)單方法是先運(yùn)行 UI 方法。這將自動(dòng)生成預(yù)配其他群集所需的配置 YAML。
對(duì)于 UI,請(qǐng)從以下命令開(kāi)始:
??tanzu standalone-cluster create --ui?
?
將打開(kāi)一個(gè)瀏覽器窗口,為您提供選擇基礎(chǔ)架構(gòu)提供商和更多詳細(xì)信息的選項(xiàng)。填寫(xiě)詳細(xì)信息后,安裝程序?qū)⒋鎯?chǔ)配置數(shù)據(jù)并開(kāi)始預(yù)配。
例如,如果您選擇 AWS,以下屏幕將詢問(wèn)有關(guān)如何連接到 AWS、您希望集群中有多少個(gè)節(jié)點(diǎn)、節(jié)點(diǎn)應(yīng)該是什么大小以及要使用的虛擬私有云 (VPC) 的詳細(xì)信息;然后,它將開(kāi)始預(yù)配群集。
對(duì)于 CLI,請(qǐng)從以下命令開(kāi)始:
??tanzu standalone-cluster create
?
此處,配置位置是從上次運(yùn)行中保存的配置 YAML 的位置。
部署管理群集的過(guò)程與部署獨(dú)立群集的過(guò)程非常相似,但它從以下命令開(kāi)始。系統(tǒng)將要求您提供相同的數(shù)據(jù),例如如何連接到基礎(chǔ)架構(gòu)、群集配置和網(wǎng)絡(luò)詳細(xì)信息。
??tanzu management-cluster create --ui?
?
此外,在為管理群集提供輸入時(shí),可以啟用標(biāo)識(shí)管理。Tanzu Community Edition 支持基于 OpenID Connect 或 LDAP 的外部身份提供程序。
創(chuàng)建管理群集后,將 設(shè)置為 管理群集。??kubectl context?
?
您可以使用以下命令獲取管理群集上下文:
??kubectl config get-contexts?
?
然后,使用以下方法選擇管理群集的上下文,其中 MGMT-CLUSTER-CONTEXT 是根據(jù)管理群集的名稱看到的上下文:
??kubectl config use-context
?
通過(guò)運(yùn)行命令登錄到 Tanzu。??Tanzu Login?
?
創(chuàng)建管理群集時(shí),群集的配置 YAML 文件存儲(chǔ)在位置 中。您可以重復(fù)使用此文件,更改節(jié)點(diǎn)實(shí)例類型或計(jì)數(shù)等內(nèi)容的值,并提供該文件以創(chuàng)建工作負(fù)載集群,如下所示:??~/.config/tanzu/tkg/clusterconfigs/
?
??tanzu cluster create
?
上述命令將預(yù)置工作負(fù)載集群,并將工作負(fù)載集群的 Kubeconfig 合并到文件中。??~.kube/config?
?
您可以更改上下文并使用 kubectl 開(kāi)始使用工作負(fù)載集群。
部署 Kubernetes 集群后,開(kāi)發(fā)團(tuán)隊(duì)可以開(kāi)始進(jìn)一步分層抽象,或者運(yùn)營(yíng)團(tuán)隊(duì)可以開(kāi)始添加監(jiān)控和日志記錄功能。所有這些都是通過(guò)Tanzu社區(qū)版的包管理功能完成的。這是由命令實(shí)現(xiàn)的。在后端,Tanzu 社區(qū)版有一個(gè)支持版本、元數(shù)據(jù)信息等的軟件包存儲(chǔ)庫(kù)。在要添加其他軟件包的集群上,Tanzu 社區(qū)版會(huì)部署一個(gè)控制器,該控制器了解如何從存儲(chǔ)庫(kù)安裝軟件包,以及一個(gè)自定義資源定義 (CRD),用于存儲(chǔ)可供安裝或已安裝的軟件包的狀態(tài)。??tanzu package?
?
要添加包,您首先需要添加一個(gè)存儲(chǔ)庫(kù):
??tanzu package repository add tce-repo \?
?
??--url projects.registry.vmware.com/tce/main:0.9.1 \?
?
??--namespace tanzu-package-repo-global?
?
這將部署整個(gè)群集可以從中引用的存儲(chǔ)庫(kù)。您還可以將此存儲(chǔ)庫(kù)綁定到特定命名空間。
添加并協(xié)調(diào)存儲(chǔ)庫(kù)后,可以通過(guò)運(yùn)行以下命令獲取可用包的列表:
??$ tanzu package available list?
?
下面是一個(gè)示例輸出:
作為開(kāi)發(fā)人員,您可以選擇通過(guò)獲取版本并更新包所需的任何元數(shù)據(jù)來(lái)添加包。例如,要安裝證書(shū)管理器,您可以通過(guò)運(yùn)行以下命令獲取可用版本:
??tanzu package available list cert-manager.community.tanzu.vmware.com?
?
獲得版本后,可以使用以下命令安裝證書(shū)管理器:
??tanzu package install cert-manager --package-name cert-manager.community.tanzu.vmware.com --version 1.3.1?
?
您將看到證書(shū)管理器已添加到群集中:
同樣,運(yùn)營(yíng)團(tuán)隊(duì)可以開(kāi)始安裝Fluentbit或Prometheus等軟件包,以集中收集平臺(tái)的日志和指標(biāo)。
你已預(yù)配群集,設(shè)置了其他包,部署了應(yīng)用程序,并且運(yùn)行良好。現(xiàn)在怎么辦?也許您遇到了容量問(wèn)題,或者已部署的包的較新版本已用完。或者,也許有一個(gè)新版本的 Kubernetes,你想將你的集群升級(jí)到它。Tanzu社區(qū)版可以幫助您完成上述所有操作。
您可以通過(guò)向 Tanzu CLI 提供控制器和工作器節(jié)點(diǎn)的新節(jié)點(diǎn)計(jì)數(shù)來(lái)擴(kuò)展現(xiàn)有工作負(fù)載集群:
??tanzu cluster scale
?
假設(shè)我們安裝了 Cert-Manager 的 1.3.1 版,現(xiàn)在版本 1.5.1 可用。使用以下命令升級(jí)證書(shū)管理器:
??tanzu package installed update cert-manager --version 1.5.1?
?
隨著新的 Kubernetes 版本可供升級(jí),Tanzu 社區(qū)版將提供適當(dāng)?shù)墓?jié)點(diǎn)鏡像版本來(lái)支持和升級(jí)到。要升級(jí)工作負(fù)載集群,您需要先升級(jí) CLI 和管理集群。
通過(guò)運(yùn)行以下命令檢查給定工作負(fù)載集群的可用升級(jí):
??tanzu cluster available-upgrades get
?
最后,要將集群升級(jí)到最新版本,請(qǐng)運(yùn)行以下命令。Tanzu 社區(qū)版中的管理集群將開(kāi)始自動(dòng)在集群節(jié)點(diǎn)上執(zhí)行滾動(dòng)升級(jí),一次升級(jí)一個(gè)集群節(jié)點(diǎn)。
??tanzu cluster upgrade
?