安裝和管理套件

此主題說明如何使用 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. 安裝 cert-manager 以用於工作負載叢集中的憑證管理

安裝概觀

如需如何使用 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 旗標。這將從 valuesSchema Kubernetes API 資源中擷取可用套件的 Package 區段。您可以將值結構描述的輸出格式 -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 命名空間。請勿將套件的內容 (例如網繭和服務) 安裝到此命名空間。套件內容的命名空間是在套件組態中另外設定。
      • 指定的命名空間必須已存在,例如,從執行 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