使用 tridentctl 管理Trident
這 "Trident安裝包"包括 `tridentctl`用於提供對Trident 的簡單存取的命令列實用程式。擁有足夠權限的 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發送資源。
uninstall-
卸載Trident。
update-
在Trident中修改資源。
update backend state-
暫時停止後端運轉。
upgrade-
在Trident中升級資源。
version-
列印Trident版本。
全域標誌
-d,--debug-
調試輸出。
-h,--help-
幫助
tridentctl。 -k,--kubeconfig string-
指定 `KUBECONFIG`本地運行命令或從一個 Kubernetes 叢集向另一個 Kubernetes 叢集運行命令的路徑。
或者,您可以匯出 `KUBECONFIG`變數指向特定的 Kubernetes 叢集並提出問題 `tridentctl`向該集群發出命令。 -n,--namespace string-
Trident部署的命名空間。
-o,--output string-
輸出格式。 json|yaml|name|wide|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刪除一個或多個磁碟區快照。
`storageclass`從Trident刪除一個或多個儲存類別。
`volume`從Trident刪除一個或多個儲存磁碟區。
得到
使用 `get`從Trident取得一個或多個資源的指令。
tridentctl get [option]
- 選項
-
`backend`從Trident取得一個或多個儲存後端。
`snapshot`從Trident取得一個或多個快照。
`storageclass`從Trident取得一個或多個儲存類別。
`volume`從Trident取得一卷或多卷。 - 旗幟
-
-h,--help:有關卷的幫助。
--parentOfSubordinate string:將查詢限制在子來源磁碟區上。
--subordinateOf string:將查詢限制在磁碟區的下級。
圖片
使用 `images`用於列印Trident所需容器圖像表格的標誌。
tridentctl images [flags]
- 旗幟
-
-h,--help`圖片幫助。,
`-v--k8s-version stringKubernetes 叢集的語意版本。
進口量
使用 `import volume`將現有磁碟區導入Trident 的指令。
tridentctl import volume <backendName> <volumeName> [flags]
- 別名
-
volume,v - 旗幟
-
-f,--filename string:YAML 或 JSON PVC 檔案的路徑。
-h,--help:音量幫助。
`--no-manage`僅建立 PV/PVC。不要想當然地認為有銷量生命週期管理。
安裝
使用 `install`安裝Trident 的標誌。
tridentctl install [flags]
- 旗幟
-
--autosupport-image string:自動支援遙測的容器映像(預設為「netapp/trident autosupport:<目前版本>」)。
--autosupport-proxy string`用於發送 Autosupport 遙測資料的代理位址/連接埠。,
`--enable-node-prep`嘗試在節點上安裝所需的軟體包。
`--generate-custom-yaml`無需安裝任何軟體即可產生 YAML 檔案。
`-h--help`安裝幫助。:覆蓋Trident控制器 REST API 的 HTTP 請求逾時時間(預設為 1 分 30 秒)。
`--http-request-timeout
--image-registry string:內部鏡像倉庫的位址/連接埠。
--k8s-timeout duration:所有 Kubernetes 操作的逾時時間(預設 3 分鐘)。
--kubelet-dir string:kubelet 內部狀態的主機位置(預設為「/var/lib/kubelet」)。
--log-format stringTrident日誌格式(文字、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`安裝過程中會停用大部分輸出。Kubernetes API 請求的每秒查詢數 (QPS) 限制(預設為 100;可選)。
`--trident-image string`要安裝的Trident鏡像。
`--k8s-api-qps
--use-custom-yaml`使用安裝目錄中已存在的任何 YAML 檔案。:Trident 通訊使用 IPv6。
`--use-ipv6
紀錄
使用 `logs`用於列印Trident日誌的標誌。
tridentctl logs [flags]
- 旗幟
-
-a,--archive`除非另有規定,否則請建立包含所有日誌的支援存檔。,
`-h--help:日誌幫助。
-l,--log string`要顯示的Trident日誌。 trident|auto|trident-operator|all(預設值「auto」)之一。:要從中收集節點 pod 日誌的 Kubernetes 節點名稱。
`--node string
-p,--previous:取得先前容器實例的日誌(如果存在)。
`--sidecars`取得邊車容器的日誌。
傳送
使用 `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`文件。
-
如果 `userState`該值已在待辦事項清單中設置,無法使用以下方式修改: `tridentctl update backend state <backend-name> --user-state suspended/normal`命令。
-
重新獲得設定能力 `userState`通過 tridentctl,在通過 tbc 設定之後, `userState`必須從待辦事項清單中移除該欄位。這可以透過以下方式實現: `kubectl edit tbc`命令。之後 `userState`欄位已移除,您可以使用 `tridentctl update backend state`更改命令 `userState`後端。
-
使用
tridentctl update backend state`改變 `userState。您也可以更新 `userState`使用 `TridentBackendConfig`或者 `backend.json`文件;這將觸發後端完全重新初始化,可能會很耗時。- 旗幟
-
-h,--help:後端狀態幫助。
--user-state`設定為 `suspended`暫停後端操作。設定為 `normal`恢復後端操作。設定為 `suspended:
-
`AddVolume`和 `Import Volume`暫停。
-
CloneVolume,ResizeVolume,PublishVolume,UnPublishVolume,CreateSnapshot,GetSnapshot,RestoreSnapshot,DeleteSnapshot,RemoveVolume,GetVolumeExternal, `ReconcileNodeAccess`仍然可用。
您也可以使用以下方式更新後端狀態 userState`後端設定檔中的字段 `TridentBackendConfig`或者 `backend.json。更多信息,請參閱"後端管理選項"和"使用 kubectl 執行後端管理"。
例:
請依照以下步驟進行更新 `userState`使用 `backend.json`文件:
-
編輯 `backend.json`要包含的文件 `userState`字段值設定為“已暫停”。
-
使用以下方式更新後端 `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"
}
套用待辦事項後,您可以使用以下方法進行編輯: `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 的插件。如果外掛程式二進位檔案名稱遵循「tridentctl-<plugin>」格式,且該二進位檔案位於 PATH 環境變數列出的資料夾中,則 Tridentctl 會偵測到該外掛程式。所有偵測到的外掛程式都列在 tridentctl 幫助的插件部分。您也可以透過在環境變數 TRIDENTCTL_PLUGIN_PATH 中指定插件資料夾來限制搜尋範圍(例如: TRIDENTCTL_PLUGIN_PATH=~/tridentctl-plugins/ )。如果使用該變量,tridenctl 將僅在指定的資料夾中搜尋。