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

使用 Helm 部署Trident Operator(标准模式)

贡献者 netapp-aruldeepa

您可以使用 Helm 部署Trident Operator 并安装Trident 。此过程适用于Trident所需的容器镜像未存储在私有镜像仓库中的安装情况。如果您确实拥有私有镜像仓库,请使用"离线部署流程"

关于Trident25.06的关键信息

您必须阅读以下关于Trident的重要信息。

关于Trident的关键信息
  • Trident现已支持 Kubernetes 1.34。在升级 Kubernetes 之前先升级Trident 。

  • Trident严格强制要求在 SAN 环境中使用多路径配置,建议值为 `find_multipaths: no`在 multipath.conf 文件中。

    使用非多路径配置或使用 `find_multipaths: yes`或者 `find_multipaths: smart`multipath.conf 文件中的值会导致挂载失败。 Trident建议使用 `find_multipaths: no`自 21.07 版本发布以来。

使用 Helm 部署Trident Operator 并安装Trident。

使用Trident"掌舵图"您可以一步完成Trident操作符的部署和Trident 的安装。

审查"安装概述"确保您已满足安装先决条件并为您的环境选择了正确的安装选项。

开始之前

除了"部署前提条件"你需要"Helm 版本 3"

步骤
  1. 添加Trident Helm 仓库:

    helm repo add netapp-trident https://netapp.github.io/trident-helm-chart
  2. 使用 `helm install`并为您的部署指定一个名称,如下例所示: `100.2506.0`这是您正在安装的Trident版本。

    helm install <name> netapp-trident/trident-operator --version 100.2506.0 --create-namespace --namespace <trident-namespace>
    备注 如果您已经为Trident创建了命名空间,那么 `--create-namespace`该参数不会创建额外的命名空间。

您可以使用 `helm list`查看安装详细信息,例如名称、命名空间、图表、状态、应用程序版本和修订号。

安装过程中传递配置数据

安装过程中有两种方法可以传递配置数据:

选项 描述

