安装和管理软件包

本主题介绍如何使用 Tanzu CLI 安装和管理软件包和软件包存储库。

注意

tanzu package CLI 插件仅适用于 CLI 管理的软件包。请勿使用本主题中提供的命令安装和管理自动管理的软件包。其生命周期由 Tanzu Kubernetes Grid 自动管理。有关自动管理的软件包的详细信息,请参见自动管理的软件包

准备安装 CLI 管理的软件包

standard 软件包存储库安装 CLI 管理的软件包之前:

  1. 安装 Tanzu CLI
  2. 添加 tanzu-standard 软件包存储库。如果要将基于计划的集群(旧版)作为目标,请跳过此步骤。对于基于计划的集群,在 tanzu-package-repo-global 命名空间中的每个集群能够自动启用 tanzu-standard 软件包存储库。
  3. 查看 Tanzu 标准存储库内容
  4. 安装证书管理器以在工作负载集群中进行证书管理

安装概览

有关如何使用 Tanzu CLI 安装和管理软件包的说明,请参见以下几节。

  • 软件包存储库:如果要执行以下操作,请参见以下部分:

    • 列出可用于目标集群或添加到目标集群的所有软件包存储库
    • 获取可用或已添加软件包存储库的详细信息
    • 添加、更新或删除软件包存储库
  • 软件包:如果要执行以下操作,请参见以下部分:

    • 列出目标集群中可用或已安装的所有软件包
    • 获取可用或已安装软件包的详细信息
    • 安装、更新或删除软件包

有关 tanzu package 命令的详细信息,请参见Tanzu 软件包

软件包命名空间和系统命名空间

您可以将软件包存储库和软件包安装到您选择的命名空间中。如果未设置 --namespace 选项,Tanzu CLI 将锁定 default 命名空间。

打包服务的组件在独立于部署软件包本身的系统命名空间中运行。例如,Contour 和 Envoy 组件在命名空间 tanzu-system-ingress 中运行,Harbor 组件在 tanzu-system-registry 中运行。

请勿将软件包安装到任何 tanzu-system- 命名空间。

软件包存储库

以下部分介绍了如何列出、添加、更新和删除软件包存储库。

列出软件包存储库

tanzu package repository list 命令将列出目标集群中可用的所有软件包存储库。此列表包括通过运行 tanzu package repository add 命令添加到目标集群的软件包存储库。要将软件包存储库添加到集群,请参见下面的添加软件包存储库

  • 要列出目标集群中所有命名空间的软件包存储库,请运行:

    tanzu package repository list -A
    
  • 要列出特定命名空间中的软件包存储库,请运行:

    tanzu package repository list -n NAMESPACE
    

    其中,NAMESPACE 是目标命名空间。如果要在除 default 以外的命名空间中列出软件包存储库,则需要使用 --namespace-n 选项。

    要在 default 命名空间中列出软件包存储库,也可以运行:

    tanzu package repository list
    

获取软件包存储库的详细信息

tanzu package repository get 命令检索软件包存储库的详细信息。

要检索软件包存储库的详细信息,请运行:

tanzu package repository get REPOSITORY-NAME -n REPOSITORY-NAMESPACE

其中:

  • REPOSITORY-NAME 是目标集群中软件包存储库的名称。
  • REPOSITORY-NAMESPACE 是目标集群中软件包存储库的命名空间。

添加软件包存储库

tanzu package repository add 命令用于添加软件包存储库。

要将软件包存储库添加到目标集群,请运行:

tanzu package repository add REPOSITORY-NAME --url REPOSITORY-URL -n REPOSITORY-NAMESPACE

其中:

  • REPOSITORY-NAME 是您为软件包存储库选择的名称。
  • REPOSITORY-URL 是软件包存储库的 OCI 注册表 URL。
    • 要从 Tanzu CLI 获取此值,请参见列出软件包存储库,或在 Tanzu Mission Control 中查看集群 (Cluster) 窗格中的附加模块 (Addons) > 存储库 (Repositories) 列表。
    • 如果在 URL 末尾省略软件包存储库标记,系统将使用最新 Tanzu Kubernetes Grid 版本中的标记。
    • 此 URL 不能在 projects.registry.vmware.com/tce 之下。
  • REPOSITORY-NAMESPACE 是软件包存储库的目标命名空间。如果未指定此选项,Tanzu CLI 会将软件包存储库添加到 default 命名空间。

例如,要添加 standard 软件包存储库,其中包含 Tanzu Kubernetes Grid 中所含的 CLI 管理软件包,运行下面的命令。standard 软件包存储库的目标 --namespacetkg-system

注意

如果要将基于计划的集群(旧版)作为目标,请跳过此步骤。对于基于计划的集群,在 tanzu-package-repo-global 命名空间中的每个集群能够自动启用 tanzu-standard 软件包存储库。

