基于容器的产品要求 AWS Marketplace - AWS Marketplace

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

基于容器的产品要求 AWS Marketplace

AWS Marketplace 对所有基于容器的产品和产品保持以下要求。 AWS Marketplace这些要求有助于为我们的客户推广安全、可靠和值得信赖的目录。我们还鼓励卖家审查其他控制措施和协议的实施情况,以满足其特定产品的需求。

所有产品及其相关元数据在提交时都要经过审核,以确保它们符合或超过当前 AWS Marketplace 要求。我们会审查并调整这些政策,以满足我们不断变化的安全和其他使用要求。 AWS Marketplace 持续验证现有产品是否继续满足这些要求的任何更改。如果产品不合规, AWS Marketplace 将与您联系以更新您的产品。在某些情况下,您的产品可能暂时无法向新订阅用户提供,直到问题得到解决。

安全要求

所有基于容器的产品必须满足以下安全要求:

  • Docker 容器映像必须不含任何已知的恶意软件、病毒或漏洞。当您向容器产品添加新版本时,将扫描该版本中包含的容器映像。

  • 如果您的基于容器的产品需要访问权限来管理 AWS 资源,则必须通过服务账户的IAM角色(如果通过亚马逊 Elastic Kubernetes Service (Amazon) 运行 IAM)或任务角色EKS(如果通过亚马逊弹性容器服务 ECS (Amazon) 运行)来实现访问权限,而不是向用户请求访问密钥。

  • 基于容器的产品只需要最低权限即可运行。有关更多信息,请参阅ECS安全EKS安全

  • 默认情况下,应将容器映像配置为以非根权限运行。

访问要求

所有基于容器的产品必须满足以下访问要求:

  • 基于容器的产品必须使用初始随机密码。基于容器的产品不得使用初始的固定密码或空白密码进行外部管理访问(例如,通过 Web 界面登录应用程序)。在允许买家设置或更改自己的凭证之前,必须提示买家输入该随机密码。

  • 对应用程序的任何外部访问都必须得到客户的明确同意和支持。

客户信息要求

所有基于容器的产品必须满足以下客户信息要求:

  • 除非BYOL(自带许可证)要求,否则软件不得在客户不知情和明确同意的情况下收集或导出客户数据。收集或导出客户数据的应用程序必须遵循以下准则:

    • 客户数据收集必须是自助服务、自动化和安全的。买家无需等待卖家批准即可部署软件。

    • 必须在列表的描述或使用说明中明确说明对买家数据的要求。这包括收集的内容、客户数据的存储位置以及如何使用这些数据。例如,此产品会收集您的姓名和电子邮件地址。此信息由 <company name> 发送并由其存储。此信息将仅用于就 <product name> 问题联系买家。

    • 不得收集付款信息。

产品使用要求

所有基于容器的产品必须满足以下产品使用要求:

  • 卖家只能发布功能齐全的产品。不允许使用用于试用或评估目的的测试版或预发行产品。如果卖家在提供免费BYOL版本后的 90 天 AWS Marketplace 内提供同等的付费版本,则支持开发者、社区和商业软件版本。

  • 基于容器的产品的所有使用说明都必须包括部署基于容器的产品的所有步骤。使用说明必须提供指向 AWS Marketplace上相应容器映像的命令和部署资源。

  • 基于容器的产品必须包含订阅用户使用该软件所需的所有容器映像。此外,基于容器的产品不得要求用户使用外部的任何映像 AWS Marketplace (例如,来自第三方存储库的容器映像)启动产品。

  • 容器及其软件必须可以自助方式部署,并且不得要求额外的付款方式或费用。部署时需要外部依赖的应用程序必须遵循以下准则:

    • 必须在列表的描述或使用说明中披露该要求。例如,此产品需要互联网连接才能正确部署。部署时会下载以下软件包:<list of package>。

    • 卖家需对所有外部依赖的使用负责,并确保其可用性和安全性。

    • 如果外部依赖关系不再可用,则还必须从中 AWS Marketplace 删除该产品。

    • 外部依赖项不得要求额外的付款方式或费用。

  • 需要持续连接不受买方直接控制的外部资源(例如,外部资源或由卖方APIs或第三方 AWS 服务 管理的容器)必须遵循以下指南:

    • 必须在列表的描述或使用说明中披露该要求。例如,此产品需要持续的互联网连接。需要以下持续的外部服务才能正常运行:<list of resources>。

    • 卖家需对所有外部资源的使用负责,并确保其可用性和安全性。

    • 如果外部资源不再可用,则还必须从中 AWS Marketplace 移除该产品。

    • 外部资源不得要求额外的付款方式或费用,并且必须自动设置连接。

  • 产品软件和元数据不得包含将用户重定向到 AWS Marketplace中未提供的其他云平台、其他产品或追加销售服务的语言。

  • 如果您的产品是其他产品或其他ISV产品的附加产品,则您的产品描述必须表明它扩展了其他产品的功能,如果没有该产品,则您的产品的实用性非常有限。例如,本产品扩展了 <product name> 的功能,如果没有它,则该产品的应用将受到限制。请注意,<product name> 可能需要自己的许可才能使用此列表的全部功能。

