

 **協助改進此頁面** 

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

若要為本使用者指南貢獻內容，請點選每個頁面右側面板中的**在 GitHub 上編輯此頁面**連結。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon EKS 附加元件
<a name="eks-add-ons"></a>

附加元件是提供 Kubernetes 應用程式支援操作功能的軟體，但並不專用於應用程式。這包括可觀測性代理程式或 Kubernetes 驅動程式等軟體，允許叢集與基礎 AWS 資源互動，以進行聯網、運算和儲存。附加元件軟體通常由 Kubernetes 社群、雲端供應商等 AWS或第三方廠商建置和維護。Amazon EKS 會自動安裝自我管理的附加元件，例如 Kubernetes 專用 Amazon VPC CNI 外掛程式、`kube-proxy`，以及每個叢集的 CoreDNS。請注意，VPC CNI 附加元件與 Amazon EKS 混合節點不相容，並且不會部署到混合節點。您可以變更附加元件的預設設定，並在需要時進行更新。

Amazon EKS 附加元件提供 Amazon EKS 叢集精選附加元件集的安裝和管理。所有 Amazon EKS 附加元件都包含最新的安全修補程式、錯誤修正，並由 驗證 AWS 以使用 Amazon EKS。Amazon EKS 附加元件可讓您持續確保 Amazon EKS 叢集安全穩定，並降低安裝、設定和更新附加元件所需的工作量。如果是自我管理的附加元件 (例如 `kube-proxy`) 已在叢集上執行，且可作為 Amazon EKS 附加元件使用，則可以安裝 `kube-proxy` Amazon EKS 附加元件開始受益於 Amazon EKS 附加元件的功能。

您可以透過 Amazon EKS API 更新 Amazon EKS 附加元件的特定 Amazon EKS 受管組態欄位。您也可以在附加元件啟動後，直接在 Kubernetes 叢集中修改非由 Amazon EKS 管理的組態欄位。這包括定義附加元件適用的特定組態欄位。這些變更一旦進行，就不會被 Amazon EKS 覆寫。可以使用 Kubernetes 伺服器端套用功能來實現。如需詳細資訊，請參閱[確定您可為 Amazon EKS 附加元件自訂的欄位](kubernetes-field-management.md)。

您可以使用 Amazon EKS 附加元件搭配任何 Amazon EKS 節點類型。如需詳細資訊，請參閱[使用節點管理運算資源](eks-compute.md)。

您可以使用 Amazon EKS API、、 AWS CLI 和 來新增 AWS 管理主控台、更新或刪除 Amazon EKS 附加元件`eksctl`。您也可以使用 [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-eks-addon.html) 建立 Amazon EKS 附加元件。

## 考量事項
<a name="eks-add-ons-considerations"></a>

