本节概述了可以在 Tanzu Kubernetes Grid 中的工作负载集群上安装和配置的软件包。
在 Tanzu Kubernetes Grid 创建的工作负载集群上安装软件包会为集群添加一项功能。此功能通常为集群托管的工作负载提供服务。例如,Antrea 软件包提供 Antrea 容器网络接口 (CNI)、Contour 软件包 Ingress 控制服务、Harbor 软件包专用容器注册表等。某些软件包支持集群本身的操作。
在内部,软件包包含配置元数据和映像引用,用于通知软件包管理器软件包包含哪些软件以及如何将其安装到 Kubernetes 集群中。软件包分组为软件包存储库。某些软件包会自动在集群中启用,而其他软件包则通过 Tanzu CLI 明确安装。有关如何在 Tanzu Kubernetes Grid 中实施软件包和软件包存储库的详细信息,请参见下面的 Carvel API 资源。
Tanzu Kubernetes Grid 包含以下类型的软件包:
tanzu-standard
软件包存储库或添加到集群的其他存储库中。请参见下面的 CLI 管理的软件包部分。基本集群功能通常需要这些软件包。Tanzu Kubernetes Grid 会在创建和升级 Kubernetes 集群时自动安装和升级它们。
注意
tanzu package
CLI 插件仅适用于 CLI 管理的软件包。请勿使用tanzu package
CLI 插件安装和管理自动管理的软件包。其生命周期由 Tanzu Kubernetes Grid 管理。
有关如何查看和更新自动管理的软件包配置,请参见查看和自定义自动管理的软件包配置。
Tanzu Kubernetes Grid 管理自动管理软件包的生命周期。这包括自动软件包安装和版本更新。
自动管理的软件包在集群创建期间安装。要确定要在工作负载集群中安装哪些自动管理的软件包,Tanzu Kubernetes Grid 读取用于创建集群和集群特定配置信息的 Tanzu Kubernetes 版本。升级工作负载集群时,在升级过程中,Tanzu Kubernetes Grid 会更新集群中安装的自动管理软件包的版本。
下表列出了 TKG 安装的自动管理软件包及其安装到的集群类型。
自动管理的软件包从 tanzu-core
存储库进行安装,并在以下命名空间中运行,具体取决于 TKG 部署类型:
vmware-system-tkg
tkg-system
软件包 | 安装位置(具有主管) | 安装位置(具有独立管理集群) | 描述 |
---|---|---|---|
ako-operator |
未安装 | 管理(仅 vSphere with NSX ALB) | 提供 VMware NSX Advanced Load Balancer。如果启用了 NSX Advanced Load Balancer,则会安装此软件包。 |
antrea |
工作负载 | 管理和工作负载 | 启用 Pod 网络连接,并对 Kubernetes 集群强制实施网络策略。默认情况下安装,除非选择 Calico 作为 CNI 提供程序。 |
calico |
工作负载 | 管理和工作负载 | 启用 Pod 网络连接,并对 Kubernetes 集群强制实施网络策略。选择 Calico 作为 CNI 提供程序时安装。在 Windows 上不支持。 |
capabilities |
工作负载 | 工作负载 | 启用 Capabilities API。“capability”是 Kubernetes 集群可以执行或拥有的内容,例如对象和 API 表面区域。Capability 发现可用于回答诸如“这是 TKG 集群吗?”或“此集群是否具有资源 X?”等问题。 |
guest-cluster-auth-service |
工作负载 | 未安装 | 管理 vSphere 单点登录 (SSO),使 vSphere SSO 用户能够访问目标工作负载集群 |
kapp-controller |
工作负载 | 管理和工作负载 | 管理软件包 |
load-balancer-and-ingress-service (AKO) |
未安装 | 管理和工作负载(仅 vSphere with NSX ALB) | 为在由 Tanzu Kubernetes Grid 创建的集群中运行的应用程序提供 L4+L7 负载均衡;用于南北向流量。如果启用了 NSX Advanced Load Balancer,则会安装此软件包。 |
metrics-server |
工作负载 | 管理和工作负载 | 提供衡量指标服务器 |
pinniped |
工作负载 | 管理和工作负载 | 提供用户身份验证。仅当配置了身份提供程序时才安装。可以在创建后安装在独立管理集群中;请参见在现有部署中启用和配置身份管理。 |
secretgen-controller |
工作负载 | 工作负载 | 启用 carvel-secretgen-controller |
tanzu-addons-manager |
管理 | 管理 | 管理 tanzu-core 软件包的生命周期。 |
tkg-pkg |
未安装 | 管理 | 安装 tanzu-addons-manager 、tkr-source-controller 、ClusterClass 定义以及 TKG 独立管理集群所需的其他组件。 |
vsphere-cpi |
工作负载 | 管理和工作负载(仅限 vSphere) | 提供 vSphere 云提供商接口 |
vsphere-pv-csi |
工作负载 | 未安装 | 提供 vSphere 云存储接口 |
CLI 管理的软件包扩展了 Tanzu Kubernetes Grid 创建的 Kubernetes 集群。创建集群后,可以从 tanzu-standard
软件包存储库或添加到集群的其他软件包存储库中安装软件包。
有关 CLI 管理的软件包、发布软件包的软件包存储库以及如何安装这些软件包的列表,请参见使用 Tanzu CLI 安装和管理软件包。
要使软件包在 Kubernetes 集群中可用,Tanzu Kubernetes Grid 将在目标集群中创建以下 API 资源:
PackageRepository
或 pkgr
表示单个软件包存储库。它将 kapp-controller
软件包管理器指向在资源中定义的软件包存储库。软件包存储库包含 Package
和 PackageMetadata
资源。在目标集群中创建 PackageRepository
后,kapp-controller
可以安装软件包存储库中包含的任何软件包。此 API 资源仅用于 CLI 管理的软件包。Package
或 pkg
包含有关给定软件包的特定于版本的信息,并定义了如何安装软件包。在安装软件包时 kapp-controller
使用 Package
资源。PackageMetadata
或 pkgm
包含有关给定软件包的版本无关的信息。PackageInstall
或 pkgi
表示目标集群中已安装的软件包。它还引用用于安装软件包的 Package
资源。您可以使用 kubectl api-resources
和 kubectl get
命令列出和查看这些资源。有关 Carvel API 资源的详细信息,请参见 Carvel 文档中的打包。