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

自定义Trident操作员安装

贡献者

使用Trident操作员可以使用中的属性自定义Astra Trident安装 TridentOrchestrator 规格如果您要对安装进行自定义、使其超出预期范围 TridentOrchestrator 参数允许、请考虑使用 tridentctl 生成自定义YAML清单以根据需要进行修改。

了解控制器Pod和节点Pod

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

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

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

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

配置选项

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

此表详细介绍了相关信息 TridentOrchestrator 属性。

参数 Description Default

namespace

用于安装 Astra Trident 的命名空间

"default"

debug

为 Astra Trident 启用调试

false

enableForceDetach

ontap-sanontap-san-economy 仅限。

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

false

windows

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

false

cloudProvider

设置为 "Azure" 在AKS集群上使用托管身份或云身份时。如果在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

autosupport 映像

AutoSupport 遥测的容器映像

"netapp/trident-autosupport:24.02"

autosupport 代理

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

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

卸载

用于卸载 Astra Trident 的标志

false

logFormat

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

"text"

TridentImage

要安装的 Astra Trident 映像

"netapp/trident:24.02"

imageRegistry

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

"k8s.gcr.io/sig-storage" (Kubenetes 1.19及更高版本)
"quay.io/k8scsi"

kubeletDir

主机上的 kubelet 目录的路径

"/var/lib/kubelet"

wipeout

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

imagePullSecs

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

imagePullPolicy

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

IfNotPresent

控制器插件节点选择器

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

无默认值;可选

控制器插件公差

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

无默认值;可选

nodePluginNodeSelector

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

无默认值;可选

nodePluginTholeations

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

无默认值;可选

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

有关强制断开的详细信息

可对使用强制断开 ontap-sanontap-san-economy 仅限。在启用强制断开之前、必须在Kubbernetes集群上启用非正常节点关闭(NGN)。有关详细信息,请参见 "Kubnetes:节点非正常关闭"

警告 由于Astra三端存储依赖于Kubbernetes NGN、因此请勿删除 out-of-service 运行状况不正常的节点会导致出现问题、直到重新计划所有不可支持的工作负载为止。不负责任地应用或删除该问题可能会危及后端数据保护。

当Kubnetes集群管理员应用了时 node.kubernetes.io/out-of-service=nodeshutdown:NoExecute 此节点和存在污染 enableForceDetach 设置为 true,Asta Trident将确定节点状态,并:

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

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

    备注 在节点重新通过资格认定(标记为后)之前、三端技术(Trident)控制器将拒绝新的发布卷请求 dirty)。只有在Asta三端存储能够验证使用已挂载PVC的任何工作负载(即使在集群节点运行状况良好且已准备就绪后)、此工作负载才会被接受 clean (可安全发布新出版物)。

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

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

  2. 如果节点位于中 cleanable 状态(已删除服务中断的部分、并且节点处于状态 Ready 状态)、并且所有过时的已发布路径都是干净的、Asta三端技术将将节点重新提交为 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'"