【问题标题】:Scale down kubernetes job but dont delete pods until complete缩小 kubernetes 作业,但在完成之前不要删除 pod
【发布时间】:2018-08-06 03:35:54
【问题描述】:

是否可以缩小 kubernetes 作业的并行度值,但保留任何正在运行的作业,直到它们运行完成。

我有一个特定的场景,我在容器中运行 vsts 构建代理,并且需要以始终有一个代理可用的方式设计解决方案。扩大规模很容易,因为这可以在每次构建开始时完成,但是因为我需要在 pod 完成之前清理代理,所以我不能在构建结束时以同样的方式缩小规模。如果有一种方法可以设置目标并行度,但在完成之前不删除任何 pod,这将是完美的,但任何其他对我来说实现这一点的方法或关于在哪里查看的指针都会很棒。

【问题讨论】:

  • “我需要在 pod 完成之前清理代理”是什么意思?
  • @mk_sta 如果我在删除 pod 之前不删除代理,那么除了在 vsts 中手动删除它之外,我没有办法摆脱代理。这会导致一个问题,因为我们只能根据我们拥有的 msdn 许可证拥有一定数量的代理,因此如果未删除代理并继续创建新的代理,那么我们将在某个时候用完空间
  • 您是否正在寻找“具有工作队列的并行作业”:kubernetes.io/docs/concepts/workloads/controllers/…?看来我们可以在 VSTS 方面做些什么?

标签: kubernetes azure-devops azure-pipelines azure-pipelines-release-pipeline


【解决方案1】:

我猜你的目标不是在 Kubernetes 框架外完成,因为在 Parallel Jobs 实现中,完成后有一个 Pod 是可行的。通常为了指定作业场景,我们使用.spec.completions 或.spec.parallelism 之类的条件,但它们只会跟踪 Pod 的完成和并行执行。

看看这个Article 和GitHub Project 在Kubernetes 集群上使用Helm 部署VSTS 代理。

【讨论】:

    猜你喜欢
    • 2019-03-16
    • 1970-01-01
    • 2018-05-19
    • 2020-06-02
    • 1970-01-01
    • 2021-06-10
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    相关资源
    最近更新 更多