使用 tridentctl 管理 Trident
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]
- 別名
-
volume
、v
- 旗標
-
-f
、--filename string
:Yaml或Json PVc檔案的路徑。
-h
、--help
:Volume的說明。
--no-manage
:僅建立PV/PVc。不要假設磁碟區生命週期管理。
安裝
使用 `install`旗標來安裝 Trident 。
tridentctl install [flags]
- 旗標
-
--autosupport-image string
: AutoSupport 遙測的容器影像(預設為「 NetApp / Trident AutoSupport : <current-version> 」)。
--autosupport-proxy string
:用於發送 AutoSupport 遙測的代理的地址 / 端口。
--enable-node-prep
:嘗試在節點上安裝所需的軟件包。
--generate-custom-yaml
:生成 YAML 文件而無需安裝任何內容。
-h
--help
:安裝說明。
--http-request-timeout
:覆寫 Trident 控制器 REST API 的 HTTP 要求逾時(預設值為 1m30s )。
--image-registry string
:內部映像登錄的位址 / 連接埠。
--k8s-timeout duration
:所有 Kubernetes 作業的逾時時間(預設為 30 個月)。
--kubelet-dir string
: kubelet 內部狀態的主機位置(預設為「 /var/lib/kubelet 」)。
--log-format string
: Trident 記錄格式( text 、 json )(預設「 text 」(文字))。
--node-prep
:可讓 Trident 準備 Kubernetes 叢集的節點、以使用指定的資料儲存傳輸協定來管理磁碟區。* 目前iscsi`是唯一支援的值。 *
: Trident 使用的舊版 PV 名稱、請確定不存在(預設為「 Trident 」)。
`--pv string
--pvc string
: Trident 使用的傳統 PVC 名稱、請確定不存在(預設的「 Trident 」)。
--silence-autosupport
:不要自動將 AutoSupport 套裝軟體傳送至 NetApp (預設為 true )。
--silent
:在安裝過程中禁用大多數輸出。
--trident-image string
:要安裝的 Trident 映像。
--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
使用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
。如需詳細資訊、請參閱 "管理後端的選項" 和 "以KECBECVL執行後端管理"。
範例:
請依照下列步驟使用檔案更新 userState
backend.json
:
-
編輯
backend.json
檔案、userState
將欄位的值設為「已待定」。 -
使用命令和更新檔案的路徑來更新後端
tridentctl backend update
backend.json
。-
範例 * :
tridentctl backend update -f /<path to backend JSON file>/backend.json
-
{ "version": 1, "storageDriverName": "ontap-nas", "managementLIF": "<redacted>", "svm": "nas-svm", "backendName": "customBackend", "username": "<redacted>", "password": "<redacted>", "userState": "suspended", }
您可以在使用命令套用 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 只會在指定的資料夾中搜尋。