管理 Amazon EKS 附加组件
Amazon EKS 附加组件是一组用于 Amazon EKS 集群的精选附加软件。所有 Amazon EKS 附加组件都具有以下特性:
-
包含最新的安全补丁和错误修复。
-
经过 Amazon 验证,可与 Amazon EKS 一起使用。
-
可减少管理附加软件所需的工作量。
当 Amazon EKS 附加组件有新版本时,Amazon Web Services Management Console会通知您。您只需启动更新,Amazon EKS 就会为您更新附加软件。
有关可用附加组件的列表,请参阅Amazon EKS 提供的可用 Amazon EKS 附加组件。有关 Kubernetes 字段管理的更多信息,请参阅 Kubernetes 字段管理。
先决条件
-
现有 Amazon EKS 集群。要部署一个角色,请参阅 开始使用 Amazon EKS。
-
如果您要创建一个使用 Kubernetes 服务账户和 IAM 角色的附加组件,则您的集群需要具有 Amazon Identity and Access Management(IAM)OpenID Connect(OIDC)提供程序。要确定您的集群是否具有此提供程序,或者要创建此提供程序,请参阅为集群创建 IAM OIDC 提供商。
创建附加组件
您可以使用 eksctl、Amazon Web Services Management Console或 Amazon CLI 创建 Amazon EKS 附加组件。如果附加组件需要 IAM 角色,请参阅 Amazon EKS 提供的可用 Amazon EKS 附加组件 中特定附加组件的详细信息,以了解有关创建角色的详细信息。
- eksctl
-
先决条件
您的设备或 Amazon CloudShell 上安装了
0.135.0版或更高版本的eksctl命令行工具。要安装或更新eksctl,请参阅 安装或更新 eksctl。使用
eksctl创建 Amazon EKS 附加组件-
查看某个集群版本的可用附加组件名称。将
替换为您的集群版本。1.25eksctl utils describe-addon-versions --kubernetes-version1.25| grep AddonName输出示例如下。
"AddonName": "aws-ebs-csi-driver", "AddonName": "coredns", "AddonName": "kube-proxy", "AddonName": "vpc-cni", "AddonName": "adot", "AddonName": "dynatrace_dynatrace-operator", "AddonName": "upbound_universal-crossplane", "AddonName": "teleport_teleport", "AddonName": "factorhouse_kpow", ... -
查看要创建的附加组件的可用版本。将
替换为您的集群版本。将1.25替换为您要查看其版本的附加组件的名称。该名称必须是前面步骤中返回的名称之一。name-of-addoneksctl utils describe-addon-versions --kubernetes-version1.25--namename-of-addon| grep AddonVersion以下输出是一个示例,显示了为名为
vpc-cni的附加组件返回的内容。您可以看到该附加组件有多个可用版本。"AddonVersions": [ "AddonVersion": "v1.12.0-eksbuild.1", "AddonVersion": "v1.11.4-eksbuild.1", "AddonVersion": "v1.10.4-eksbuild.1", "AddonVersion": "v1.9.3-eksbuild.1", -
创建 Amazon EKS 附加组件。将以下命令复制到您的设备。根据需要对该命令进行以下修改,然后运行修改后的命令:
-
将
替换为您的集群名称。my-cluster -
将
替换为您要创建的附加组件的名称。name-of-addon -
如果您需要早于最新版本的附加组件版本,请将
替换为前面步骤的输出中返回的适用版本号。latest -
如果附加组件使用了服务账户角色,请将
替换为您的账户 ID,并将111122223333替换为该角色的名称。有关为服务账户创建角色的说明,请参阅您正在创建的附加组件的文档。指定服务账户角色需要您的集群具有 IAM OpenID Connect(OIDC)提供程序。要确定您的集群是否具有此提供程序,或者要创建此提供程序,请参阅为集群创建 IAM OIDC 提供商。role-name如果附加组件不使用服务账户角色,请删除
。arn:aws:iam::--service-account-role-arn111122223333:role/role-name -
此示例命令将覆盖附加组件的任何现有自行管理版本(如果有的话)的配置。如果您不想覆盖现有的自行管理附加组件的配置,请删除
选项。如果您删除此选项,并且 Amazon EKS 附加组件需要覆盖现有的自行管理附加组件的配置,那么创建 Amazon EKS 附加组件将会失败,并显示一条帮助您解决冲突的错误消息。在指定此选项之前,请确保 Amazon EKS 附加组件不会管理您需要管理的设置,因为这些设置会被此选项覆盖。--forceeksctl create addon --clustermy-cluster--namename-of-addon--versionlatest\--service-account-role-arnarn:aws:iam::111122223333:role/role-name--force
-
您可以看到该命令所有可用选项的列表。
eksctl create addon --help有关可用选项的更多信息,请参阅
eksctl文档中的 Addons(附加组件)。 -
- Amazon Web Services Management Console
-
使用 Amazon Web Services Management Console 创建 Amazon EKS 附加组件
从以下位置打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters
。 -
在左侧导航窗格中,选择 Clusters(集群),然后选择要为其创建附加组件的集群的名称。
-
选择 Add-ons(附加组件)选项卡。
-
选择 Get more add-ons(获取更多附加组件)。
-
选择要添加到集群的附加组件。您可以根据需要添加任意数量的附加组件。选择要安装的附加组件后,选择 Next(下一步)。
-
在 Configure selected add-ons settings(配置选定的附加组件设置)页面上:
-
对于 Version(版本),请选择要安装的版本。我们建议选择标记为 latest(最新)的版本,除非您正在创建的个别附加组件推荐了不同的版本。要确定附加组件是否有推荐版本,请参阅您正在创建的附加组件的文档。
-
-
在 Review and add(查看并添加)屏幕上,选择 Create(创建)。附加组件安装完成后,您会看到您安装的附加组件。
- Amazon CLI
-
先决条件
您的设备或 Amazon CloudShell 上安装并配置了
2.11.3版或更高版本,或1.27.93版或更高版本的 Amazon CLI。您可以使用aws --version | cut -d / -f2 | cut -d ' ' -f1检查您的当前版本。软件包管理器(如yum、apt-get或适用于 macOS 的 Homebrew)通常比 Amazon CLI 的最新版本落后几个版本。要安装最新版本,请参阅《Amazon Command Line Interface 用户指南》中的安装、更新和卸载 Amazon CLI 和使用aws configure进行快速配置。Amazon CloudShell 中安装的 Amazon CLI 版本也可能比最新版本落后几个版本。要对其进行更新,请参阅《Amazon CloudShell 用户指南》中的将 Amazon CLI 安装到您的主目录。使用 Amazon CLI 创建 Amazon EKS 附加组件
-
确定哪些附加组件可用。您可以看到所有可用的附加组件及其类型和发布者。将
替换为您的集群版本。1.25aws eks describe-addon-versions --kubernetes-version 1.25 \ --query 'addons[].{Name: addonName, Type: type}' --output table输出示例如下。
------------------------------------------------------- | DescribeAddonVersions | +-------------------------------+---------------------+ | Name | Type | +-------------------------------+---------------------+ | aws-ebs-csi-driver | storage | | coredns | networking | | kube-proxy | networking | | vpc-cni | networking | | adot | observability | | ... | ... | +-------------------------------+---------------------+您的输出可能会有所不同。在此输出示例中,有三个不同的
networking类型的附加组件和五个发布者类型为eks的附加组件。 -
您可以看到每个附加组件的可用版本。将
替换为您的集群版本,将1.25vpc-cni替换为上一步返回的附加组件名称。aws eks describe-addon-versions --kubernetes-version--addon-name1.25vpc-cni\ --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output table输出示例如下。
------------------------------------------ | DescribeAddonVersions | +-----------------+----------------------+ | Defaultversion | Version | +-----------------+----------------------+ | False | v1.12.0-eksbuild.1 | | True | v1.11.4-eksbuild.1 | | False | v1.10.4-eksbuild.1 | | False | v1.9.3-eksbuild.1 | +-----------------+----------------------+默认情况下,
Defaultversion列中值为True的版本是创建附加组件时使用的版本。 -
aws eks describe-addon-configuration --addon-namevpc-cni--addon-versionv1.12.0-eksbuild.1{ "addonName": "vpc-cni", "addonVersion": "v1.12.0-eksbuild.1", "configurationSchema": "{\"$ref\":\"#/definitions/VpcCni\",\"$schema\":\"http://json-schema.org/draft-06/schema#\",\"definitions\":{\"Cri\":{\"additionalProperties\":false,\"properties\":{\"hostPath\":{\"$ref\":\"#/definitions/HostPath\"}},\"title\":\"Cri\",\"type\":\"object\"},\"Env\":{\"additionalProperties\":false,\"properties\":{\"ADDITIONAL_ENI_TAGS\":{\"type\":\"string\"},\"AWS_VPC_CNI_NODE_PORT_SUPPORT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_ENI_MTU\":{\"format\":\"integer\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CONFIGURE_RPFILTER\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_CUSTOM_NETWORK_CFG\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":{\"format\":\"boolean\",\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOGLEVEL\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_RANDOMIZESNAT\":{\"type\":\"string\"},\"AWS_VPC_K8S_CNI_VETHPREFIX\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_FILE\":{\"type\":\"string\"},\"AWS_VPC_K8S_PLUGIN_LOG_LEVEL\":{\"type\":\"string\"},\"DISABLE_INTROSPECTION\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_METRICS\":{\"format\":\"boolean\",\"type\":\"string\"},\"DISABLE_NETWORK_RESOURCE_PROVISIONING\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_POD_ENI\":{\"format\":\"boolean\",\"type\":\"string\"},\"ENABLE_PREFIX_DELEGATION\":{\"format\":\"boolean\",\"type\":\"string\"},\"WARM_ENI_TARGET\":{\"format\":\"integer\",\"type\":\"string\"},\"WARM_PREFIX_TARGET\":{\"format\":\"integer\",\"type\":\"string\"}},\"title\":\"Env\",\"type\":\"object\"},\"HostPath\":{\"additionalProperties\":false,\"properties\":{\"path\":{\"type\":\"string\"}},\"title\":\"HostPath\",\"type\":\"object\"},\"Limits\":{\"additionalProperties\":false,\"properties\":{\"cpu\":{\"type\":\"string\"},\"memory\":{\"type\":\"string\"}},\"title\":\"Limits\",\"type\":\"object\"},\"Resources\":{\"additionalProperties\":false,\"properties\":{\"limits\":{\"$ref\":\"#/definitions/Limits\"},\"requests\":{\"$ref\":\"#/definitions/Limits\"}},\"title\":\"Resources\",\"type\":\"object\"},\"VpcCni\":{\"additionalProperties\":false,\"properties\":{\"cri\":{\"$ref\":\"#/definitions/Cri\"},\"env\":{\"$ref\":\"#/definitions/Env\"},\"resources\":{\"$ref\":\"#/definitions/Resources\"}},\"title\":\"VpcCni\",\"type\":\"object\"}}}" }输出是标准的 JSON 架构。
以下是适用于上述架构的 JSON 格式的有效配置值示例。
{ "resources": { "limits": { "cpu": "100m" } } }以下是适用于上述架构的 YAML 格式的有效配置值示例。
resources: limits: cpu: 100m -
创建 Amazon EKS 附加组件。将以下命令复制到您的设备。根据需要对该命令进行以下修改,然后运行修改后的命令:
-
将
替换为您的集群名称。my-cluster -
将
替换为前面步骤的输出中返回的要创建的附加组件名称。vpc-cni -
将
替换为前面步骤的输出中返回的要使用的版本。version-number -
如果附加组件使用 Kubernetes 服务账户和 IAM 角色,请将
111122223333替换为您的账户 ID,并将role-name替换为您创建的现有 IAM 角色的名称。有关创建角色的说明,请参阅您正在创建的附加组件的文档。指定服务账户角色需要您的集群具有 IAM OpenID Connect(OIDC)提供程序。要确定您的集群是否具有此提供程序,或者要创建此提供程序,请参阅为集群创建 IAM OIDC 提供商。如果附加组件不使用 Kubernetes 服务账户和 IAM 角色,请删除
--service-account-role-arn arn:aws:iam::111122223333:role/role-name。 -
此示例命令将覆盖附加组件的任何现有自行管理版本(如果有的话)的配置。如果您不希望 Amazon CLI 覆盖现有的自行管理附加组件的配置,请删除
选项。如果您删除此选项,并且 Amazon EKS 附加组件需要覆盖现有的自行管理附加组件的配置,那么创建 Amazon EKS 附加组件将会失败,并显示一条帮助您解决冲突的错误消息。在指定此选项之前,请确保 Amazon EKS 附加组件不会管理您需要管理的设置,因为这些设置会被此选项覆盖。--resolve-conflicts OVERWRITE
aws eks describe-addon-configuration --addon-namevpc-cni--addon-versionv1.12.0-eksbuild.1这些示例命令使用
--configuration-values选项提供配置值。将其替换为所需配置值,例如字符串或文件输入。如果不想提供配置值,请删除--configuration-values选项。aws eks create-addon --cluster-namemy-cluster--addon-namevpc-cni--addon-versionversion-number\ --service-account-role-arn arn:aws:iam::111122223333:role/role-name --configuration-values '{"resources":{"limits":{"cpu":"100m"}}}' --resolve-conflictsOVERWRITEaws eks create-addon --cluster-namemy-cluster--addon-namevpc-cni--addon-versionversion-number\ --service-account-role-arn arn:aws:iam::111122223333:role/role-name --configuration-values 'file://example.yaml' --resolve-conflictsOVERWRITE有关可用选项的完整列表,请参阅 Amazon EKS Command Line Reference(《Amazon EKS 命令行参考》)中的
create-addon。 -
-
更新附加组件
在新版本发布时或您将集群更新到新的 Kubernetes 次要版本后,Amazon EKS 不会自动更新附加组件。要更新现有集群的附加组件,必须启动更新。启动更新后,Amazon EKS 会为您更新附加组件。在更新某个附加组件之前,请查看该附加组件的最新文档。有关可用附加组件的列表,请参阅Amazon EKS 提供的可用 Amazon EKS 附加组件。如果附加组件需要 IAM 角色,请参阅 Amazon EKS 提供的可用 Amazon EKS 附加组件 中特定附加组件的详细信息,以了解有关创建角色的详细信息。
您可以使用 eksctl、Amazon Web Services Management Console 或 Amazon CLI 更新 Amazon EKS 附加组件。
- eksctl
-
先决条件
您的设备或 Amazon CloudShell 上安装了
0.135.0版或更高版本的eksctl命令行工具。要安装或更新eksctl,请参阅 安装或更新 eksctl。使用
eksctl更新 Amazon EKS 附加组件-
确定集群上目前安装的附加组件和附加组件版本。将
替换为您的集群名称。my-clustereksctl get addon --clustermy-cluster输出示例如下。
NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE coredns v1.8.7-eksbuild.2 ACTIVE 0 kube-proxy v1.23.7-eksbuild.1 ACTIVE 0 v1.23.8-eksbuild.2 vpc-cni v1.10.4-eksbuild.1 ACTIVE 0 v1.12.0-eksbuild.1,v1.11.4-eksbuild.1,v1.11.3-eksbuild.1,v1.11.2-eksbuild.1,v1.11.0-eksbuild.1您的输出可能会有所不同,这取决于您的集群上安装的附加组件和版本。您可以看到,在前面的输出示例中,集群上的两个现有附加组件在
UPDATE AVAILABLE列中有较新的版本可用。 -
更新附加组件。
-
将以下命令复制到您的设备。根据需要对该命令进行以下修改:
-
将
替换为您的集群名称。my-cluster -
请将
替换为集群所在的 Amazon Web Services 区域。region -
将
替换为上一步的输出中返回的要更新的附加组件名称。vpc-cni -
如果要更新到的版本早于最新版本,请将
替换为上一步的输出中返回的适用版本号。一些附加组件有推荐版本。有关更多信息,请参阅您正在更新的附加组件的文档。latest -
如果附加组件使用 Kubernetes 服务账户和 IAM 角色,请将
111122223333替换为您的账户 ID,并将role-name替换为您创建的现有 IAM 角色的名称。有关创建角色的说明,请参阅您正在创建的附加组件的文档。指定服务账户角色需要您的集群具有 IAM OpenID Connect(OIDC)提供程序。要确定您的集群是否具有此提供程序,或者要创建此提供程序,请参阅为集群创建 IAM OIDC 提供商。如果附加组件不使用 Kubernetes 服务账户和 IAM 角色,请删除
serviceAccountRoleARN: arn:aws:iam::行。111122223333:role/role-name -
preserve选项保留附加组件的现有值。如果您为附加组件设置设定了自定义值,但未使用此选项,则 Amazon EKS 会使用其默认值覆盖您的值。如果您使用此选项,那么我们建议您在更新生产集群上的附加组件之前,先测试非生产集群上所有更改的字段和值。如果您将该值改为overwrite,则所有设置都将更改为 Amazon EKS 的默认值。如果您为任何设置设定了自定义值,这些值可能会被 Amazon EKS 的默认值覆盖。如果您将该值改为none,Amazon EKS 不会更改任何设置的值,但更新可能会失败。如果更新失败,您会收到一条帮助您解决冲突的错误消息。cat >update-addon.yaml <<EOF apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name:my-clusterregion:regionaddons: - name:vpc-cniversion:latestserviceAccountRoleARN: arn:aws:iam::111122223333:role/role-nameresolveConflicts:preserveEOF
-
-
运行修改后的命令以创建
update-addon.yaml文件。 -
将配置文件应用到您的集群。
eksctl update addon -f update-addon.yaml
有关更新附加组件的更多信息,请参阅
eksctl文档中的 Addons(附加组件)。 -
-
- Amazon Web Services Management Console
-
使用 Amazon Web Services Management Console 更新 Amazon EKS 附加组件
从以下位置打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters
。 -
在左侧导航窗格中,选择 Clusters(集群),然后选择要为其配置附加组件的集群的名称。
-
选择 Add-ons(附加组件)选项卡。
-
选择附加组件框右上角的框,然后选择 Edit(编辑)。
-
在 Configure
name of addon(配置 name of addon)页面上:-
选择您想使用的 Version(版本)。该附加组件可能有推荐版本。有关更多信息,请参阅您正在更新的附加组件的文档。
-
对于 Select IAM role(选择 IAM 角色),您可以选择 Inherit from node(从节点继承)或为该附加组件创建的现有角色。如果没有可选择的角色,则表示没有现有角色。无论您选择哪个选项,请参阅您正在创建的附加组件(用于创建 IAM policy 并将其附加到某个角色)的文档。选择 IAM 角色需要您的集群具有 IAM OpenID Connect(OIDC)提供程序。要确定您的集群是否具有此提供程序,或者要创建此提供程序,请参阅为集群创建 IAM OIDC 提供商。
-
对于
Code editor,请输入附加组件特有的任何配置信息。有关更多信息,请参阅您正在更新的附加组件的文档。 -
对于 Conflict resolution method(冲突解决方法),选择其中一个选项。如果您为附加组件设置设定了自定义值,我们建议选择 Preserve(保留)选项。如果您不选择此选项,Amazon EKS 会使用其默认值覆盖您的值。如果您使用此选项,那么我们建议您在更新生产集群上的附加组件之前,先测试非生产集群上所有更改的字段和值。
-
-
选择更新。
- Amazon CLI
-
先决条件
您的设备或 Amazon CloudShell 上安装并配置了
2.11.3版或更高版本,或1.27.93版或更高版本的 Amazon CLI。您可以使用aws --version | cut -d / -f2 | cut -d ' ' -f1检查您的当前版本。软件包管理器(如yum、apt-get或适用于 macOS 的 Homebrew)通常比 Amazon CLI 的最新版本落后几个版本。要安装最新版本,请参阅《Amazon Command Line Interface 用户指南》中的安装、更新和卸载 Amazon CLI 和使用aws configure进行快速配置。Amazon CloudShell 中安装的 Amazon CLI 版本也可能比最新版本落后几个版本。要对其进行更新,请参阅《Amazon CloudShell 用户指南》中的将 Amazon CLI 安装到您的主目录。使用 Amazon CLI 更新 Amazon EKS 附加组件
-
查看已安装的附加组件列表。将
替换为您的集群名称。my-clusteraws eks list-addons --cluster-namemy-cluster输出示例如下。
{ "addons": [ "coredns", "kube-proxy", "vpc-cni" ] } -
查看要更新的附加组件的当前版本。将
替换为您的集群名称,将my-cluster替换为要更新的附加组件的名称。vpc-cniaws eks describe-addon --cluster-namemy-cluster--addon-namevpc-cni--query "addon.addonVersion" --output text输出示例如下。
v1.10.4-eksbuild.1 -
您可以看到该附加组件的哪些版本可用于您的集群版本。将
替换为您的集群版本,将1.25替换为要更新的附加组件的名称。vpc-cniaws eks describe-addon-versions --kubernetes-version--addon-name1.25vpc-cni\ --query 'addons[].addonVersions[].{Version: addonVersion, Defaultversion: compatibilities[0].defaultVersion}' --output table输出示例如下。
------------------------------------------ | DescribeAddonVersions | +-----------------+----------------------+ | Defaultversion | Version | +-----------------+----------------------+ | False | v1.12.0-eksbuild.1 | | True | v1.11.4-eksbuild.1 | | False | v1.10.4-eksbuild.1 | | False | v1.9.3-eksbuild.1 | +-----------------+----------------------+默认情况下,
Defaultversion列中值为True的版本是创建附加组件时使用的版本。 -
更新您的附加组件。将以下命令复制到您的设备。根据需要对该命令进行以下修改,然后运行修改后的命令。
-
将
替换为您的集群名称。my-cluster -
将
替换为前面步骤的输出中返回的要更新的附加组件名称。vpc-cni -
将
替换为上一步的输出中返回的要更新到的版本。一些附加组件有推荐版本。有关更多信息,请参阅您正在更新的附加组件的文档。version-number -
如果附加组件使用 Kubernetes 服务账户和 IAM 角色,请将
111122223333替换为您的账户 ID,并将role-name替换为您创建的现有 IAM 角色的名称。有关创建角色的说明,请参阅您正在创建的附加组件的文档。指定服务账户角色需要您的集群具有 IAM OpenID Connect(OIDC)提供程序。要确定您的集群是否具有此提供程序,或者要创建此提供程序,请参阅为集群创建 IAM OIDC 提供商。如果附加组件不使用 Kubernetes 服务账户和 IAM 角色,请删除
serviceAccountRoleARN: arn:aws:iam::行。111122223333:role/role-name -
--resolve-conflictsPRESERVE选项保留附加组件的现有值。如果您为附加组件设置设定了自定义值,但未使用此选项,则 Amazon EKS 会使用其默认值覆盖您的值。如果您使用此选项,那么我们建议您在更新生产集群上的附加组件之前,先测试非生产集群上所有更改的字段和值。如果您将该值改为overwrite,则所有设置都将更改为 Amazon EKS 的默认值。如果您为任何设置设定了自定义值,这些值可能会被 Amazon EKS 的默认值覆盖。如果您将该值改为none,Amazon EKS 不会更改任何设置的值,但更新可能会失败。如果更新失败,您会收到一条帮助您解决冲突的错误消息。
-
如果要删除所有自定义配置,请使用
选项执行更新。这会将所有自定义配置设置回默认值。如果不想更改自定义配置,请勿提供--configuration-values '{}'标志。如果想要调整自定义配置,请将--configuration-values替换为新参数。要查看参数列表,请参阅创建附加组件部分的查看配置架构步骤。{}
aws eks update-addon --cluster-namemy-cluster--addon-namevpc-cni--addon-versionversion-number\ --service-account-role-arn arn:aws:iam::111122223333:role/role-name--configuration-values '{}'--resolve-conflictsPRESERVE -
-
检查更新的状态。将
替换为您的集群名称,将my-cluster替换为您正在更新的附加组件的名称。vpc-cniaws eks describe-addon --cluster-namemy-cluster--addon-namevpc-cni输出示例如下。
{ "addon": { "addonName": "vpc-cni", "clusterName": "my-cluster", "status": "UPDATING", ...当状态为
ACTIVE时更新完成。
-
删除附加组件
当您删除 Amazon EKS 附加组件时:
-
附加组件提供的功能不停机。
-
如果附加组件有与其关联的 IAM 角色,则不会移除该 IAM 角色。
-
Amazon EKS 停止管理附加组件的设置。
-
控制台停止通知您新版本何时可用。
-
您无法使用任何 Amazon 工具或 API 更新附加组件。
-
您可以选择将附加软件留在集群上,以便您自行管理,您也可以从集群中删除附加软件。只有当集群上没有资源依赖于附加组件提供的功能时,您才能从集群中删除附加软件。
您可以使用 eksctl、Amazon Web Services Management Console或 Amazon CLI 从集群中删除 Amazon EKS 附加组件。
- eksctl
-
先决条件
您的设备或 Amazon CloudShell 上安装了
0.135.0版或更高版本的eksctl命令行工具。要安装或更新eksctl,请参阅 安装或更新 eksctl。使用
eksctl删除 Amazon EKS 附加组件-
确定集群上目前安装的附加组件。将
替换为您的集群名称。my-clustereksctl get addon --clustermy-cluster输出示例如下。
NAME VERSION STATUS ISSUES IAMROLE UPDATE AVAILABLE coredns v1.8.7-eksbuild.2 ACTIVE 0 kube-proxy v1.23.7-eksbuild.1 ACTIVE 0 vpc-cni v1.10.4-eksbuild.1 ACTIVE 0 ...您的输出可能会有所不同,这取决于您的集群上安装的附加组件和版本。
-
删除附加组件。将
替换为您的集群名称,将my-cluster替换为上一步的输出中返回的要删除的附加组件名称。如果您删除了name-of-add-on选项,则除了 Amazon EKS 不再管理附加组件外,附加软件也会从集群中删除。--preserveeksctl delete addon --clustermy-cluster--namename-of-addon--preserve
-
- Amazon Web Services Management Console
-
使用 Amazon Web Services Management Console 删除 Amazon EKS 附加组件
从以下位置打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters
。 -
在左侧导航窗格中,选择 Clusters(集群),然后选择要删除其 Amazon EKS 附加组件的集群的名称。
-
选择 Add-ons(附加组件)选项卡。
-
选中附加组件框右上角的复选框,然后选择 Remove(删除)。如果您希望 Amazon EKS 停止管理附加组件的设置,但想要在集群上保留附加组件,以便您自行管理附加组件的所有设置,请选择 Preserve on the cluster(保留在集群上)。键入附加组件名称,然后选择 Remove(删除)。
- Amazon CLI
-
先决条件
您的设备或 Amazon CloudShell 上安装了
0.135.0版或更高版本的eksctl命令行工具。要安装或更新eksctl,请参阅 安装或更新 eksctl。使用 Amazon CLI 删除 Amazon EKS 附加组件
-
查看已安装的附加组件列表。将
替换为您的集群名称。my-clusteraws eks list-addons --cluster-namemy-cluster输出示例如下。
{ "addons": [ "coredns", "kube-proxy", "vpc-cni" ] } -
删除已安装的附加组件。将
替换为您的集群名称,将my-cluster替换为要删除的附加组件的名称。移除name-of-add-on会从您的集群中移除附加组件软件。--preserveaws eks delete-addon --cluster-namemy-cluster--addon-namename-of-addon--preserve以下是简短的输出示例。
{ "addon": { "addonName": "name-of-add-on", "clusterName": "my-cluster", "status": "DELETING", ... -
检查删除的状态。将
替换为您的集群名称,将my-cluster替换为您正在删除的附加组件的名称。vpc-cniaws eks describe-addon --cluster-namemy-cluster--addon-namename-of-addon删除附加组件后,输出示例如下。
An error occurred (ResourceNotFoundException) when calling the DescribeAddon operation: No addon:name-of-addonfound in cluster:my-cluster
-