我有一个在 AWS EKS 上运行的 Rancher 2.5 集群。我的 CI 是通过一个到 Github 存储库的 webhook 在 CodeBuild 中完成的。buildspec.yml 可以很好地运行构建,标记容器,然后将它们发送到我在 AWS ECR 上的私有注册表,但我还没有找到一种简单的方法来触发集群上的部署更新以让它知道新的容器版本可用。我怎么做?
我有一个在 AWS EKS 上运行的 Rancher 2.5 集群。我的 CI 是通过一个到 Github 存储库的 webhook 在 CodeBuild 中完成的。buildspec.yml 可以很好地运行构建,标记容器,然后将它们发送到我在 AWS ECR 上的私有注册表,但我还没有找到一种简单的方法来触发集群上的部署更新以让它知道新的容器版本可用。我怎么做?
为此,您必须从 Rancher 获取 kubeconfig 文件并将其放在 CodeBuild 克隆的 github 存储库中的某个位置。接下来,您修改 buildspec.yml 文件以在构建成功完成后添加一个或多个命令,图像已被标记并推送到注册表,以将容器部署到集群。大多数情况下,这意味着这将发生在 buildspec.yml 文件的 post_build 部分的最后。像这样的东西:
这将触发更改,但请记住,新标签必须与部署当前正在运行的标签不同。否则,什么都不会发生,因为如果标签相同,K8S 认为不需要部署。这就是为什么
:latest
在您的标签中使用将无法使用它,并且首先是一个坏主意。