Amazon EKS 附加元件 - Amazon EKS

協助改進此頁面

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

Amazon EKS 附加元件

附加元件是提供 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 附加元件自訂的欄位

您可以使用 Amazon EKS 附加元件搭配任何 Amazon EKS 節點類型。如需詳細資訊,請參閱 使用節點管理運算資源

可以使用 Amazon EKS API、AWS 管理主控台、AWS CLI 和 eksctl 新增、更新或刪除 Amazon EKS 附加元件。您也可以使用 AWS CloudFormation 建立 Amazon EKS 附加元件。

考量事項

當您使用 Amazon EKS 附加元件時,請考慮下列情況:

  • 若要設定叢集的附加元件,則您的 IAM 主體必須具有 IAM 許可才能使用附加元件。如需詳細資訊,請參閱 Amazon Elastic Kubernetes Service 定義的動作中在其名稱中具有 Addon 的動作。

  • Amazon EKS 附加元件會在您為叢集佈建或設定的節點上執行。節點類型包括 Amazon EC2 執行個體、Fargate 和混合節點。

  • 您可以修改不由 Amazon EKS 管理的欄位,以自訂 Amazon EKS 附加元件的安裝。如需詳細資訊,請參閱 確定您可為 Amazon EKS 附加元件自訂的欄位

  • 如果使用 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 ClusterRoleBindingcluster-admin ClusterRole 繫結至 eks:addon-manager Kubernetes 身分。此角色具有建立 Kubernetes 命名空間並將附加元件安裝到命名空間的 eks:addon-manager 身分所需的許可。若已移除 eks:addon-cluster-admin ClusterRoleBinding,Amazon EKS 叢集會繼續運作,但 Amazon EKS 將無法再管理任何附加元件。以下平台版本開始的所有叢集皆會使用新的 ClusterRoleBinding

  • 來自 AWS 的 EKS 附加元件子集已經過驗證,可與 Amazon EKS 混合節點相容。如需詳細資訊,請參閱 AWS 附加元件 上的相容性資料表。

附加元件的自訂命名空間

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

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

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

您可在建立附加元件時設定自訂命名空間。如需詳細資訊,請參閱 建立 Amazon EKS 附加元件

取得附加元件的預定義命名空間

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

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

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

輸出範例:

[ "kube-system" ]

Amazon EKS 自動模式的考量事項

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 自動模式時,上面列出的控制器在 AWS 擁有的基礎結構上執行。因此,除非您將 EKS 自動模式與其他類型的運算搭配使用,否則您甚至可能不會在帳戶中看到它們,在這種情況下,您將看到在叢集上安裝的控制器。

如果您計劃在現有叢集上啟用 EKS 自動模式,則可能需要升級某些附加元件的版本。如需詳細資訊,請參閱 EKS 自動模式的 所需的附加元件版本

支援

AWS 會發布多種類型的附加元件,具有不同的支援等級。

  • AWS 附加元件:這些附加元件由 AWS 建置並完全支援。

    • 使用 AWS 附加元件來處理其他 AWS 服務,例如 Amazon EFS。

    • 如需詳細資訊,請參閱 AWS 附加元件

  • AWS Marketplace 附加元件:這些附加元件由 AWS 掃描,並由獨立的 AWS 合作夥伴支援。

    • 使用 Marketplace 附加元件為您的叢集新增有價值且複雜的功能。

    • 如需詳細資訊,請參閱 AWS Marketplace 附加元件

  • 社群附加元件:這些附加元件由 AWS 掃描,但由開放原始碼社群支援。

    • 使用社群附加元件來降低安裝常見開放原始碼軟體的複雜性,例如 Kubernetes 指標伺服器。

    • 社群附加元件是由 AWS 從來源封裝。AWS 只會驗證社群附加元件的版本相容性。

    • 如需詳細資訊,請參閱 社群附加元件

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

類別 功能 AWS 附加元件 AWS Marketplace 附加元件 社群附加元件

開發

由 AWS 建置

開發

由 AWS 驗證

是*

開發

經 AWS 合作夥伴驗證

維護

由於 AWS 掃描

維護

由 AWS 修補

維護

由 AWS 合作夥伴修補

發佈

由 AWS 發布

發佈

由 AWS 合作夥伴發布

支援

由 AWS 提供基本安裝支援

支援

完整 AWS 支援

支援

完整 AWS 合作夥伴支援

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

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