Skip to main content
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

使用 tridentctl 管理 Trident

貢獻者 netapp-aruldeepa juliantap netapp-mwallis
https://github.com/NetApp/trident/releases["Trident安裝程式套裝組合"^]包含 `tridentctl`命令列公用程式、可讓您輕鬆存取 Trident 。擁有足夠 Privileges 的 Kubernetes 使用者可以使用它來安裝 Trident 或管理包含 Trident Pod 的命名空間。

命令和全域旗標

您可以執行 tridentctl help 取得的可用命令清單 tridentctl 或附加 --help 標記至任何命令、以取得該特定命令的選項和旗標清單。

tridentctl [command] [--optional-flag]

Trident tridentctl 公用程式支援下列命令和全域旗標。

命令
create

將資源新增至 Trident 。

delete

從 Trident 移除一或多個資源。

get

從 Trident 取得一或多個資源。

help

任何命令的相關說明。

images

列印 Trident 所需的容器影像表格。

import

將現有資源匯入 Trident 。

install

安裝Trident。

logs

從 Trident 列印記錄。

send

從 Trident 傳送資源。

解除安裝

解除安裝 Trident 。

update

在 Trident 中修改資源。

update backend state

暫時暫停後端作業。

upgrade

在 Trident 中升級資源。

「分度」

列印 Trident 版本。

全域旗標
-d--debug

除錯輸出。

-h--help

的說明 tridentctl

-k--kubeconfig string

指定 KUBECONFIG 從本機或從一個 Kubernetes 叢集到另一個叢集執行命令的路徑。

註 或者、您也可以匯出 KUBECONFIG 可指向特定 Kubernetes 叢集和問題的變數 tridentctl 命令到該叢集。
-n--namespace string

Trident 部署的命名空間。

-o--output string

輸出格式。json之一| yaml| name| wl| ps(預設)。

-s--server string

Trident REST 介面的位址 / 連接埠。

警告 Trident REST介面可設定為偵聽、僅適用於127.0.0.1(適用於IPV4)或[:1](適用於IPv6)。

命令選項和旗標

建立

使用 `create`命令將資源新增至 Trident 。

tridentctl create [option]

選項

backend:將後端新增至 Trident 。

刪除

使用 `delete`命令從 Trident 中移除一或多個資源。

tridentctl delete [option]

選項

backend:從 Trident 刪除一個或多個儲存設備後端。
snapshot:從 Trident 刪除一個或多個 Volume 快照。
storageclass:從 Trident 刪除一個或多個儲存類別。
volume:從 Trident 刪除一個或多個儲存磁碟區。

取得

使用 `get`命令從 Trident 取得一或多個資源。

tridentctl get [option]

選項

backend:從 Trident 獲得一個或多個儲存設備後端。
snapshot:從 Trident 獲取一個或多個快照。
storageclass:從 Trident 獲取一個或多個儲存類。
volume:從 Trident 獲取一個或多個卷。

旗標

-h--help:Volume的說明。
--parentOfSubordinate string:將查詢限制在從屬來源Volume。
--subordinateOf string:將查詢限制在Volume的下屬。

映像

使用 `images`旗標來列印 Trident 所需的容器影像表格。

tridentctl images [flags]

旗標

-h--help:影像說明。
-v--k8s-version string: Kubernetes 叢集的語義版本。

匯入Volume

使用 `import volume`命令將現有磁碟區匯入 Trident 。

tridentctl import volume <backendName> <volumeName> [flags]

別名

volumev

旗標

-f--filename string:Yaml或Json PVc檔案的路徑。
-h--help:Volume的說明。
--no-manage:僅建立PV/PVc。不要假設磁碟區生命週期管理。

安裝

使用 `install`旗標來安裝 Trident 。

tridentctl install [flags]

旗標

--autosupport-image string:自動支援遙測的容器映像(預設為「netapp/trident autosupport:<current-version>」)。
--autosupport-proxy string :用於發送自動支援遙測的代理程式的位址/連接埠。
--enable-node-prep :嘗試在節點上安裝所需的軟體包。
--generate-custom-yaml :無需安裝任何東西即可產生 YAML 檔案。
-h--help :安裝幫助。
--http-request-timeout :覆蓋Trident控制器的 REST API 的 HTTP 請求逾時(預設為 1 分 30 秒)。
--image-registry string :內部影像註冊表的位址/連接埠。
--k8s-timeout duration :所有 Kubernetes 操作的逾時時間(預設為 3m0s)。
--kubelet-dir string :kubelet 內部狀態的主機位置(預設為「/var/lib/kubelet」)。
--log-format string : Trident日誌格式(文字、json)(預設「文字」)。
--node-prep :使Trident能夠準備 Kubernetes 叢集的節點,以使用指定的資料儲存協定管理磁碟區。*現在, iscsi`是唯一支援的值。從 OpenShift 4.19 開始,此功能支援的最低Trident版本為 25.06.1。 *
`--pv string
: Trident使用的舊版 PV 的名稱,確保其不存在(預設為「trident」)。
--pvc string : Trident使用的舊式 PVC 的名稱,確保其不存在(預設為「trident」)。
--silence-autosupport :不要自動將自動支援包傳送到NetApp (預設為 true)。
--silent :安裝期間停用大部分輸出。
--trident-image string :要安裝的Trident映像。
--k8s-api-qps :Kubernetes API 請求的每秒查詢數 (QPS) 限制(預設 100;可選)。
--use-custom-yaml :使用安裝目錄中存在的任何現有 YAML 檔案。
--use-ipv6 :使用 IPv6 進行 Trident 的通訊。

