功能 Kubernetes 资源 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

功能 Kubernetes 资源

在集群上启用某项功能后,通常需要通过在集群中创建和管理 Kubernetes 自定义资源来与该功能进行交互。每种功能都提供自己的一组自定义资源定义(CRD),这些定义通过功能特定的功能扩展 Kubernetes API。

Argo CD 资源

启用 Argo CD 功能后,您可以创建和管理以下 Kubernetes 资源:

应用程序 ()

定义从 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,该 API 将多个 Kubernetes 和 Amazon 资源组合成更高级别的抽象。平台团队可创建 ResourceGraphDefinition 资源,以提供带有护栏的可重用模式。

自定义资源实例

创建 ResourceGraphDefinition 资源后,您可以创建由 ResourceGraphDefinition 定义的自定义 API 的实例。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 会自动创建 ResourceGraphDefinition 中定义的 DeploymentService 资源。

有关 kro 资源和概念的更多信息,请参阅 kro 概念

ACK 资源

启用 ACK 功能后,您可以使用 Kubernetes 自定义资源创建和管理 Amazon 资源。ACK 为 50 多项 Amazon 服务提供超过 200 个 CRD,允许您在使用 Kubernetes 工作负载的同时定义 Amazon 资源,并使用 Kubernetes 管理专用的 Amazon 基础设施资源。

ACK 资源示例:

S3 Bucket

Bucket 资源使用版本控制、加密和生命周期策略创建和管理 Amazon S3 存储桶。

RDS DBInstance

DBInstance 资源通过自动备份和维护时段预置和管理 Amazon RDS 数据库实例。

DynamoDB 表

Table 资源使用已预置或按需容量创建和管理 DynamoDB 表。

IAM 角色

Role 资源通过信任策略和权限策略来定义 IAM 角色,以实现 Amazon 服务访问。

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 中每个 Application 资源最多 64 个 Kubernetes 资源

  • kro 中每个 ResourceGraphDefinition 最多 64 个 Kubernetes 资源

注意

这些上限适用于每个功能实例管理的资源数量。如果您需要更高上限,可以跨多个集群部署功能。

后续步骤

有关功能特定的任务和高级配置,请参阅以下主题:

  • ACK 概念:了解 ACK 概念和资源生命周期

  • 使用 Argo CD:在 GitOps 工作流程中使用 Argo CD 功能

  • kro 概念:了解 kro 的基本概念及资源组合编排