gpt4 book ai didi

kubernetes - 是否在VSTS中释放(取消部署)应用程序?

转载 作者:行者123 更新时间:2023-12-02 11:40:48 24 4
gpt4 key购买 nike

我有一个带有N个git存储库的项目,每个项目代表一个静态网站(N个不同)。对于每个git仓库,都有一个生成定义,该定义在Azure容器注册表上创建一个nginx docker镜像。这N个构建定义链接到N个发布定义,这些发布定义将每个镜像部署到k8(也在Azure上)。总体而言,CI / CD可以正常工作,并且在首次成功发布后,我会看到一系列环境,每个环境都代表一个现已在线的网站。

environments VSTS CI/CD release pipelines

我无法使用VSTS CI / CD声明如何拆除这些环境。在GitLab CI(我之前使用过)中,存在一个stopping an environment的概念,尽管这只是.gitlab-ci.yaml的一个阶段,但运行它实际上会从已部署的列表中删除一个环境。

删除可自动部署的功能分支(又称为Review Apps)时,停止环境可能很有用。就我而言,当需要删除一个已经共享的静态网站时,我想这样做。

VSTS似乎没有释放已发布内容的概念,我想知道最好的解决方法是什么。到目前为止,我尝试了以下两种选择:

  • 创建N个新的发布定义管道,这些管道为对应的静态网站调用kubecetl delete ...。这确实使事情很清楚了,因为在一个管道中称为k8s prod (website-42)的环境与在另一个管道中的环境是不同的(否则,我可以看到web → cloudweb × cloud是最后被调用的):

    environment cards (multiple release definitions)
  • 在同一发行版本中定义一个称为production (delete)的新环境,并手动触发它。

    environment cards (single release definitions)

    在这种情况下,“部署”与“取消部署”相距不远,但是很难弄清楚最后一个(在上面的示例中,您可能会猜测,重新删除k8s资源是在删除它们之后发生的–您需要看看卡片上的时间,这是一个很差的指示)。

  • 删除/取消部署已发布的应用程序还能做什么?

    最佳答案

    VSTS在发布管理中没有“停止环境”功能(自动删除环境中已部署的内容)。但是您可以在VSTS YAML build中实现相同的目的。

    因此,除了共享的两种解决方法外,您还可以通过VSTS YAML构建来停止环境(类似于GitLab中的机制)。

    对于YAML CI构建,您只需要使用.vsts-ci.yml提交文件即可。在.vsts-ci.yml文件中,您可以指定任务以删除已部署的应用程序。

    关于kubernetes - 是否在VSTS中释放(取消部署)应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51386985/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com