tanzu package repository add tanzu-standard --url projects.registry.vmware.com/tkg/packages/standard/repo:v2.1.1 --namespace tkg-system

更新软件包存储库

tanzu package repository update 命令使用在 URL 上发布的新版本更新软件包存储库。

要更新目标集群中的软件包存储库,请运行:

tanzu package repository update REPOSITORY-NAME --url REPOSITORY-URL -n REPOSITORY-NAMESPACE

其中:

  • REPOSITORY-NAME 是集群中软件包存储库的名称。
  • REPOSITORY-URL 是软件包存储库的新 URL。如果未在 URL 中指定软件包存储库标记,系统将使用最新 Tanzu Kubernetes Grid 版本中的软件包存储库标记。
  • REPOSITORY-NAMESPACE 是集群中软件包存储库的命名空间。

删除软件包存储库

tanzu package repository delete 命令会移除软件包存储库。要从目标集群中删除软件包存储库,请运行:

tanzu package repository delete REPOSITORY-NAME -n REPOSITORY-NAMESPACE

其中:

  • REPOSITORY-NAME 是软件包存储库的名称。
  • REPOSITORY-NAMESPACE 是软件包存储库的命名空间。

软件包

以下部分介绍了如何列出、安装、更新和删除软件包。

列出可用软件包

tanzu package available list 命令将列出所有可用的软件包和软件包版本。

列出可用软件包:

  • 要列出目标集群中所有命名空间中的可用软件包,请运行:

    tanzu package available list -A
    
  • 要列出特定命名空间中的可用软件包,请运行:

    tanzu package available list -n NAMESPACE
    

    其中,NAMESPACE 是要从中检索可用软件包列表的命名空间。要列出 default 命名空间中的可用软件包,还可以运行:

    tanzu package available list
    

列出可用的软件包版本:

  • 要列出目标集群中所有命名空间中软件包的可用软件包版本,请运行:

    tanzu package available list AVAILABLE-PACKAGE-NAME -A
    

    其中,AVAILABLE-PACKAGE-NAME是通过运行 tanzu package available list 命令检索到的软件包名称。

  • 要列出特定命名空间中软件包的可用软件包版本,请运行:

    tanzu package available list AVAILABLE-PACKAGE-NAME -n AVAILABLE-PACKAGE-NAMESPACE
    

    其中:

    • AVAILABLE-PACKAGE-NAME 是通过运行 tanzu package available list 命令检索到的软件包名称。
    • AVAILABLE-PACKAGE-NAMESPACE 是可用软件包的命名空间。

    要列出 default 命名空间中软件包的可用软件包版本,还可以运行:

    tanzu package available list AVAILABLE-PACKAGE-NAME
    

获取可用软件包的详细信息

tanzu package available get 命令检索可用软件包的详细信息。

要检索可用软件包的详细信息,请运行:

tanzu package available get AVAILABLE-PACKAGE-NAME -n AVAILABLE-PACKAGE-NAMESPACE

或:

tanzu package available get AVAILABLE-PACKAGE-NAME/AVAILABLE-PACKAGE-VERSION -n AVAILABLE-PACKAGE-NAMESPACE

其中:

  • AVAILABLE-PACKAGE-NAME 是可用软件包的名称。您可以通过运行 tanzu package available list 命令来检索此名称。
  • AVAILABLE-PACKAGE-VERSION 是可用软件包的版本。您可以通过运行 tanzu package available list AVAILABLE-PACKAGE-NAME 命令来检索可用软件包版本的列表。
  • AVAILABLE-PACKAGE-NAMESPACE 是可用软件包的命名空间。

要检索可用软件包的默认配置,请使用 tanzu package available get 命令的--default-values-file-output 标志:

tanzu package available get AVAILABLE-PACKAGE-NAME/AVAILABLE-PACKAGE-VERSION -n AVAILABLE-PACKAGE-NAMESPACE --default-values-file-output FILE-PATH

要检索可用软件包的值结构定义(包括每个键的默认值),请使用 tanzu package available get 命令的 --values-schema 标记。这将从 Package Kubernetes API 资源中检索可用软件包的 valuesSchema 部分。您可以将值结构定义的输出格式 -o 设置为 yamljsontable

tanzu package available get AVAILABLE-PACKAGE-NAME/AVAILABLE-PACKAGE-VERSION -n AVAILABLE-PACKAGE-NAMESPACE --values-schema

列出已安装的软件包

tanzu package installed list 命令将列出当前安装在目标集群中的所有软件包。

要列出集群中所有命名空间中的已安装软件包,请运行:

tanzu package installed list -A

要列出特定命名空间中已安装的软件包,请运行:

tanzu package installed list -n NAMESPACE

其中,NAMESPACE 是要从中检索已安装软件包列表的命名空间。

获取已安装软件包的详细信息