--values(或者 -f

指定一个包含覆盖规则的 YAML 文件。可以多次指定,最右边的文件将优先使用。

--set

在命令行中指定覆盖设置。

例如,要更改默认值 `debug`运行以下命令,其中 `100.2506.0`是您正在安装的Trident版本:

helm install <name> netapp-trident/trident-operator --version 100.2506.0  --create-namespace --namespace trident --set tridentDebug=true

配置选项

这张表格和 `values.yaml`该文件是 Helm chart 的一部分,提供了键及其默认值的列表。

选项 描述 默认

nodeSelector

用于 pod 分配的节点标签

podAnnotations

Pod 注解

deploymentAnnotations

部署注解

tolerations

对舱位分配的容忍度

affinity

对小组分配的偏好

affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/arch
              operator: In
              values:
              - arm64
              - amd64
            - key: kubernetes.io/os
              operator: In
              values:
              - linux
警告 不要从 values.yaml 文件中移除默认亲和性设置。当您需要提供自定义亲和性时,请扩展默认亲和性。

tridentControllerPluginNodeSelector

Pod 的附加节点选择器。参考 了解控制器 pod 和节点 pod 了解详情。

tridentControllerPluginTolerations

覆盖 Kubernetes 对 Pod 的容忍度。参考 了解控制器 pod 和节点 pod 了解详情。

tridentNodePluginNodeSelector

Pod 的附加节点选择器。参考 了解控制器 pod 和节点 pod 了解详情。

tridentNodePluginTolerations

覆盖 Kubernetes 对 Pod 的容忍度。参考 了解控制器 pod 和节点 pod 了解详情。

imageRegistry

确定注册表 trident-operator, `trident`以及其他图片。留空则接受默认值。重要提示:在私有仓库中安装Trident时,如果您使用的是 `imageRegistry`切换以指定存储库位置,不要使用 `/netapp/`在存储库路径中。

""

imagePullPolicy

设置镜像拉取策略 trident-operator

IfNotPresent

imagePullSecrets

设置镜像拉取密钥 trident-operator, `trident`以及其他图片。

kubeletDir

允许覆盖 kubelet 内部状态的主机位置。

"/var/lib/kubelet"

operatorLogLevel

允许将Trident操作符的日志级别设置为: tracedebuginfowarnerror , 或者 fatal

"info"

operatorDebug

允许将Trident操作符的日志级别设置为 debug。

true

operatorImage

允许完全覆盖图像 trident-operator

""

operatorImageTag

允许覆盖标签 `trident-operator`图像。

""

tridentIPv6

允许Trident在 IPv6 集群中工作。

false

tridentK8sTimeout

覆盖大多数 Kubernetes API 操作的默认 30 秒超时(如果非零,则以秒为单位)。

0

tridentHttpRequestTimeout

覆盖 HTTP 请求的默认 90 秒超时时间。 `0s`超时时间无限长。不允许使用负值。

"90s"

tridentSilenceAutosupport

允许禁用Trident定期AutoSupport报告。

false

tridentAutosupportImageTag

允许覆盖Trident AutoSupport容器的图像标签。

<version>

tridentAutosupportProxy

使Trident AutoSupport容器能够通过 HTTP 代理向服务器发送请求。

""

tridentLogFormat

设置Trident日志格式(text`或者 `json)。

"text"

tridentDisableAuditLog

禁用Trident审计日志记录器。

true

tridentLogLevel

允许将Trident的日志级别设置为: tracedebuginfowarnerror , 或者 fatal

"info"

tridentDebug

允许将Trident的日志级别设置为 debug

false

tridentLogWorkflows

允许为跟踪日志记录或日志抑制启用特定的Trident工作流程。

""

tridentLogLayers

允许为跟踪日志记录或日志抑制启用特定的Trident层。

""

tridentImage

允许完全覆盖Trident的图像。

""

tridentImageTag

允许覆盖Trident图像的标签。

""

tridentProbePort

允许覆盖 Kubernetes 存活/就绪探测使用的默认端口。

""

windows

允许在 Windows 工作节点上安装Trident 。

false

enableForceDetach

允许启用强制分离功能。

false

excludePodSecurityPolicy

不创建操作员 pod 安全策略。

false

cloudProvider

设置为 `"Azure"`在 AKS 集群上使用托管身份或云身份时。在 EKS 集群上使用云身份时,请设置为“AWS”。

""

cloudIdentity

在 AKS 集群上使用云标识时,请设置为工作负载标识(“azure.workload.identity/client-id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx”)。在 EKS 集群上使用云身份时,设置为 AWS IAM 角色(“'eks.amazonaws.com/role-arn: arn:aws:iam::123456:role/trident-role'”)。

""

iscsiSelfHealingInterval

调用 iSCSI 自愈功能的时间间隔。

5m0s

iscsiSelfHealingWaitTime

iSCSI 自愈功能会在一段时间后尝试通过注销和重新登录来解决过期的会话。

7m0s

nodePrep

使Trident能够准备 Kubernetes 集群的节点,以使用指定的数据存储协议管理卷。*现在, `iscsi`是唯一支持的值。*注意:从 OpenShift 4.19 开始,此功能支持的最低Trident版本为 25.06.1。

enableConcurrency

支持并发Trident控制器操作以提高吞吐量。

备注 技术预览:此功能在NetApp Trident 25.06 中处于实验阶段,目前支持使用ONTAP-SAN 驱动程序(iSCSI 和 FCP 协议)的有限并行工作流程。

false

k8sAPIQPS

控制器与 Kubernetes API 服务器通信时使用的每秒查询数 (QPS) 限制。Burst 值根据 QPS 值自动设置。

100; 选修的

了解控制器 pod 和节点 pod

Trident以单个控制器 pod 的形式运行,集群中的每个工作节点上还有一个节点 pod。节点 pod 必须运行在您希望挂载Trident卷的任何主机上。

Kubernetes"节点选择器""容忍与污点"用于限制 pod 在特定或首选节点上运行。使用`ControllerPlugin`和 `NodePlugin`您可以指定约束和覆盖规则。

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

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