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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Lambda 与 Kubernetes 结合使用

您可以使用 Amazon Controllers for Kubernetes(ACK) 或 Crossplane 通过 Kubernetes API 部署和管理 Lambda 函数。

Amazon Controllers for Kubernetes(ACK)

您可以使用 ACK 部署和管理来自 Kubernetes API 的 Amazon 资源。通过ACK,Amazon为Lambda、亚马逊弹性容器注册表 (Amazon ECR) Registry、亚马逊简单存储Amazon服务 (Amazon S3) Service 和亚马逊等服务提供开源自定义控制器。 SageMaker每个支持的 Amazon 服务有自己的自定义控制器。在您的 Kubernetes 集群中,为每个您要使用的 Amazon 服务安装控制器。然后,创建自定义资源定义(CRD)来定义 Amazon 资源。

我们建议您使用 Helm 3.8 或更高版本安装 ACK 控制器。每个 ACK 控制器都有自己的 Helm 图表,用于安装控制器、CRD 和 Kubernetes RBAC 规则。有关更多信息,请参阅 ACK  文档中的 Install an ACK Controller

创建 ACK 自定义资源后,您可以像使用任何其他内置 Kubernetes 对象一样使用此资源。例如,您可以使用首选的 Kubernetes 工具链(包括 kubectl)部署和管理 Lambda 函数。

以下是通过 ACK 预置 Lambda 函数的示例用例:

  • 您的组织使用基于角色的访问控制(RBAC)服务账户的 IAM 角色来创建权限边界。借助 ACK,您可以为 Lambda 重用此安全模型,而无需创建新用户和策略。

  • 您的组织有一个使用 Kubernetes 清单将资源部署到亚马逊 Elastic Kubernetes Service(Amazon EKS)集群的 DevOps 流程。借助 ACK,您可以使用清单来配置 Lambda 函数,而无需创建单独的基础架构作为代码模板。

有关使用 ACK 的更多信息,请参阅 ACK 文档中的 Lambda 教程

Crossplane

Crossplane 是一个开源云原生计算基金会(CNCF)项目,其使用 Kubernetes 来管理云基础设施资源。借助 Crossplane,开发人员可以请求基础设施,而无需了解其复杂性。平台团队保留对基础设施的预置和管理方式的控制。

借助 Crossplane,您可以使用首选的 Kubernetes 工具链(例如 kubectl)部署和管理 Lambda 函数,以及任何可以将清单部署到 Kubernetes 的 CI/CD 管道。以下是通过 Crossplane 预置 Lambda 函数的示例用例:

要了解将 Crossplane 与 Lambda 结合使用的更多信息,请参阅以下内容:

  • Amazon Blueprints for Crossplane:此存储库包含如何使用 Crossplane 部署 Amazon 资源(包括 Lambda 函数)的示例。

    注意

    Amazon Blueprints for Crossplane 正在积极开发中,不应用于生产。

  • 使用 Amazon EKS 和 Crossplane 部署 Lambda:此视频演示了使用 Crossplane 部署 Amazon 无服务器架构的高级示例,从开发人员和平台两方的角度探索设计。