當您使用 Amazon EKS 附加元件時，請考慮下列情況：
+ 若要設定叢集的附加元件，則您的 [IAM 主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)必須具有 IAM 許可才能使用附加元件。如需詳細資訊，請參閱 [Amazon Elastic Kubernetes Service 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html#amazonelastickubernetesservice-actions-as-permissions)中在其名稱中具有 `Addon` 的動作。
+ Amazon EKS 附加元件會在您為叢集佈建或設定的節點上執行。節點類型包括 Amazon EC2 執行個體、Fargate 和混合節點。
+ 您可以修改不由 Amazon EKS 管理的欄位，以自訂 Amazon EKS 附加元件的安裝。如需詳細資訊，請參閱[確定您可為 Amazon EKS 附加元件自訂的欄位](kubernetes-field-management.md)。
+ 如果您使用 建立叢集 AWS 管理主控台，Amazon EKS `kube-proxy`、適用於 Kubernetes 的 Amazon VPC CNI 外掛程式和 CoreDNS Amazon EKS 附加元件會自動新增至您的叢集。若您使用 `eksctl` 來建立具有 `config` 檔案的叢集，則 `eksctl` 也可以使用 Amazon EKS 附加元件建立叢集。如果使用不具有 `config` 檔案的 `eksctl` 建立叢集或使用任何其他工具建立叢集，則會安裝自我管理 `kube-proxy`、Kubernetes 專用 Amazon VPC CNI 外掛程式和 CoreDNS 附加元件，而非 Amazon EKS 附加元件。您可以自行管理這些附加元件，也可以在建立叢集之後手動新增 Amazon EKS 附加元件。無論您使用何種方法來建立叢集，VPC CNI 附加元件都不會安裝到混合節點上。
+ 該 `eks:addon-cluster-admin` `ClusterRoleBinding` 將 `cluster-admin` `ClusterRole` 繫結至 `eks:addon-manager` Kubernetes 身分。此角色具有建立 Kubernetes 命名空間並將附加元件安裝到命名空間的 `eks:addon-manager` 身分所需的許可。若已移除 `eks:addon-cluster-admin` `ClusterRoleBinding`，Amazon EKS 叢集會繼續運作，但 Amazon EKS 將無法再管理任何附加元件。以下平台版本開始的所有叢集皆會使用新的 `ClusterRoleBinding`。
+ 的 EKS 附加元件子集 AWS 已驗證與 Amazon EKS 混合節點的相容性。如需詳細資訊，請參閱 [AWS 附加元件](workloads-add-ons-available-eks.md) 上的相容性資料表。

## 附加元件的自訂命名空間
<a name="custom-namespace"></a>

對於社群和 AWS 附加元件，您可以在建立附加元件期間選擇性地指定自訂命名空間。一旦您在特定命名空間中安裝了附加元件，必須移除並重新建立附加元件才能更改其命名空間。

如果您未指定命名空間，它將使用附加元件的預定義命名空間。

使用自訂命名空間可以更好地組織和隔離 EKS 叢集中的附加元件物件。這種彈性有助於您將附加元件與您的運作需求和現有命名空間策略保持一致。

您可在建立附加元件時設定自訂命名空間。如需詳細資訊，請參閱[建立 Amazon EKS 附加元件](creating-an-add-on.md)。

### 取得附加元件的預定義命名空間
<a name="_get_predefined_namespace_for_add_on"></a>

附加元件的預定義命名空間是若您未指定命名空間，將安裝到其中的命名空間。

要取得附加元件的預定義命名空間，請使用以下命令：

```
aws eks describe-addon-versions --addon-name <addon-name> --query "addons[].defaultNamespace"
```

輸出範例：

```
[
    "kube-system"
]
```

## Amazon EKS 自動模式的考量事項
<a name="addon-consider-auto"></a>

Amazon EKS 自動模式包含提供基本叢集功能的能力，包括：
+ 裝置聯網
+ 網路服務
+ 叢集 DNS
+ 自動擴展
+ 區塊儲存
+ Load Balancer 控制器
+ Pod 身分識別代理程式
+ 節點監控代理程式

使用自動模式運算，許多常用的 EKS 附加元件變得冗餘，例如：
+ Amazon VPC CNI
+ kube-proxy
+ CoreDNS
+ Amazon EBS CSI 驅動程式
+ EKS Pod 身分識別代理程式

不過，如果您的叢集將自動模式與其他運算選項結合，例如自我管理的 EC2 執行個體、受管節點群組或 AWS Fargate，這些附加元件仍然是必要的。 AWS 具有增強型 EKS 附加元件與反親和性規則，可自動確保附加元件 Pod 僅排程在支援的運算類型上。此外，使用者現在可利用 EKS 附加元件 `DescribeAddonVersions` API 來確認每個附加元件及其特定版本所支援的 computeTypes。此外，使用 EKS Auto 模式時，上述控制器會在 AWS 擁有的基礎設施上執行。因此，您甚至可能不會在帳戶中看到它們，除非您使用 EKS 自動模式搭配其他類型的運算，在這種情況下，您會看到您在叢集上安裝的控制器。

如果您計劃在現有叢集上啟用 EKS 自動模式，則可能需要升級某些附加元件的版本。如需詳細資訊，請參閱 EKS 自動模式的 [所需的附加元件版本](auto-enable-existing.md#auto-addons-required)。

## 支援
<a name="addon-support"></a>

 AWS 會發佈具有不同支援層級的多種附加元件類型。
+  ** AWS 附加元件：**這些附加元件由 AWS建置並完全支援。
  + 使用 AWS 附加元件來處理其他 AWS 服務，例如 Amazon EFS。
  + 如需詳細資訊，請參閱[AWS 附加元件](workloads-add-ons-available-eks.md)。
+  ** AWS Marketplace 附加元件：**這些附加元件由 掃描 AWS 並由獨立 AWS 合作夥伴支援。
  + 使用 Marketplace 附加元件為您的叢集新增有價值且複雜的功能。
  + 如需詳細資訊，請參閱[AWS Marketplace 附加元件](workloads-add-ons-available-vendors.md)。
+  **社群附加元件**：這些附加元件由 掃描， AWS 但由開放原始碼社群支援。
  + 使用社群附加元件來降低安裝常見開放原始碼軟體的複雜性，例如 Kubernetes 指標伺服器。
  + 社群附加元件是從 source by AWS. AWS only 驗證社群附加元件的版本相容性。
  + 如需詳細資訊，請參閱[社群附加元件](community-addons.md)。

下表詳細說明每個附加元件類型的支援範圍：


| Category | 功能 |  AWS 附加元件 |  AWS Marketplace 附加元件 | 社群附加元件 | 
| --- | --- | --- | --- | --- | 
|  開發  |  由 建置 AWS   |  是  |  否  |  是  | 
|  開發  |  驗證者 AWS   |  是  |  否  |  是\$1  | 
|  開發  |  合作夥伴驗證 AWS   |  否  |  是  |  否  | 
|  Maintenance (維護)  |  掃描者 AWS   |  是  |  是  |  是  | 
|  Maintenance (維護)  |  修補者 AWS   |  是  |  否  |  是  | 
|  Maintenance (維護)  |  由 AWS 合作夥伴修補  |  否  |  是  |  否  | 
|  發佈  |  發佈者 AWS   |  是  |  否  |  是  | 
|  發佈  |  由 AWS 合作夥伴發佈  |  否  |  是  |  否  | 
|  支援  |  的基本安裝支援 AWS   |  是  |  是  |  是  | 
|  支援  |  完整 AWS 支援  |  是  |  否  |  否  | 
|  支援  |  完整 AWS 合作夥伴支援  |  否  |  是  |  否  | 

 `*`：社群附加元件的驗證僅包含了 Kubernetes 版本相容性。例如，如果您在叢集上安裝社群附加元件， 會 AWS 檢查它是否與叢集的 Kubernetes 版本相容。

 AWS Marketplace 附加元件可以從外部來源下載其他軟體相依性 AWS。這些外部相依性不會由 掃描或驗證 AWS。部署擷取外部相依性的 AWS Marketplace 附加元件時，請考慮您的安全需求。