使用 AWS Controllers for Kubernetes (ACK) 從 Kubernetes 部署 AWS 資源 - Amazon EKS

協助改進此頁面

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

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

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

使用 AWS Controllers for Kubernetes (ACK) 從 Kubernetes 部署 AWS 資源

AWS Kubernetes (ACK) 的控制器可讓您直接從 Kubernetes 定義和管理 AWS 服務資源。使用 AWS Controllers for Kubernetes (ACK),您可以使用 Kubernetes 自訂資源來管理工作負載資源和雲端基礎設施,以及使用熟悉的 Kubernetes APIs 和工具的應用程式工作負載。

透過 EKS 功能,ACK 完全由 管理 AWS,無需在叢集上安裝、維護和擴展 ACK 控制器。

ACK 的運作方式

ACK 會將 Kubernetes 自訂資源規格轉換為 AWS API 呼叫。當您建立、更新或刪除代表 AWS 服務資源的 Kubernetes 自訂資源時,ACK 會進行必要的 AWS API 呼叫來建立、更新或刪除 AWS 資源。

ACK 支援的每個 AWS 資源都有自己的自訂資源定義 (CRD),可定義用於指定其組態的 Kubernetes API 結構描述。例如,ACK 為 S3 提供 CRDs,包括儲存貯體、儲存貯體政策和其他 S3 資源。

ACK 會持續將 AWS 資源的狀態與 Kubernetes 自訂資源中定義的所需狀態進行協調。如果資源偏離其所需狀態,ACK 會偵測到此情況並採取修正動作,使其重新對齊。Kubernetes 資源的變更會立即反映在 AWS 資源狀態中,而上游 AWS 資源變更的被動偏離偵測和修復可能需要長達 10 小時 (重新同步期間),但通常會更快發生。

範例 S3 儲存貯體資源資訊清單

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-ack-bucket spec: name: my-unique-bucket-name

當您將此自訂資源套用至叢集時,如果帳戶尚未存在,ACK 會在帳戶中建立 Amazon S3 儲存貯體。此資源的後續變更,例如指定非預設儲存層或新增政策,將會套用至其中的 S3 資源 AWS。從叢集刪除此資源時,預設 AWS 會刪除 中的 S3 儲存貯體。

ACK 的優點

ACK 提供 Kubernetes 原生 AWS 資源管理,可讓您使用與應用程式相同的 Kubernetes APIs 和工具來管理 AWS 資源。這種統一的方法可簡化您的基礎設施管理工作流程,無需在不同工具之間切換或學習單獨的infrastructure-as-code系統。您可以在 Kubernetes 資訊清單中宣告地定義 AWS 資源,讓 GitOps 工作流程和基礎設施成為與現有開發程序無縫整合的程式碼實務。

ACK 會持續協調 AWS 資源的所需狀態及其實際狀態,修正偏離並確保基礎設施的一致性。此持續對帳表示對 AWS 資源進行必要的out-of-band變更會自動還原,以符合您宣告的組態,以維護基礎設施的完整性做為程式碼。您可以設定 ACK 以跨多個 AWS 帳戶和區域管理資源,啟用複雜的多帳戶架構,無需額外的工具。

對於從其他基礎設施管理工具遷移的組織,ACK 支援資源採用,可讓您在 ACK 管理下使用現有 AWS 資源,而無需重新建立。ACK 也提供唯讀資源,無需修改存取即可進行 AWS 資源觀察,以及即使從叢集刪除 Kubernetes 資源,也可以選擇保留 AWS 資源的註釋。

若要進一步了解並開始使用適用於 ACK 的 EKS 功能,請參閱 ACK 概念EKS 的 ACK 考量事項

支援 AWS 的服務

ACK 支援廣泛的 AWS 服務,包括但不限於:

  • Amazon EC2

  • Amazon S3

  • Amazon RDS

  • Amazon DynamoDB

  • Amazon ElastiCache

  • Amazon EKS

  • Amazon SQS

  • Amazon SNS

  • AWS Lambda

  • AWS IAM

ACK 的 EKS 功能支援所有列為一般可用的上游 AWS 服務。如需詳細資訊,請參閱支援 AWS 的服務完整清單

與其他 EKS 受管功能的整合

ACK 與其他 EKS 受管功能整合。

  • Argo CD:使用 Argo CD 管理跨多個叢集的 ACK 資源部署,為您的 AWS 基礎設施啟用 GitOps 工作流程。

    • ACK 與 ArgoCD 搭配使用時可延伸 GitOps 的優點,但 ACK 不需要與 git 整合。

  • kro (Kube Resource Orchestrator):使用 kro 從 ACK 資源編寫複雜的資源,建立更高階的抽象,簡化資源管理。

    • 您可以使用同時定義 Kubernetes 資源和資源的 kro 建立複合自訂 AWS 資源。團隊成員可以使用這些自訂資源快速部署複雜的應用程式。

ACK 入門

若要開始使用 ACK 的 EKS 功能:

  1. 建立並設定具有必要許可的 IAM 功能角色,讓 ACK 代表您管理 AWS 資源。

  2. 透過 AWS 主控台、 AWS CLI 或您偏好的基礎設施做為程式碼工具,在您的 EKS 叢集上建立 ACK 功能資源

  3. 將 Kubernetes 自訂資源套用至您的叢集,以開始在 Kubernetes 中管理您的 AWS 資源。