VMware Tanzu 社区版是 VMware Tanzu 的免费、社区支持的开源发行版,已在 DevOps Loop 2021 上宣布。
首先,Tanzu 社区版打算汇集 Tanzu 的所有功能,为用户提供跨多个云和基础设施提供商创建和支持现代应用程序生命周期的能力。这些平台的中心引擎是Kubernetes。但是,根据团队的需求,可以使用其他工具来轻松分层更多平台抽象和功能。例如,Tanzu Community Edition 可用于基于 Knative 配置无服务器平台、自动配置基础 Kubernetes 集群、配置容器网络接口 (CNI)、安装 Contour 等入口控制器以及部署 Knative。此过程是自动化的,可以在任何云提供商上运行。
如何开始使用 Tanzu 社区版
Tanzu Community Edition 基于 Tanzu CLI 工作,并提供简单的 CLI/UI 界面。它使用 Docker 来启动预配请求,因此必须在引导计算机上预安装 Docker(在此处查找说明)。确保为 Docker 提供至少 6GB 的内存和两个 CPU。截至此日期,v. 0.9.1 是 Tanzu 社区版的最新版本。
如果你在MacOS或Linux上运行,获得Tanzu CLI的最简单方法是通过Homebrew。添加 vmware-tanzu tap,安装 tanzu CLI,然后运行配置脚本:
brew tap vmware-tanzu/tanzu
brew install tanzu-community-edition
安装后,根据您的平台运行以下命令:
Linux : {HOMEBREW-INSTALL-LOCATION}/configure-tce.sh
Mac: {HOMEBREW-INSTALL-LOCATION}/v0.9.1/libexec/configure-tce.sh
如果您在 Windows 上运行或未安装 Homebrew,请从此处下载 tar/zip 文件,将其解压缩,然后从解压缩的目录运行安装脚本。
第 0 天可以做什么
构建现代应用程序的开发团队可以使用 Tanzu 社区版创建一个以 Kubernetes 为中心的平台,以开发、测试、验证并最终在给定的云或基础架构端点上部署其应用程序代码。它可以在 vSphere、AWS、Azure 或笔记本电脑或台式机上运行的 Docker 上自动预配 Kuberernetes 集群。
使用 Tanzu 社区版配置 Kubernetes 集群有两种方法:
- 独立集群 – 预配开发环境的最简单方法是预配“独立”群集。Tanzu 社区版将接受所需的节点数量、基础设施身份验证和授权等输入来配置节点,以及 Docker 来启动配置控制器。在此运行结束时,你将部署 Kubernetes 群集和群集配置文件。但是,不建议在快速开发环境之外使用此方法。由于不存储 Kubeconfig 和其他详细信息,因此由用户来存储和保存访问集群的凭据。此外,目前的独立集群无法扩展。出于这些原因,对于许多用例,不建议使用独立集群。
- 由管理群集管理的工作负载群集 – 预配 Kubernetes 群集的另一种方法是首先为给定基础结构预配管理群集,然后使用该群集预配工作负载群集。每当预配生产环境时,建议这样做。管理群集将身份验证详细信息存储到所有工作负载集群,可以扩展工作负载集群,还可以提供身份服务。
运营团队可以配置 Kubernetes 集群,并通过身份和身份验证管理向用户提供对 Kubernetes API 的访问权限。
如何预配独立群集
预配独立群集的方法有两种:一种是通过 UI 实现的,另一种是通过提供群集配置 YAML 文件的 Tanzu CLI。处理所有依赖项的最简单方法是先运行 UI 方法。这将自动生成预配其他群集所需的配置 YAML。
对于 UI,请从以下命令开始:
tanzu standalone-cluster create --ui
将打开一个浏览器窗口,为您提供选择基础架构提供商和更多详细信息的选项。填写详细信息后,安装程序将存储配置数据并开始预配。
例如,如果您选择 AWS,以下屏幕将询问有关如何连接到 AWS、您希望集群中有多少个节点、节点应该是什么大小以及要使用的虚拟私有云 (VPC) 的详细信息;然后,它将开始预配群集。
对于 CLI,请从以下命令开始:
tanzu standalone-cluster create <cluster name> -f <configuration location>
此处,配置位置是从上次运行中保存的配置 YAML 的位置。
如何部署管理群集
部署管理群集的过程与部署独立群集的过程非常相似,但它从以下命令开始。系统将要求您提供相同的数据,例如如何连接到基础架构、群集配置和网络详细信息。
tanzu management-cluster create --ui
此外,在为管理群集提供输入时,可以启用标识管理。Tanzu Community Edition 支持基于 OpenID Connect 或 LDAP 的外部身份提供程序。
如何部署工作负载群集
创建管理群集后,将 设置为 管理群集。kubectl context
您可以使用以下命令获取管理群集上下文:
kubectl config get-contexts
然后,使用以下方法选择管理群集的上下文,其中 MGMT-CLUSTER-CONTEXT 是根据管理群集的名称看到的上下文:
kubectl config use-context <MGMT-CLUSTER-CONTEXT>
通过运行命令登录到 Tanzu。Tanzu Login
创建管理群集时,群集的配置 YAML 文件存储在位置 中。您可以重复使用此文件,更改节点实例类型或计数等内容的值,并提供该文件以创建工作负载集群,如下所示:~/.config/tanzu/tkg/clusterconfigs/<MGMT-CLUSTER-NAME>.yaml
tanzu cluster create <CLSUTER_NAME> -f <Path to configuration file.YAML>
上述命令将预置工作负载集群,并将工作负载集群的 Kubeconfig 合并到文件中。~.kube/config
您可以更改上下文并使用 kubectl 开始使用工作负载集群。
第 1 天可以做什么
部署 Kubernetes 集群后,开发团队可以开始进一步分层抽象,或者运营团队可以开始添加监控和日志记录功能。所有这些都是通过Tanzu社区版的包管理功能完成的。这是由命令实现的。在后端,Tanzu 社区版有一个支持版本、元数据信息等的软件包存储库。在要添加其他软件包的集群上,Tanzu 社区版会部署一个控制器,该控制器了解如何从存储库安装软件包,以及一个自定义资源定义 (CRD),用于存储可供安装或已安装的软件包的状态。tanzu package
要添加包,您首先需要添加一个存储库:
tanzu package repository add tce-repo \
--url projects.registry.vmware.com/tce/main:0.9.1 \
--namespace tanzu-package-repo-global
这将部署整个群集可以从中引用的存储库。您还可以将此存储库绑定到特定命名空间。
添加并协调存储库后,可以通过运行以下命令获取可用包的列表:
$ tanzu package available list
下面是一个示例输出:
作为开发人员,您可以选择通过获取版本并更新包所需的任何元数据来添加包。例如,要安装证书管理器,您可以通过运行以下命令获取可用版本:
tanzu package available list cert-manager.community.tanzu.vmware.com
获得版本后,可以使用以下命令安装证书管理器:
tanzu package install cert-manager --package-name cert-manager.community.tanzu.vmware.com --version 1.3.1
您将看到证书管理器已添加到群集中:
同样,运营团队可以开始安装Fluentbit或Prometheus等软件包,以集中收集平台的日志和指标。
第 2 天可以做什么
你已预配群集,设置了其他包,部署了应用程序,并且运行良好。现在怎么办?也许您遇到了容量问题,或者已部署的包的较新版本已用完。或者,也许有一个新版本的 Kubernetes,你想将你的集群升级到它。Tanzu社区版可以帮助您完成上述所有操作。
缩放工作负载群集
您可以通过向 Tanzu CLI 提供控制器和工作器节点的新节点计数来扩展现有工作负载集群:
tanzu cluster scale <CLUSTER-NAME> --controlplane-machine-count 5 --worker-machine-count 10 --namespace tkg-system
升级现有软件包
假设我们安装了 Cert-Manager 的 1.3.1 版,现在版本 1.5.1 可用。使用以下命令升级证书管理器:
tanzu package installed update cert-manager --version 1.5.1
升级 Kubernetes 版本
随着新的 Kubernetes 版本可供升级,Tanzu 社区版将提供适当的节点镜像版本来支持和升级到。要升级工作负载集群,您需要先升级 CLI 和管理集群。
通过运行以下命令检查给定工作负载集群的可用升级:
tanzu cluster available-upgrades get <CLUSTER-NAME>
最后,要将集群升级到最新版本,请运行以下命令。Tanzu 社区版中的管理集群将开始自动在集群节点上执行滚动升级,一次升级一个集群节点。
tanzu cluster upgrade <cluster-name>