架构要求

所有基于容器的产品必须满足以下架构要求:

  • 的源容器镜像 AWS Marketplace 必须推送到所拥有的亚马逊弹性容器注册表 (AmazonECR) 存储库 AWS Marketplace。您可以在 AWS Marketplace 管理门户 中的服务器产品下为每个容器产品列表创建这些存储库。

  • 容器映像必须基于 Linux。

  • 基于容器的付费产品必须能够部署在亚马逊EKS、ECS亚马逊AWS Fargate

  • 具有合同定价和集成的基于容器的付费产品 AWS License Manager 应部署在亚马逊、亚马逊、Amazon Anywhere ECS、A EKS maz AWS Fargate on EKS Anywhere、Amazon ECS Anywhere、 AWS (ROSA)上的红帽 OpenShift 服务、本地自行管理的 Kubernetes 集群或亚马逊弹性计算云上。

容器产品使用说明

在为容器产品创建使用说明时,请按照创建AMI和容器产品使用说明 AWS Marketplace中的步骤和指导进行操作。

Amazon EKS 附加商品的要求

Amazon EKS 附加组件是为以下用户提供操作功能的软件 Kubernetes 应用程序,但不是特定于应用程序的。例如,Amazon EKS 附加组件包括可观察性代理或 Kubernetes 允许集群与用于网络、计算和存储的底层 AWS 资源进行交互的驱动程序。

作为集装箱产品的卖家,您可以从包括Amazon在内的多个部署选项中进行选择EKS。您可以将产品版本作为 AWS Marketplace 附加组件发布到 Amazon EKS 附加产品目录中。您的附加组件将显示在 Amazon EKS 控制台中由 AWS 和其他供应商维护的插件旁边。您的买家可以像使用其他插件一样轻松地将您的软件部署为附加组件。

有关更多信息,请参阅《亚马逊EKS用户指南》中的亚马逊EKS插件

为将容器产品作为 AWS Marketplace 附加组件做好准备

