管理 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.25
eksctl utils describe-addon-versions --kubernetes-version
1.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-addon
eksctl utils describe-addon-versions --kubernetes-version
1.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-arn
111122223333
:role/
role-name
-
此示例命令将覆盖附加组件的任何现有自行管理版本(如果有的话)的配置。如果您不想覆盖现有的自行管理附加组件的配置,请删除
选项。如果您删除此选项,并且 Amazon EKS 附加组件需要覆盖现有的自行管理附加组件的配置,那么创建 Amazon EKS 附加组件将会失败,并显示一条帮助您解决冲突的错误消息。在指定此选项之前,请确保 Amazon EKS 附加组件不会管理您需要管理的设置,因为这些设置会被此选项覆盖。--force
eksctl create addon --cluster
my-cluster
--namename-of-addon
--versionlatest
\--service-account-role-arn
arn: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.25
aws 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.25
vpc-cni
替换为上一步返回的附加组件名称。aws eks describe-addon-versions --kubernetes-version
--addon-name1.25
vpc-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-name
vpc-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-name
vpc-cni
--addon-versionv1.12.0-eksbuild.1
这些示例命令使用
--configuration-values
选项提供配置值。将其替换为所需配置值,例如字符串或文件输入。如果不想提供配置值,请删除--configuration-values
选项。aws eks create-addon --cluster-name
my-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-conflictsOVERWRITE
aws eks create-addon --cluster-name
my-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-cluster
eksctl get addon --cluster
my-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-cluster
region:region
addons: - name:vpc-cni
version:latest
serviceAccountRoleARN: arn:aws:iam::111122223333
:role/role-name
resolveConflicts:preserve
EOF
-
-
运行修改后的命令以创建
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-cluster
aws eks list-addons --cluster-name
my-cluster
输出示例如下。
{ "addons": [ "coredns", "kube-proxy", "vpc-cni" ] }
-
查看要更新的附加组件的当前版本。将
替换为您的集群名称,将my-cluster
替换为要更新的附加组件的名称。vpc-cni
aws eks describe-addon --cluster-name
my-cluster
--addon-namevpc-cni
--query "addon.addonVersion" --output text输出示例如下。
v1.10.4-eksbuild.1
-
您可以看到该附加组件的哪些版本可用于您的集群版本。将
替换为您的集群版本,将1.25
替换为要更新的附加组件的名称。vpc-cni
aws eks describe-addon-versions --kubernetes-version
--addon-name1.25
vpc-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-conflicts
PRESERVE
选项保留附加组件的现有值。如果您为附加组件设置设定了自定义值,但未使用此选项,则 Amazon EKS 会使用其默认值覆盖您的值。如果您使用此选项,那么我们建议您在更新生产集群上的附加组件之前,先测试非生产集群上所有更改的字段和值。如果您将该值改为overwrite
,则所有设置都将更改为 Amazon EKS 的默认值。如果您为任何设置设定了自定义值,这些值可能会被 Amazon EKS 的默认值覆盖。如果您将该值改为none
,Amazon EKS 不会更改任何设置的值,但更新可能会失败。如果更新失败,您会收到一条帮助您解决冲突的错误消息。
-
如果要删除所有自定义配置,请使用
选项执行更新。这会将所有自定义配置设置回默认值。如果不想更改自定义配置,请勿提供--configuration-values '{}'
标志。如果想要调整自定义配置,请将--configuration-values
替换为新参数。要查看参数列表,请参阅创建附加组件部分的查看配置架构步骤。{}
aws eks update-addon --cluster-name
my-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-cni
aws eks describe-addon --cluster-name
my-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-cluster
eksctl get addon --cluster
my-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 不再管理附加组件外,附加软件也会从集群中删除。--preserve
eksctl delete addon --cluster
my-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-cluster
aws eks list-addons --cluster-name
my-cluster
输出示例如下。
{ "addons": [ "coredns", "kube-proxy", "vpc-cni" ] }
-
删除已安装的附加组件。将
替换为您的集群名称,将my-cluster
替换为要删除的附加组件的名称。移除name-of-add-on
会从您的集群中移除附加组件软件。--preserve
aws eks delete-addon --cluster-name
my-cluster
--addon-namename-of-addon
--preserve
以下是简短的输出示例。
{ "addon": { "addonName": "
name-of-add-on
", "clusterName": "my-cluster
", "status": "DELETING", ... -
检查删除的状态。将
替换为您的集群名称,将my-cluster
替换为您正在删除的附加组件的名称。vpc-cni
aws eks describe-addon --cluster-name
my-cluster
--addon-namename-of-addon
删除附加组件后,输出示例如下。
An error occurred (ResourceNotFoundException) when calling the DescribeAddon operation: No addon:
name-of-addon
found in cluster:my-cluster
-