自定义Trident操作员安装
Trident操作符允许您使用属性自定义Trident安装。 `TridentOrchestrator`规格如果您想对安装进行超出以下范围的自定义: `TridentOrchestrator`如果论据允许,请考虑使用 `tridentctl`生成自定义 YAML 清单,并根据需要进行修改。
了解控制器 pod 和节点 pod
配置选项
|
|
spec.namespace`已在……中指定 `TridentOrchestrator`用于指定Trident安装所在的命名空间。 Trident安装后,此参数*无法更新*。尝试这样做会导致 `TridentOrchestrator`状态更改为 `Failed。 Trident不打算跨命名空间迁移。
|
此表详细说明 `TridentOrchestrator`属性。
| 参数 | 描述 | 默认 | ||
|---|---|---|---|---|
|
用于安装Trident 的命名空间 |
|
||
|
启用Trident的调试功能 |
|
||
|
|
|
||
|
设置为 `true`支持在Windows工作节点上安装。 |
|
||
|
设置为 `"Azure"`在 AKS 集群上使用托管身份或云身份时。设置为 `"AWS"`在 EKS 集群上使用云身份时。设置为 `"GCP"`在 GKE 集群上使用云身份时。 |
|
||
|
在 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'”)。在 GKE 集群上使用云身份时,请设置为云身份(“'iam.gke.io/gcp-service-account: xxxx@mygcpproject.iam.gserviceaccount.com'”)。 |
|
||
|
通过 IPv6 安装Trident |
false |
||
|
Kubernetes 操作超时。
|
|
||
|
不要自动向NetApp发送自动支持包 |
|
||
|
自动支持遥测的容器镜像 |
|
||
|
用于发送自动支持遥测数据的代理地址/端口 |
|
||
|
用于卸载Trident 的标志 |
|
||
|
Trident日志记录格式:[text,json] |
|
||
|
安装Trident镜像 |
|
||
|
内部注册表路径,格式如下 |
|
||
|
主机上 kubelet 目录的路径 |
|
||
|
要彻底移除Trident,需要删除以下资源: |
|||
|
从内部镜像仓库拉取镜像的秘诀 |
|||
|
设置Trident操作符的镜像拉取策略。有效值为: |
|
||
|
Pod 的附加节点选择器。遵循与以下相同的格式 |
无默认值;可选 |
||
|
覆盖 Kubernetes 对 Pod 的容忍度。遵循与以下相同的格式: |
无默认值;可选 |
||
|
Pod 的附加节点选择器。遵循与以下相同的格式 |
无默认值;可选 |
||
|
覆盖 Kubernetes 对 Pod 的容忍度。遵循与以下相同的格式: |
无默认值;可选 |
||
|
使Trident能够准备 Kubernetes 集群的节点,以使用指定的数据存储协议管理卷。现在, `iscsi`是唯一支持的值。
|
|||
|
控制器与 Kubernetes API 服务器通信时使用的每秒查询数 (QPS) 限制。Burst 值根据 QPS 值自动设置。 |
|
||
|
支持并发Trident控制器操作以提高吞吐量。
|
false |
|
|
有关格式化 pod 参数的更多信息,请参阅"将 Pod 分配给节点"。 |
强制分离的详细信息
强制分离功能可用 ontap-san, ontap-san-economy , ontap-nas , 和 `ontap-nas-economy`仅有的。在启用强制分离之前,必须在 Kubernetes 集群上启用非正常节点关闭 (NGNS)。Kubernetes 1.28 及以上版本默认启用 NGNS。更多信息,请参阅"Kubernetes:节点非优雅关闭"。
|
|
使用时 `ontap-nas`或者 `ontap-nas-economy`驱动程序,您需要设置 `autoExportPolicy`后端配置中的参数 `true`以便Trident可以使用托管导出策略限制对应用了污点的 Kubernetes 节点的访问。 |
|
|
由于Trident依赖于 Kubernetes NGNS,请勿移除 `out-of-service`将来自不健康节点的污点保留到所有无法容忍的工作负载重新调度为止。鲁莽地应用或移除污点可能会危及后端数据保护。 |
当 Kubernetes 集群管理员应用了 `node.kubernetes.io/out-of-service=nodeshutdown:NoExecute`节点受到污染 `enableForceDetach`设置为 `true`Trident将确定节点状态并:
-
停止对挂载到该节点的卷的后端 I/O 访问。
-
将Trident节点对象标记为
dirty(不适合新出版物)Trident控制器将拒绝新的发布卷请求,直到节点重新获得资格(在被标记为已激活之后)。 dirty`由Trident节点 pod 执行。任何使用已挂载 PVC 调度的工作负载(即使集群节点运行状况良好且已准备就绪)在Trident验证节点之前都不会被接受。 `clean(适用于新出版物)。
当节点健康状况恢复且污点被移除后, Trident将:
-
识别并清理节点上过期的已发布路径。
-
如果节点位于 `cleanable`状态(已移除服务中断污点,节点处于) `Ready`如果状态)并且所有过期的、已发布的路径都已清理, 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
节点选择器
此示例使用节点选择器安装Trident 。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
controllerPluginNodeSelector:
nodetype: master
nodePluginNodeSelector:
storage: netapp
Windows 工作节点
这个示例是在运行以下命令后创建的: `cat deploy/crds/tridentorchestrator_cr.yaml`该命令在 Windows 工作节点上安装Trident 。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
windows: true
AKS 集群上的托管身份
本示例安装Trident以在 AKS 集群上启用托管身份。
apiVersion: trident.netapp.io/v1
kind: TridentOrchestrator
metadata:
name: trident
spec:
debug: true
namespace: trident
cloudProvider: "Azure"
AKS 集群上的云身份
本示例在 AKS 集群上安装Trident以用于云身份。
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 集群上安装Trident以用于云身份。
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/trident-role'"
GKE 的云身份
本示例在 GKE 集群上安装Trident以用于云身份。
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
name: backend-tbc-gcp-gcnv
spec:
version: 1
storageDriverName: google-cloud-netapp-volumes
projectNumber: '012345678901'
network: gcnv-network
location: us-west2
serviceLevel: Premium
storagePool: pool-premium1