功能 Kubernetes 資源 - Amazon EKS

協助改進此頁面

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

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

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

功能 Kubernetes 資源

在叢集上啟用功能後,您通常會透過在叢集中建立和管理 Kubernetes 自訂資源來與其互動。每個功能都提供自己的一組自訂資源定義 (CRDs),以功能特定的功能擴展 Kubernetes API。

Argo CD 資源

當您啟用 Argo CD 功能時,您可以建立和管理下列 Kubernetes 資源:

Application (應用程式)

定義從 Git 儲存庫到目標叢集的部署。 Application 資源會指定來源儲存庫、目標命名空間和同步政策。每個 Argo CD 功能執行個體最多可以建立 1000 個Application資源。

ApplicationSet

從 範本產生多個Application資源,啟用多叢集和多環境部署。 ApplicationSet 資源會使用產生器,根據叢集清單、Git 目錄或其他來源動態建立Application資源。

AppProject

提供 Application 資源的邏輯分組和存取控制。 AppProject 資源會定義Application資源可以使用哪些儲存庫、叢集和命名空間,進而啟用多租戶和安全性界限。

資源範例Application

apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: my-app namespace: argocd spec: project: default source: repoURL: https://github.com/org/repo targetRevision: main path: manifests destination: server: https://kubernetes.default.svc namespace: production

如需 Argo CD 資源和概念的詳細資訊,請參閱 Argo CD 概念

kro 資源

啟用 kro 功能時,您可以建立和管理下列 Kubernetes 資源:

ResourceGraphDefinition (RGD)

定義自訂 API,將多個 Kubernetes AWS 和資源組成為更高層級的抽象。平台團隊會建立 ResourceGraphDefinition 資源,以提供具有護欄的可重複使用模式。

自訂資源執行個體

建立ResourceGraphDefinition資源後,您可以建立由 定義的自訂 API 執行個體ResourceGraphDefinition。 kro 會自動建立和管理 中指定的資源ResourceGraphDefinition

資源範例ResourceGraphDefinition

apiVersion: kro.run/v1alpha1 kind: ResourceGraphDefinition metadata: name: web-application spec: schema: apiVersion: v1alpha1 kind: WebApplication spec: name: string replicas: integer resources: - id: deployment template: apiVersion: apps/v1 kind: Deployment # ... deployment spec - id: service template: apiVersion: v1 kind: Service # ... service spec

範例WebApplication執行個體:

apiVersion: v1alpha1 kind: WebApplication metadata: name: my-web-app namespace: default spec: name: my-web-app replicas: 3

當您套用此執行個體時,kro 會自動建立 中Service定義的 Deployment和資源ResourceGraphDefinition

如需 kro 資源和概念的詳細資訊,請參閱 kro 概念

ACK 資源

啟用 ACK 功能時,您可以使用 Kubernetes 自訂 AWS 資源來建立和管理資源。ACK 為超過 50 種 AWS 服務提供超過 200 CRDs,可讓您定義 AWS Kubernetes 工作負載的資源,以及使用 Kubernetes 管理專用 AWS 基礎設施資源。

ACK 資源的範例:

S3 儲存貯體

Bucket 資源會使用版本控制、加密和生命週期政策來建立和管理 Amazon S3 儲存貯體。

RDS DBInstance

DBInstance 資源使用自動備份和維護時段佈建和管理 Amazon RDS 資料庫執行個體。

DynamoDB 資料表

Table 資源會使用佈建或隨需容量建立和管理 DynamoDB 資料表。

IAM 角色

Role 資源定義具有信任政策和 AWS 服務存取許可政策的 IAM 角色。

Lambda 函數

Function 資源會使用程式碼、執行時間和執行角色組態來建立和管理 Lambda 函數。

Bucket 資源的範例規格:

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: my-app-bucket spec: name: my-unique-bucket-name-12345 versioning: status: Enabled encryption: rules: - applyServerSideEncryptionByDefault: sseAlgorithm: AES256

如需 ACK 資源和概念的詳細資訊,請參閱 ACK 概念

資源限制

EKS 功能具有下列資源限制:

Argo CD 用量限制

  • 每個 Argo CD 功能執行個體最多 1000 個Application資源

  • 每個 Argo CD 功能執行個體最多設定 100 個遠端叢集

資源組態限制

  • Argo CD 中每個資源最多 64 個 Kubernetes Application 資源

  • kro ResourceGraphDefinition中每個資源最多 64 個 Kubernetes 資源

注意

這些限制適用於每個功能執行個體管理的資源數量。如果您需要更高的限制,您可以在多個叢集之間部署功能。

後續步驟

如需功能特定的任務和進階組態,請參閱下列主題:

  • ACK 概念 – 了解 ACK 概念和資源生命週期

  • 使用 Argo CD – 使用適用於 GitOps 工作流程的 Argo CD 功能

  • kro 概念 – 了解 kro 概念和資源合成