Skip to main content
本产品推出了新版本。
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

自定义Trident操作员安装

贡献者

Trident运算符允许您使用规范中的属性自定义Astra Trident安装 TridentOrchestrator。如果要在允许的参数之外自定义安装 TridentOrchestrator、请考虑使用生成自定义YAML清单、 `tridentctl`以便根据需要进行修改。

了解控制器Pod和节点Pod

Astra Trident作为一个控制器POD运行、并在集群中的每个工作节点上运行一个节点POD。节点POD必须在任何可能要挂载Astra Trident卷的主机上运行。

Kubornetes"节点选择器""容忍和损害"用于限制Pod在特定或首选节点上运行。使用`ControllerPlugin`和 NodePlugin,您可以指定约束和覆盖。

  • 控制器插件负责卷配置和管理、例如快照和调整大小。

  • 节点插件负责将存储连接到节点。

配置选项

警告 spec.namespace`在中指定 `TridentOrchestrator`以表示安装了Astra Trident的命名空间。此参数 * 安装 Astra Trident 后无法更新 * 。尝试执行此操作会导致 `TridentOrchestrator`状态更改为 `Failed。Astra Trident不能跨命名空间迁移。

此表详细介绍了 `TridentOrchestrator`属性。

参数 说明 默认

namespace

用于安装 Astra Trident 的命名空间

"default"

debug

为 Astra Trident 启用调试

false

enableForceDetach

`ontap-san`和。 `ontap-san-economy`可与Kubnetes非正常节点关闭(NGN)结合使用、使集群管理员能够在节点运行状况不正常时将已挂载卷的工作负载安全地迁移到新节点。

false

windows

设置为 `true`在Windows工作节点上启用安装。

false

cloudProvider

如果在AKS集群上使用托管身份或云身份、请设置为 "Azure"。如果在EKS集群上使用云标识、请设置为"Aws"。

""

cloudIdentity

在AKS集群上使用云标识时、设置为工作负载标识("azure.Workload .Identity /client-id:XXXXXX-xxxx-xxxx-xxxx-xxxxxxxxxxx")。在EKS集群上使用云身份时、设置为AWS IAM角色("' eks.amazonaws.com/role-arn: arn:aws:iam::::12356:roe/astratriident-roe")。

""

IPv6

安装基于 IPv6 的 Astra Trident

false

k8sTimeout

Kubernetes 操作超时

30sec

silenceAutosupport

不要自动向 NetApp 发送 AutoSupport 捆绑包

false

autosupportImage

AutoSupport 遥测的容器映像

"netapp/trident-autosupport:24.06"

autosupportProxy

用于发送 AutoSupport 遥测的代理的地址 / 端口

"http://proxy.example.com:8888"

uninstall

用于卸载 Astra Trident 的标志

false

logFormat

要使用的 Astra Trident 日志记录格式 [text , json]

"text"

tridentImage

要安装的 Astra Trident 映像

"netapp/trident:24.06"

imageRegistry

内部注册表的路径、格式
<registry FQDN>[:port][/subpath]

"k8s.gcr.io/sig-storage"(Kubornetes 1.19+)或 "quay.io/k8scsi"

kubeletDir

主机上的 kubelet 目录的路径

"/var/lib/kubelet"

wipeout

要删除以执行 Astra Trident 完全删除的资源列表

imagePullSecrets

从内部注册表中提取映像的机密信息

imagePullPolicy

设置Trident运算符的映像提取策略。有效值为:
`Always`以始终提取图像。
`IfNotPresent`仅当节点上尚不存在映像时才提取该映像。
`Never`从不拉取图像。

IfNotPresent

controllerPluginNodeSelector

Pod的其他节点选择器。遵循与相同的格式 pod.spec.nodeSelector

无默认值;可选

controllerPluginTolerations

覆盖Kubernetes对Pod的容错。遵循与相同的格式 pod.spec.Tolerations

无默认值;可选

nodePluginNodeSelector

Pod的其他节点选择器。遵循与相同的格式 pod.spec.nodeSelector

无默认值;可选

nodePluginTolerations

覆盖Kubernetes对Pod的容错。遵循与相同的格式 pod.spec.Tolerations

无默认值;可选

备注 有关格式化POD参数的详细信息,请参阅"将 Pod 分配给节点"

有关强制断开的详细信息

强制分离仅适用于 ontap-san`和 `ontap-san-economy。在启用强制断开之前、必须在Kubbernetes集群上启用非正常节点关闭(NGN)。有关详细信息,请参阅 "Kubnetes:节点非正常关闭"

警告 由于Asta Trident依赖于Kubbernetes NGN、因此在重新计划所有不可允许的工作负载之前、请勿从运行状况不正常的节点中删除 `out-of-service`污点。不负责任地应用或删除该问题可能会危及后端数据保护。

当Kubenetes集群管理员已将此标记应用 `node.kubernetes.io/out-of-service=nodeshutdown:NoExecute`于节点并 `enableForceDetach`设置为 `true`时,Asta Trident将确定节点状态并:

  1. 停止挂载到该节点的卷的后端I/O访问。

  2. 将Astra Trident节点对象标记为 dirty(对于新出版物不安全)。

    备注 Trident控制器将拒绝新的发布卷请求,直到节点被Trident节点POD重新认定(标记为后)为止 dirty。只有在Astra Trident能够验证使用已挂载PVC计划的任何工作负载(即使在集群节点运行状况良好且已准备就绪之后)(对于新发布的产品来说是安全的)后、此类工作负载才会被接受 clean

在恢复节点运行状况并删除此污染后、Asta Trident将:

  1. 确定并清除节点上陈旧的已发布路径。

  2. 如果此节点处于某个 `cleanable`状态(已删除服务中断、并且此节点处于 `Ready`状态)、并且所有过时的已发布路径均已清理、则Asta Trident会将此节点重新提交为、并允许新的已发布卷访问此 `clean`节点。

配置示例

定义时、您可以使用中的属性配置选项来自定义 `TridentOrchestrator`安装。

基本自定义配置

这是一个基本自定义安装示例。

cat deploy/crds/tridentorchestrator_cr_imagepullsecrets.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  imagePullSecrets:
  - thisisasecret
节点选择器

此示例将安装具有节点选择器的Asta Trdent。

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  controllerPluginNodeSelector:
    nodetype: master
  nodePluginNodeSelector:
    storage: netapp
Windows工作节点

此示例将A作用 于Windows工作节点上。

cat deploy/crds/tridentorchestrator_cr.yaml
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  windows: true
AKS集群上的受管身份

此示例将安装A作用 于在AKS集群上启用受管身份。

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "Azure"
AKS集群上的云身份

此示例将在AKS集群上安装用于云身份的Asta Dent。

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "Azure"
  cloudIdentity: 'azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx'
EKS集群上的云身份

此示例将在AKS集群上安装用于云身份的Asta Dent。

apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
  name: trident
spec:
  debug: true
  namespace: trident
  cloudProvider: "AWS"
  cloudIdentity: "'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/astratrident-role'"