将 Lambda 与 Kubernetes 结合使用
您可以使用 Amazon Controllers for Kubernetes(ACK)
Amazon Controllers for Kubernetes(ACK)
您可以使用 ACK 部署和管理来自 Kubernetes API 的 Amazon 资源。通过ACK,Amazon为Lambda、亚马逊弹性容器注册表 (Amazon ECR) Registry、亚马逊简单存储Amazon服务 (Amazon S3) Service 和亚马逊等服务提供开源自定义控制器。 SageMaker每个支持的 Amazon 服务有自己的自定义控制器。在您的 Kubernetes 集群中,为每个您要使用的 Amazon 服务安装控制器。然后,创建自定义资源定义(CRD)
我们建议您使用 Helm 3.8 或更高版本
创建 ACK 自定义资源后,您可以像使用任何其他内置 Kubernetes 对象一样使用此资源。例如,您可以使用首选的 Kubernetes 工具链(包括 kubectl
以下是通过 ACK 预置 Lambda 函数的示例用例:
-
您的组织使用基于角色的访问控制(RBAC)
和服务账户的 IAM 角色来创建权限边界。借助 ACK,您可以为 Lambda 重用此安全模型,而无需创建新用户和策略。 -
您的组织有一个使用 Kubernetes 清单将资源部署到亚马逊 Elastic Kubernetes Service(Amazon EKS)集群的 DevOps 流程。借助 ACK,您可以使用清单来配置 Lambda 函数,而无需创建单独的基础架构作为代码模板。
有关使用 ACK 的更多信息,请参阅 ACK 文档中的 Lambda 教程
Crossplane
Crossplane
借助 Crossplane,您可以使用首选的 Kubernetes 工具链(例如 kubectl
-
您的组织想要通过确保 Lambda 函数具有正确的标签来强制实施合规性。平台团队可以使用 Crossplane Compositions
通过 API 抽象来定义此策略。然后,开发人员可以使用这些抽象来部署带标签的 Lambda 函数。 -
您的项目 GitOps 与 Kubernetes 配合使用。在此模型中,Kubernetes 不断将 git 存储库(所需状态)与集群内运行的资源(当前状态)进行协调。如果存在差异,则该 GitOps 过程会自动对群集进行更改。您可以使用 GitOps 熟悉的 Kubernetes 工具和概念(例如 CRD 和控制器),通过 Crossplane 部署和管理 Lambda 函数。
要了解将 Crossplane 与 Lambda 结合使用的更多信息,请参阅以下内容:
-
Amazon Blueprints for Crossplane
:此存储库包含如何使用 Crossplane 部署 Amazon 资源(包括 Lambda 函数)的示例。 注意
Amazon Blueprints for Crossplane 正在积极开发中,不应用于生产。
-
使用 Amazon EKS 和 Crossplane 部署 Lambda
:此视频演示了使用 Crossplane 部署 Amazon 无服务器架构的高级示例,从开发人员和平台两方的角度探索设计。