使用trdentctrd管理Trident
https://github.com/NetApp/trident/releases["Trident 安装程序包"^]包含 `tridentctl`命令行实用程序、可用于轻松访问Trident。具有足够Privileges的Kubornetes用户可以使用它来安装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中升级资源。
ve版本-
打印Trident版本。
全局标志
-d,--debug-
调试输出。
-h,--help-
帮助
tridentctl。 -k,--kubeconfig string-
指定
KUBECONFIG在本地或从一个Kubornetes集群到另一个集群运行命令的路径。或者、您也可以导出 KUBECONFIG变量、用于指向特定的Kubbernetes集群和问题描述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 string:Kubornetes集群的语义版本。
导入卷
使用 `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:<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-operator|all之一Trident (默认值为"auto")。
--node string:要从中收集节点Pod日志的Kubbernetes节点名称。
-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已在tbc中设置、则无法使用命令修改tridentctl update backend state <backend-name> --user-state suspended/normal。 -
要在通过tbc设置后重新能够通过tldentcdt设置
userState、必须从tbc中删除此字段。userState`可以使用命令来完成此操作 `kubectl edit tbc。删除此字段后userState、您可以使用 `tridentctl update backend state`命令更改 `userState`后端的。 -
使用
tridentctl update backend state更改userState。您还可以使用或文件更新userStateTridentBackendConfigbackend.json;这会触发后端的完全重新初始化、并且可能会非常耗时。- 标志
-
-h,--help:后端状态帮助。
--user-state:设置为suspended暂停后端操作。设置为normal恢复后端操作。设置为时suspended:
-
AddVolume和Import Volume已暂停。 -
CloneVolume、ResizeVolumePublishVolume、、UnPublishVolume、CreateSnapshotGetSnapshotRestoreSnapshot、DeleteSnapshot、、RemoveVolume、GetVolumeExternalReconcileNodeAccess保持可用。
您也可以使用后端配置文件或中的字段更新后端状态 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"
}
您可以在使用命令应用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
使用 … version 用于打印版本的标志 tridentctl 以及正在运行的Trident服务。
tridentctl version [flags]
- 标志
-
--client:仅限客户端版本(不需要服务器)。
-h, --help:版本帮助。
插件支持
tridentctd支持类似于kubectd的插件。如果插件二进制文件名遵循"tridentcts-tld"方案<plugin>、并且二进制文件位于列出了路径环境变量的文件夹中、则tridentctL)将检测插件。所有检测到的插件都会在trdentctrd帮助的插件部分中列出。您也可以通过在环境变量TRIDENTCTL_plugin_path中指定plugin文件夹来限制搜索(示例: TRIDENTCTL_PLUGIN_PATH=~/tridentctl-plugins/)。如果使用了变量、则trdencdld仅在指定文件夹中搜索。