使用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
: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
:所有KubeNet操作的超时(默认值为3m0)。
--kubelet-dir string
:kubelet内部状态的主机位置(默认为"/var/lib/kubelet")。
--log-format string
:Trident日志记录格式(文本,json)(默认为“文本”)。
--node-prep
:使Trident能够使Kubbernetes集群的节点做好准备,以便使用指定的数据存储协议管理卷。目前,iscsi`是唯一支持的值。
`--pv string:Trident使用的原有PV的名称确保不存在(默认为“Trident”)。
--pvc string
:Trident使用的原有PVC的名称确保不存在(默认为“Trident”)。
--silence-autosupport
:不自动向NetApp发送AutoSupport分发包(默认为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-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
。您还可以使用或文件更新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 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
使用 … 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仅在指定文件夹中搜索。