帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 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 中定义的 Deployment 和 Service 资源。
有关 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 的基本概念及资源组合编排