Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
帮助改进此页面
想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。
将 Amazon EBS CSI 驱动程序作为 Amazon EKS 插件进行管理
要提高安全性并减少工作量,您可以将 Amazon EBS CSI 驱动程序作为 Amazon EKS 附加组件管理。有关 Amazon EKS 附加组件的信息,请参阅 使用 AmazonAPIs 安装/更新带有 EKS 插件的集群组件。您可以按照 获取 Amazon EBS CSI 驱动程序插件 中的步骤添加 Amazon EBS CSI 附加组件。
如果添加了 Amazon EBS CSI 附加组件,则可以按照 更新 Amazon EBS CSI 插件 和 移除 Amazon EBS CSI 插件 部分的步骤进行管理。
先决条件
-
现有集群。要查看所需的平台版本,请运行以下命令。
aws eks describe-addon-versions --addon-name aws-ebs-csi-driver
-
集群的现有 Amazon Identity and Access Management IAM OpenID Connect (OIDC) 提供商。要确定您是否已经拥有一个或是否要创建一个,请参阅 为集群创建 IAM OIDC 提供商。
-
Amazon EBS CSI 驱动程序 IAM 角色。如果您未满足此先决条件,则尝试安装附加组件并运行 kubectl describe pvc
时,将显示 failed to provision volume with StorageClass
和 could not create volume in EC2: UnauthorizedOperation
错误。有关更多信息,请参阅 创建 Amazon EBS CSI 驱动程序 IAM 角色。
-
如果您使用的是集群范围内受限的 PodSecurityPolicy,请确保授予该附加组件足够的权限,以进行部署。有关每个附加组件 Pod 所需的权限,请参阅 GitHub 上的相关附加组件清单定义。
要使用 Amazon EBS CSI 驱动程序的快照功能,必须在安装附加组件之前安装外部快照程序。必须按以下顺序安装外部快照程序组件:
有关更多信息,请参阅 GitHub 上的 CSI 快照程序。
获取 Amazon EBS CSI 驱动程序插件
您可以使用 eksctl
、Amazon Web Services Management Console 或 Amazon CLI 将 Amazon EBS CSI 附加组件添加到您的集群。
- eksctl
-
使用 eksctl
获取 Amazon EBS CSI 插件
运行以下命令。将 my-cluster
替换为您的集群的名称,将 111122223333
替换为您的账户 ID,并将 AmazonEKS_EBS_CSI_DriverRole
替换为之前创建的 IAM 角色。
eksctl create addon --name aws-ebs-csi-driver --cluster my-cluster
--service-account-role-arn arn:aws:iam::111122223333
:role/AmazonEKS_EBS_CSI_DriverRole
--force
如果您删除 --force
选项,并且任何 Amazon EKS 附加组件设置与您的现有设置冲突,那么更新 Amazon EKS 附加组件将会失败,而且您会收到一条帮助您解决冲突的错误消息。在指定此选项之前,请确保 Amazon EKS 附加组件不会管理您需要管理的设置,因为这些设置会被此选项覆盖。有关此设置其他选项的更多信息,请参阅 eksctl
文档中的 Addons(附加组件)。有关 Amazon EKS Kubernetes 字段管理的更多信息,请参阅 使用字段管理功能自定义 Amazon EKS 插件设置。
- Amazon Web Services Management Console
-
使用 Amazon Web Services Management Console 获取 Amazon EBS CSI 插件
访问 https://console.aws.amazon.com/eks/home#/clusters 打开 Amazon EKS 控制台。
-
在左侧导航窗格中,选择集群。
-
选择要为其配置 Amazon EBS CSI 附加组件的集群名称。
-
选择附加组件选项卡。
-
选择获取更多附加组件。
-
在选择附加组件页面上,执行以下操作:
-
在Amazon EKS 附加组件部分,选择 Amazon EBS CSI Driver 复选框。
-
选择下一步。
-
在配置选定的附加组件设置页面上,执行以下操作:
-
选择您想使用的 Version(版本)。
-
对于选择 IAM 角色,选择要将 Amazon EBS CSI 驱动程序 IAM policy 附加到的 IAM 角色的名称。
-
(可选)展开可选配置设置。如果对冲突解决方法选择覆盖,则可能用 Amazon EKS 附加组件设置覆盖现有附加组件的一个或多个设置。如果不启用此选项,并且与现有设置存在冲突,则操作将失败。您可以使用生成的错误消息对冲突进行故障排除。在选择此选项之前,请确保 Amazon EKS 附加组件不会管理您需要自行管理的设置。
-
选择下一步。
-
在查看和添加页面上,选择创建。附加组件安装完成后,您将看到已安装的附加组件。
- Amazon CLI
-
使用 Amazon CLI 获取 Amazon EBS CSI 插件
运行以下命令。将 my-cluster
替换为集群名称,将 111122223333
替换为账户 ID,将 AmazonEKS_EBS_CSI_DriverRole
替换为之前创建的角色名称。
aws eks create-addon --cluster-name my-cluster
--addon-name aws-ebs-csi-driver
\
--service-account-role-arn arn:aws:iam::111122223333
:role/AmazonEKS_EBS_CSI_DriverRole
现在您已经将 Amazon EBS CSI 驱动程序添加为 Amazon EKS 附加组件,可以继续 部署示例应用程序。此过程包括设置存储类。
更新 Amazon EBS CSI 插件
新版本发布后或者将集群更新到一个新的 Kubernetes 次要版本后,Amazon EKS 不会自动为集群更新 Amazon EBS CSI。要更新现有集群上的 Amazon EBS CSI,您必须启动更新,然后 Amazon EKS 会为您更新该附加组件。
- eksctl
-
要使用 eksctl
更新 Amazon EBS CSI 附加组件
-
检查 Amazon EBS CSI 附加组件的当前版本。将 my-cluster
替换为您的集群名称。
eksctl get addon --name aws-ebs-csi-driver
--cluster my-cluster
示例输出如下。
NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE
aws-ebs-csi-driver v1.11.2-eksbuild.1
ACTIVE 0 v1.11.4-eksbuild.1
-
将附加组件更新为上一个步骤的输出中的 UPDATE
AVAILABLE
下返回的版本。
eksctl update addon --name aws-ebs-csi-driver
--version v1.11.4-eksbuild.1
--cluster my-cluster
\
--service-account-role-arn arn:aws:iam::111122223333
:role/AmazonEKS_EBS_CSI_DriverRole
--force
如果您删除 --force
选项,并且任何 Amazon EKS 附加组件设置与您的现有设置冲突,那么更新 Amazon EKS 附加组件将会失败,而且您会收到一条帮助您解决冲突的错误消息。在指定此选项之前,请确保 Amazon EKS 附加组件不会管理您需要管理的设置,因为这些设置会被此选项覆盖。有关此设置其他选项的更多信息,请参阅 eksctl
文档中的 Addons(附加组件)。有关 Amazon EKS Kubernetes 字段管理的更多信息,请参阅 使用字段管理功能自定义 Amazon EKS 插件设置。
- Amazon Web Services Management Console
-
使用 Amazon Web Services Management Console 更新 Amazon EBS CSI 附加组件
访问 https://console.aws.amazon.com/eks/home#/clusters 打开 Amazon EKS 控制台。
-
在左侧导航窗格中,选择集群。
-
选择要为其更新 Amazon EBS CSI 附加组件的集群名称。
-
选择附加组件选项卡。
-
选择 Amazon EBS CSI 驱动程序。
-
选择编辑。
-
在配置 Amazon EBS CSI 驱动程序页面上,执行以下操作:
-
选择您想使用的 Version(版本)。
-
对于选择 IAM 角色,选择要将 Amazon EBS CSI 驱动程序 IAM policy 附加到的 IAM 角色的名称。
-
(可选)展开可选配置设置并根据需要进行修改。
-
选择 Save changes(保存更改)。
- Amazon CLI
-
使用 Amazon CLI 更新 Amazon EBS CSI 附加组件
-
检查 Amazon EBS CSI 附加组件的当前版本。将 my-cluster
替换为您的集群名称。
aws eks describe-addon --cluster-name my-cluster
--addon-name aws-ebs-csi-driver
--query "addon.addonVersion" --output text
示例输出如下。
v1.11.2-eksbuild.1
-
确定哪些版本的 Amazon EBS CSI 附加组件可用于您的集群版本。
aws eks describe-addon-versions --addon-name aws-ebs-csi-driver
--kubernetes-version 1.23
\
--query "addons[].addonVersions[].[addonVersion, compatibilities[].defaultVersion]" --output text
示例输出如下。
v1.11.4-eksbuild.1
True
v1.11.2-eksbuild.1
False
下方使用 True
的版本是创建附加组件时部署的默认版本。创建附加组件时部署的版本可能并非最新可用版本。在之前的输出中,创建附加组件时已部署最新的版本。
-
将附加组件更新为上一步输出中返回 True
的版本。如果在输出中返回,您也可以更新到更高版本。
aws eks update-addon --cluster-name my-cluster
--addon-name aws-ebs-csi-driver --addon-version v1.11.4-eksbuild.1
\
--service-account-role-arn arn:aws:iam::111122223333
:role/AmazonEKS_EBS_CSI_DriverRole
--resolve-conflicts PRESERVE
PRESERVE
(保留)选项将保留您为附加组件设置的任何自定义设置。有关此设置的其他选项的更多信息,请参阅《Amazon EKS 命令行参考》中的更新附加组件。有关 Amazon EKS 附加组件配置管理的更多信息,请参阅 使用字段管理功能自定义 Amazon EKS 插件设置。
移除 Amazon EBS CSI 插件
移除 Amazon EKS 附加组件时,您有两种选择。
-
将附加组件保留在您的集群上 - 此方法将移除 Amazon EKS 对任何设置的管理。还移除 Amazon EKS 通知您更新以及在您启动更新后自动更新 Amazon EKS 附加组件的功能。但是,此方法会保留集群上的附加组件软件。此选项会将附加组件作为自行管理安装使用,而不是作为 Amazon EKS 附加组件使用。使用此方法,附加组件不停机。此过程中的命令使用此选项。
-
从集群中完全删除附加组件 - 我们建议只有当集群中没有资源依赖于附加组件时,才从集群移除 Amazon EKS 附加组件。要执行此选项,请从您在此过程中使用的命令中删除 --preserve
。
如果附加组件有与其关联的 IAM 账户,则不会移除该 IAM 账户。
您可以使用 eksctl
、Amazon Web Services Management Console 或 Amazon CLI 移除 Amazon EBS CSI 附加组件。
- eksctl
-
要使用 eksctl
移除 Amazon EBS CSI 附加组件
请将 my-cluster
替换为您的集群名称,然后运行以下命令。
eksctl delete addon --cluster my-cluster
--name aws-ebs-csi-driver --preserve
- Amazon Web Services Management Console
-
要使用 Amazon Web Services Management Console 移除 Amazon EBS CSI 附加组件
访问 https://console.aws.amazon.com/eks/home#/clusters 打开 Amazon EKS 控制台。
-
在左侧导航窗格中,选择集群。
-
选择要为其移除 Amazon EBS CSI 附加组件的集群名称。
-
选择附加组件选项卡。
-
选择 Amazon EBS CSI 驱动程序。
-
选择移除。
-
在删除:aws-ebs-csi-driver 确认对话框中,执行以下操作:
-
如果希望 Amazon EKS 停止管理附加组件设置,请选择在集群上保留。如果要在集群上保留附加组件软件,请执行此操作。这样您可以自行管理附加组件的所有设置。
-
输入 aws-ebs-csi-driver
。
-
选择 Remove(移除)。
- Amazon CLI
-
要使用 Amazon CLI 移除 Amazon EBS CSI 附加组件
请将 my-cluster
替换为您的集群名称,然后运行以下命令。
aws eks delete-addon --cluster-name my-cluster
--addon-name aws-ebs-csi-driver
--preserve