【问题标题】:Kubernetes EKS, AWS CodeBuild & AWS LambdaKubernetes EKS、AWS CodeBuild 和 AWS Lambda
【发布时间】:2020-04-09 14:25:04
【问题描述】:

我使用 ECR、EKS 制作了一个容器化应用程序。

对于我的 CI-CD 管道,我有 AWS 代码管道:

  • AWS 代码提交 - GitHub
  • AWS CodeBuild 将自动执行构建任务,例如我们在 docker 映像中构建应用程序、标记映像并最后将映像推送到 ECR。

在我的部署过程中,我需要它在 AWS 管道上,所以我求助于 AWS Lambda,它可以执行函数来推出更新;但是,在 kubernetes python、nodeJS 客户端等库中。没有 API 可以执行 kubectl rollout restart deployment。我的部署过程非常简单,无需更改图像标签(相同的图像标签)即可进行推出更新

【问题讨论】:

  • 这是强烈不推荐使用latest标签或重复使用标签的原因之一。
  • 考虑到我没有像 latest 这样的静态标签。在 py kubernetes 库中,它需要始终创建一个部署对象,如果我使用 deployment.yaml 进行更新,这将很困难,我将始终需要更新 lambda py 函数以与该部署配置保持一致。

标签: amazon-web-services kubernetes aws-lambda


【解决方案1】:

您可以使用 kubernetes 的部署工具,在我当前的设置中,我使用 samson 和 lambda 函数让 samson 知道何时有新图像推送到 ecr,然后您可以将新图像部署到你的 Kubernetes 集群。

【讨论】:

  • 我已经有了 CI CD 管道,我所做的是使用 AWS Code Pipeline; CodeCommit -> CodeBuild -> Lambda 部署 (Python) 但是设置是通过 k8spy patch_namespaced_deployment;我正在尝试做的是采用推出部署方法; patch_namespaced_deployment 是一种一次性的方法,会有停机时间;
猜你喜欢
  • 2020-10-31
  • 1970-01-01
  • 2022-12-07
  • 2021-09-07
  • 2019-03-26
  • 2020-11-24
  • 2018-07-18
  • 1970-01-01
  • 2020-05-02
相关资源
最近更新 更多