要将您的容器产品作为 AWS Marketplace 插件发布,它必须满足以下要求:

  • 您的容器商品必须发布在 AWS Marketplace。

  • 您的容器产品必须与ARM64架构AMD64兼容。

  • 您的容器产品不得使用自带许可证 (BYOL) 定价模式

    注意

    BYOL不支持亚马逊EKS附加商品配送。

  • 您必须遵守所有基于容器的产品要求,包括推送所有容器镜像和 Helm 图表进入 AWS Marketplace 托管的 Amazon ECR 存储库。例如,此要求包括开源图像nginx。图像和图表不能托管在其他外部存储库中,包括但不限于 Amazon ECR 公共画廊,Docker Hub,以及 Quay.

  • Helm 图表 -准备好要通过以下方式部署的软件 Helm 图表。Amazon EKS 插件框架会转换 Helm 图表变成清单。一段时间 Helm Amazon EKS 系统不支持这些功能。以下列表描述了入职前必须满足的要求。在这份清单中,所有 Helm 命令使用 Helm 版本 3.8.1:

    • 支持所有Capabilities对象,但有例外.APIVersions.APIVersions不支持 non-built-in自定义 Kubernetes APIs.

    • 仅支持Release.NameRelease.Namespace对象。

    • Helm 不支持钩子和lookup函数。

    • 所有相关图表都必须位于主图表中 Helm 图表(使用存储库路径 file://... 指定)。

    • 这些区域有:Helm 图表必须成功通过 Helm Lint 和 Helm 没有错误的模板。命令如下所示:

      • Helm 棉绒 — helm lint helm-chart

        常见问题包括父图表元数据中未声明的图表。例如,chart metadata is missing these dependencies: chart-base Error: 1 chart(s) linted, 1 chart(s) failed

      • Helm 模板 — helm template chart-name chart-location —set k8version=Kubernetes-version —kube-version Kubernetes-version —namespace addon-namespace —include-crds —no-hooks —f any-overriden-values

        使用该标志传递任何被覆盖的—f配置。

    • 将所有容器二进制文件存储在 AWS Marketplace Amazon ECR 存储库中。要创建清单,请使用 Helm 前面显示的模板命令。在清单中搜索任何外部图像引用,例如busyboxgcr图像。使用请求下拉列表中的 “添加存储库” 选项创建的 AWS Marketplace Amazon ECR 存储库将所有容器映像和依赖项上传到创建的 Amazon 存储库中。

  • 自定义配置-您可以在部署期间添加自定义变量。有关如何识别最终用户体验的信息,请为软件命名aws_mp_configuration_schema.json,然后将其打包成包装 Helm 图表,请参阅 Amazon EKS 插件:高级配置

    根据 “$schema” 关键字$schema必须是URI指向有效application/schema+json资源的。

    此文件不得接受任何敏感信息,例如密码、许可证密钥和证书。

    要处理密钥和证书安装,您可以向最终用户提供 pre-Add-on安装后或安装步骤。该产品不应依赖任何外部许可证。该产品应基于 AWS Marketplace 权利运行。

    有关限制的更多信息aws_mp_configuration_schema.json,请参阅附加组件提供商的插件配置要求和最佳实践

  • 确定并创建要部署软件的命名空间 — 在产品的第一个版本中,必须通过添加模板化命名空间来标识要部署软件的命名空间。

  • serviceAccount如果适用,请创建 — 如果该软件是付费软件 AWS Marketplace 或者必须与其他软件连接 AWS 服务,请确保 Helm 图表serviceAccount默认创建。如果serviceAccount创建是由values.yaml文件中的参数处理的,请将参数值设置为true。例如,serviceAccount.create = true。这是必需的,因为客户可能会选择通过继承已具有所需权限的底层节点实例的权限来安装插件。如果 Helm 图表未创建serviceAccount,则无法将权限绑定到serviceAccount

  • 可追踪部署或守护程序集 — 确保你的 Helm 图表有守护程序集或部署。Amaz EKS on 插件框架使用这些资源跟踪您的亚马逊EKS资源的部署。如果没有可追踪的部署或守护程序集,您的插件将面临部署错误。如果您的插件没有部署或守护程序集,例如,如果您的插件部署了一堆无法追踪的自定义资源或 Kubernetes 作业,请添加虚拟部署或守护程序集对象。

  • 支持AMD和ARM架构 — ARM64 如今,许多亚马逊EKS客户都在使用 AWS Graviton 实例。第三方软件必须同时支持这两种架构。

  • 与许可或计量集APIs成 AWS Marketplace — AWS Marketplace 支持多种计费模式。有关更多信息,请参阅 容器产品计费、计量和许可集成。如果您想通过PAYG机制销售产品,请参阅使用 AWS Marketplace 计量服务为集装箱产品配置自定义计量。如果您想通过预付模式或合同模式销售产品,请参阅集装箱产品的合同定价 AWS License Manager

  • 上传软件以及所有工件和依赖项 — Helm 图表必须是独立的,并且不得要求外部来源的依赖关系,例如,GitHub。 如果软件需要外部依赖项,则必须将依赖项推送到同一 AWS Marketplace 列表下的 AWS Marketplace 私有 Amazon ECR 存储库。

  • 在您的网站上提供部署说明 — 我们要求您为客户提供部署指南,以确定如何通过 create-add on 命令部署软件。

  • IAM角色-列出您的软件运行或与其他软件连接所需的所有 AWS Identity and Access Management (IAM) 策略 AWS 服务。

  • 版本更新 — 亚马逊会在上EKS游版本发布几周后发布新的 Kubernetes 版本。随着新的 Amazon EKS 集群版本正式上市,供应商有 45 天的时间来认证或更新其软件,使其与新的 Amazon EKS 集群版本兼容。如果您当前版本的插件支持新的 Kubernetes 版本,请对其进行验证和认证,以便我们更新版本兼容性矩阵。如果需要新的插件版本来支持新的 Kubernetes 版本发布,请提交新版本进行入门。

  • 合作伙伴的软件必须属于以下类型之一,或者是能够增强 Kubernetes 或 Amazon 的操作软件EKS:Gitops | 监控 | 日志 | 证书管理 | 策略管理 | 成本管理 | 自动扩展 | 存储 | kubernetes 管理 | 服务网格 | etcd-backup | | 负载均衡器 | 本地注册表 | 联网 | 安全 | 备份 | 入口控制器 | 可观察性 ingress-service-type

  • 软件不能是容器网络接口 (CNI)

  • 软件必须通过付费产品销售 AWS Marketplace 并与许可和计APIs量相集成。BYOL产品不被接受。

附加组件提供商的插件配置要求和最佳实践

Amazon EKS 要求附加组件提供商将其配置为 Helm JSON 架构字符串。需要必需配置或允许可选配置的插件必须包含已提交 Helm Chart 的aws_mp_configuration_schema.json文件。 AWS Marketplace Amazon EKS 将使用此架构来验证客户的配置输入,并拒绝输入值不符合架构的API呼叫。附加配置通常分为两类:

  • 配置 Kubernetes 的常规 Kubernetes 属性,例如标签、容差等。nodeSelector

  • 特定于附加组件的配置,例如许可证密钥URLs、功能启用等。

本节重点介绍与常规 Kubernetes 属性相关的第一类。

亚马逊EKS建议遵循有关亚马逊EKS插件配置的最佳实践。

架构要求

定义 json 架构时,请确保使用亚马逊EKS插件支持的 jsonschema 版本。

支持的架构列表:

  • https://json-schema。 org/draft-04/schema

  • https://json-schema。 org/draft-06/schema

  • https://json-schema。 org/draft-07/schema

  • https://json-schema。 org/draft/2019-09/schema

使用任何其他 json 架构版本都与 Amazon EKS 插件不兼容,并且会导致该插件在修复之前无法发布。

Helm 架构文件示例

{ "$schema": "http://json-schema.org/schema#", "type": "object", "properties": { "podAnnotations": { "description": "Pod Annotations" "type": "object" }, "podLabels": { "description": "Pod Labels" "type": "string" }, "resources": { "type": "object" "description": "Resources" }, "logLevel": { "description": "Logging Level" "type": "string", "enum": [ "info", "debug" ] }, "config": { "description": "Custom Configuration" "type": "object" } } }
camelCase

配置参数必须是camelCase,如果不符合此格式,则会被拒绝。

描述为必填项

务必包括对架构属性的有意义的描述。此描述将用于在 Amazon EKS 控制台中为每个配置参数呈现标签名称。

RBAC定义

插件提供商需要使用最低RBAC权限原则定义和提供成功安装插件所需的权限。如果需要更改新版本的附加组件或任何修复程序的RBAC权限CVE,则插件提供商需要将此更改通知Amazon EKS 团队。每个 Kubernetes 资源所需的权限应仅限于对象的资源名称。

apiGroups: ["apps"] resources: ["daemonsets"] resourceNames: ["ebs-csi-node"] verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
密钥管理

本节仅适用于需要客户配置秘密信息(如应用程序密钥、密API钥、密码等)的插件。由于存在安全隐患,Amazon 目前EKSAPIs不支持以纯文本形式传递机密信息。但是,客户可以使用配置来传入包含插件所需密钥的 Kubernetes 密钥的名称。客户需要创建包含密钥的 Kubernetes Secret 对象,其命名空间与先决条件步骤相同,然后在创建插件时使用配置 blob 传入密钥的名称。我们建议插件提供商为架构属性命名,这样客户就不会意外将其误认为是实际密钥。例如: appSecretName, connectionSecretName 等等。

总而言之,插件提供商可以利用该架构来允许客户传入密钥的名称,但不允许传递实际保存机密本身的密钥。

配置值示例

您可以在架构中包含配置示例,以帮助客户配置插件。以下示例来自 AWS Distro 的 OpenTelemetry 插件架构。

"examples": [ { "admissionWebhooks": { "namespaceSelector": {}, "objectSelector": {} }, "affinity": {}, "collector": { "amp": { "enabled": true, "remoteWriteEndpoint": "https://aps-workspaces.us-west-2.amazonaws.com/workspaces/ws-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/api/v1/remote_write" }, "cloudwatch": { "enabled": true }, "mode": "deployment", "replicas": 1, "resources": { "limits": { "cpu": "256m", "memory": "512Mi" }, "requests": { "cpu": "64m", "memory": "128Mi" } }, "serviceAccount": { "annotations": {}, "create": true, "name": "adot-collector" }, "xray": { "enabled": true } }, "kubeRBACProxy": { "enabled": true, "resources": { "limits": { "cpu": "500m", "memory": "128Mi" }, "requests": { "cpu": "5m", "memory": "64Mi" } } }, "manager": { "env": {}, "resources": { "limits": { "cpu": "100m", "memory": "128Mi" }, "requests": { "cpu": "100m", "memory": "64Mi" } } }, "nodeSelector": {}, "replicaCount": 1, "tolerations": [] } ]

允许配置的常用参数

以下是面向客户的 Helm 架构文件中的推荐参数。

参数 描述 应该有默认值吗?
additionalLabels 为插件管理的所有 Kubernetes 对象添加 Kubernetes 标签。
additionalAnnotations 为插件管理的所有 Kubernetes 对象添加 Kubernetes 注解。
podLabels 为插件管理的容器添加 Kubernetes 标签。
podAnnotations 向插件管理的容器添加 Kubernetes 注释。
logLevel 插件管理的组件的日志级别。
nodeSelector 推荐的最简单的节点选择约束形式。您可以将该 nodeSelector 字段添加到 Pod 规格中,并指定您希望目标节点具有的节点标签。 例如,可能仅限 Linux 节点
容忍度 容忍度适用于吊舱。容忍度允许调度器调度带有匹配污点的 Pod。容忍度允许调度,但不能保证安排时间。 也许,守护进程集更常见
亲和力 亲和性功能由两种类型的亲和性组成:节点亲和性函数与 nodeSelector 字段类似,但更具表现力,允许你指定软规则;Pod 间亲和力/反亲和性允许你限制 Pod 对抗其他 Pod 上的标签。 也许
topologySpreadConstraints 您可以使用拓扑分布约束来控制 Pod 在集群中的分布方式,例如区域、区域、节点和其他用户定义的拓扑域。这有助于实现高可用性以及高效的资源利用率。 也许
资源请求/限制 指定每个容器需要多少 CPU/内存。强烈建议设置请求。限制是可选的。
副本 插件管理的 Pod 的副本数量。不适用于守护程序集。
注意

对于工作负载调度配置参数,您可能需要在必要时将架构中的顶级组件分开。例如,Amazon EBS CSI 驱动程序包含两个主要组件,即控制器和节点代理,客户对每个组件要求不同的节点选择器/容忍度。

注意

JSON架构中定义的默认值仅用于用户文档目的,并不能取代在values.yaml文件中使用合法默认值的必要性。如果使用默认属性,请确保架构中的默认值与架构中的默认值values.yaml相匹配,并且每当对 Helm Chart 进行更改时,两个工件(values.schema.jsonvalues.yaml)都保持同步。

"affinity": { "default": { "affinity": { "nodeAffinity": { "preferredDuringSchedulingIgnoredDuringExecution": [ { "preference": { "matchExpressions": [ { "key": "eks.amazonaws.com/compute-type", "operator": "NotIn", "values": [ "fargate" ] } ] }, "weight": 1 } ] }, "podAntiAffinity": { "preferredDuringSchedulingIgnoredDuringExecution": [ { "podAffinityTerm": { "labelSelector": { "matchExpressions": [ { "key": "app", "operator": "In", "values": [ "ebs-csi-controller" ] } ] }, "topologyKey": "kubernetes.io/hostname" }, "weight": 100 } ] } } }, "description": "Affinity of the controller pod", "type": [ "object", "null" ] }

不允许配置的常用参数

各种插件(例如 clusterName region vpcIdaccountId,Elastic Load Balancing Controller)可能需要集群元数据参数,例如、、、和其他参数。Amazon EKS 服务已知的任何与这些参数相似的参数都将由亚马逊EKS插件自动注入,用户无需负责指定为配置选项。这些参数包括:

  • AWS 区域

  • 亚马逊EKS集群名称

  • VPC集群的 ID

  • 容器注册表,专门用于 build-prod 账户,供网络插件使用

  • DNS集群 IP,专门用于 coreDNS 附加组件

  • 亚马逊EKS集群API终端节点

  • IPv4已在集群上启用

  • IPv6已在集群上启用

  • 在集群上IPv6启用的前缀委派

插件提供商需要确保您已为此类适用参数定义模板。以上每个参数都将有一个由 Amazon EKS 定义的预定义parameterType属性。版本元数据将指定parameterType和之间的映射name/path of the parameter in the template. This way, the values can be dynamically passed-in by Amazon EKS without requiring customers to specify these through configurations and also gives flexibility to add-on providers to define their own template name/path。应从架构文件中排除 Amazon EKS 需要动态注入的上述参数。

来自发行版元数据的映射示例

"defaultConfiguration": [ { "key": "image.containerRegistry", "parameterType": "CONTAINER_REGISTRY" } ]

不建议在面向客户的 Helm 架构文件中配置以下参数。要么参数应该具有不可修改的默认值,要么根本不包含在插件模板中。

参数 描述 应该有默认值吗?
映像 将部署在 Kubernetes 集群上的容器镜像。 否,通过插件定义进行管理
imagePullSecrets 将 pod 配置为使用密钥从私有注册表中提取。 不适用
livenessProbe Kubelet 进程使用存活探针来知道何时重启容器。例如,liveness 探测器可能会陷入死锁,即应用程序正在运行,但无法取得进展。尽管存在错误,但在这种状态下重启容器有助于提高应用程序的可用性。
readinessProbe 对容器进行准备情况探测很重要。这样,在你的数据平面上运行的 Kubelet 进程就会知道容器何时准备好为流量提供服务。当 Pod 的所有容器都准备就绪时,Pod 即被视为准备就绪。此信号的一个用途是控制哪些 Pod 用作服务的后端。当 Pod 未准备就绪时,它会从服务负载均衡器中移除。
startupProbe kubelet 使用启动探针来了解容器应用程序何时启动。如果配置了这样的探测器,它将禁用存活和就绪检查,直到成功为止,从而确保这些探测器不会干扰应用程序的启动。这可以用来对启动缓慢的容器进行活性检查,避免它们在启动并运行之前被 kubelet 杀死。 可选
podDisruptionBudget 定义 Pod Discruption 预算 (PDB),以确保在自愿中断期间PODS保持运行的最低数量。A PDB 限制了因自愿中断而同时关闭的复制应用程序的 Pod 数量。例如,基于法定人数的应用程序希望确保运行的副本数量永远不会低于法定人数所需的数量。Web 前端可能希望确保提供负载的副本数量永远不会低于总数的特定百分比。 是,如果默认为两个以上的副本
serviceAccount (姓名) 将在其下运行的服务帐号 pod 的名称。
serviceAccount (注释) 应用于服务帐号的注释。通常用于 “服务帐号IAM角色” 功能 不是,IAM服务账户角色ARN是在顶级的 Amazon EKS 插件API中设置的。此规则的一个例外情况是,如果您的插件有多个部署/控制器(例如 Flux)并且需要单独的角色。IRSA ARNs
priorityClassName 优先级表示一个 Pod 相对于其他 Pod 的重要性。如果无法调度 Pod,调度器会尝试抢占优先级(驱逐)优先级较低的 Pod,以便可以调度待处理的 Pod。 是。大多数插件对集群功能至关重要,默认情况下应设置优先级类别。
podSecurityContext 安全上下文定义 Pod 或容器的权限和访问控制设置。通常用于设置 fsGroup -在 v1.19 及更低版本的集群IRSA中是必需的。 不太可能,因为亚马逊EKS不再支持 Kubernetes v1.19
securityContext 安全上下文定义 Pod 或容器的权限和访问控制设置。
updateStrategy 指定用于用新 Pod 替换旧 Pod 的策略。
nameOverride 覆盖 pod 的名称。
podSecurityPolicy

对参数实施限制。

否-已弃PSPs用
extraVolumeMounts/extraVolumes

用于IRSA非 Amazon EKS 集群。