tanzu package installed get 命令将检索已安装软件包的详细信息。

要检索已安装软件包的详细信息,请运行:

tanzu package installed get INSTALLED-PACKAGE-NAME -n INSTALLED-PACKAGE-NAMESPACE

其中:

  • INSTALLED-PACKAGE-NAME 是已安装软件包的名称。
  • INSTALLED-PACKAGE-NAMESPACE 是安装软件包的命名空间。

如果要将已安装软件包的当前配置保存到文件,请运行:

tanzu package installed get INSTALLED-PACKAGE-NAME -n INSTALLED-PACKAGE-NAMESPACE --values-file-output FILE-PATH

其中,FILE-PATH 是文件的路径。例如,values.yaml

安装软件包

tanzu package install 命令将安装由 CLI 管理的软件包。

要在目标集群中安装 CLI 管理的软件包,请执行以下操作:

  1. 如果尚未执行此操作,请添加包含该软件包的软件包存储库。请参见上面的添加软件包存储库

  2. 记下要安装的软件包的名称和版本。要查看软件包名称和版本,请运行 tanzu package available list 命令。请参见上面的列出可用软件包

  3. 安装软件包:

    tanzu package install PACKAGE-NAME -p AVAILABLE-PACKAGE-NAME -v AVAILABLE-PACKAGE-VERSION --values-file PACKAGE-CONFIGURATION-FILE -n TARGET-NAMESPACE
    

    其中:

    • PACKAGE-NAME 是您为软件包选择的名称。
    • AVAILABLE-PACKAGE-NAME 是上面记录的软件包名称。
    • AVAILABLE-PACKAGE-VERSION 是上面记录的软件包版本。
    • PACKAGE-CONFIGURATION-FILE 是为软件包准备的配置文件。如果未指定此选项,将使用默认配置安装软件包。
    • TARGET-NAMESPACE 是要在其中安装软件包 (PackageInstall)、软件包应用 (App) 以及描述该软件包的任何其他 Kubernetes 资源的命名空间。例如,my-packagestanzu-cli-managed-packages 命名空间。

      • 如果未指定 -n 标记,Tanzu CLI 将使用 default 命名空间。请勿将软件包的内容(如 pod 和服务)安装到此命名空间中。软件包内容的命名空间是在软件包配置中单独设置的。
      • 指定的命名空间必须已存在,例如,通过运行 kubectl create namespace my-packages

    要查看此命令支持的标记的完整列表,请使用 --help 选项。

  4. 要确认已安装软件包,请运行 tanzu package installed list 命令。请参见上面的列出已安装的软件包

更新软件包

tanzu package installed update 命令将更新 CLI 管理的软件包的版本和配置。

在更新 CLI 管理的软件包的版本之前,您通常需要如更新软件包存储库中所述更新其存储库。

要同时更新 CLI 管理的软件包的版本和配置,请运行:

tanzu package installed update INSTALLED-PACKAGE-NAME -v TARGET-PACKAGE-VERSION --values-file PACKAGE-CONFIGURATION-FILE -n INSTALLED-PACKAGE-NAMESPACE

其中:

  • INSTALLED-PACKAGE-NAME 是您为软件包选择的名称。要查看软件包的名称,可以运行 tanzu package installed list 命令。有关详细信息,请参见列出已安装的软件包
  • (可选)TARGET-PACKAGE-VERSION 是要将软件包更新到的版本。如果要更新软件包配置而非版本,则不需要。
  • (可选)PACKAGE-CONFIGURATION-FILE 是包含更新的软件包配置的 .yaml 文件的路径。如果要更新软件包版本而非配置,则不需要。要检索当前配置,请参见获取已安装软件包的详细信息
  • INSTALLED-PACKAGE-NAMESPACE 是安装软件包的命名空间。
注意

对于从 TKG v2.1.0 升级到 v2.1.1 的工作负载集群,更新 cert-managerexternal-dnsgrafana 配置可能需要升级软件包版本,如配置更新需要升级某些软件包的已知问题中所述。

删除软件包

tanzu package installed delete 命令将删除 CLI 管理的软件包。

要从目标集群中删除 CLI 管理的软件包,请运行:

tanzu package installed delete INSTALLED-PACKAGE-NAME -n INSTALLED-PACKAGE-NAMESPACE

其中:

  • INSTALLED-PACKAGE-NAME 是要删除的软件包的名称。要查看软件包的名称,可以运行 tanzu package installed list 命令。有关详细信息,请参见列出已安装的软件包
  • INSTALLED-PACKAGE-NAMESPACE 是安装软件包的命名空间。如果不指定名称空间,则使用 default 名称空间。

将覆盖应用于软件包

要自定义 CLI 管理的软件包,可以应用 ytt 覆盖。

check-circle-line exclamation-circle-line close-line
Scroll to top icon