記錄

使用 `logs`旗標從 Trident 列印記錄。

tridentctl logs [flags]

旗標

-a--archive:創建包含所有日誌的支持歸檔文件(除非另有指定)。
-h--help:日誌幫助。
-l --log string:要顯示的 Trident 日誌。其中一個是 Trident | auto| Trident 運算子 | All (預設為「自動」)。
--node string:要從中收集節點 Pod 日誌的 Kubernetes 節點名稱。
-p --previous:獲取以前的 Container 實例的日誌(如果存在)。
--sidecars:獲取 sidecar 容器的日誌。

傳送

使用 `send`命令從 Trident 傳送資源。

tridentctl send [option]

選項

autosupport:將AutoSupport 一份不適用的歸檔文件傳送給NetApp。

解除安裝

使用 `uninstall`旗標來解除安裝 Trident 。

tridentctl uninstall [flags]

旗標

-h, --help:解除安裝說明。
--silent:卸載期間禁用大多數輸出。

更新

使用 `update`命令修改 Trident 中的資源。

tridentctl update [option]

選項

backend:在 Trident 中更新後端。

更新後端狀態

使用 update backend state 暫停或恢復後端作業的命令。

tridentctl update backend state <backend-name> [flag]

需要考量的重點
  • 如果使用 TridentBackendConfig ( tbc )建立後端、則無法使用檔案更新後端 backend.json

  • 如果已在 tbc 中設定、則 userState 無法使用命令加以修改 tridentctl update backend state <backend-name> --user-state suspended/normal

  • 若要在透過 tbc 設定 Via tridentctl 之後重新取得設定 userState`功能、 `userState`必須從 tbc 移除該欄位。這可以使用命令來完成 `kubectl edit tbc 。 `userState`欄位移除後、您可以使用 `tridentctl update backend state`命令來變更 `userState`後端的。

  • 使用 tridentctl update backend state 變更 userState。您也可以更新 userState 使用 TridentBackendConfigbackend.json 檔案、這會觸發後端的完整重新初始化、而且可能會耗費時間。

    旗標

    -h--help:後端狀態說明。
    --user-state:設為 suspended 暫停後端作業。設定為 normal 以恢復後端作業。設定為時 suspended

  • AddVolumeImport Volume 已暫停。

  • CloneVolume、、 ResizeVolume PublishVolume UnPublishVolume CreateSnapshot、、 GetSnapshot RestoreSnapshot、、 DeleteSnapshot RemoveVolume GetVolumeExternal、、 ReconcileNodeAccess 保持可用狀態。

您也可以使用後端組態檔案或中的欄位來更新後端狀態 userState TridentBackendConfig backend.json。如需詳細資訊、請參閱 "管理後端的選項""以KECBECVL執行後端管理"

範例:

JSON

請依照下列步驟使用檔案更新 userState backend.json

  1. 編輯 backend.json 檔案、 userState 將欄位的值設為「已待定」。

  2. 使用 `tridentctl update backend`命令和更新的路徑 `backend.json`文件。

    例子tridentctl update backend -f /<path to backend JSON file>/backend.json -n trident

{
  "version": 1,
  "storageDriverName": "ontap-nas",
  "managementLIF": "<redacted>",
  "svm": "nas-svm",
  "backendName": "customBackend",
  "username": "<redacted>",
  "password": "<redacted>",
  "userState": "suspended"
}
YAML

您可以在使用命令套用 tbc 之後編輯它 kubectl edit <tbc-name> -n <namespace> 。下列範例會使用選項更新後端狀態以暫停 userState: suspended

apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-ontap-nas
spec:
  version: 1
  backendName: customBackend
  storageDriverName: ontap-nas
  managementLIF: <redacted>
  svm: nas-svm
  userState: suspended
  credentials:
    name: backend-tbc-ontap-nas-secret

版本

使用 version 用於列印版本的旗標 tridentctl 以及執行中的Trident服務。

tridentctl version [flags]

旗標

--client:僅限用戶端版本(不需要伺服器)。
-h, --help:版本說明。

外掛程式支援

Tridentctl 支援類似 kubectl 的外掛程式。如果外掛程式二進位檔案名稱遵循「 <plugin> 」配置、則 Tridentctl 會偵測外掛程式、且二進位檔案位於列出 PATH 環境變數的資料夾中。所有偵測到的外掛程式都會列在 tridentctl 說明的外掛程式區段中。或者、您也可以在 enviornment 變數 TRIDENTCTL_plugin_path 中指定外掛程式資料夾來限制搜尋(例如: TRIDENTCTL_PLUGIN_PATH=~/tridentctl-plugins/)。如果使用此變數、則 tridenctl 只會在指定的資料夾中搜尋。