Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 在VST中不释放(取消部署)应用程序?_Kubernetes_Azure Devops_Continuous Deployment_Azure Pipelines Release Pipeline - Fatal编程技术网

Kubernetes 在VST中不释放(取消部署)应用程序?

Kubernetes 在VST中不释放(取消部署)应用程序?,kubernetes,azure-devops,continuous-deployment,azure-pipelines-release-pipeline,Kubernetes,Azure Devops,Continuous Deployment,Azure Pipelines Release Pipeline,我有一个项目,有N个git回购协议,每个协议代表一个静态网站(N个不同)。对于每个git repo,都存在一个构建定义,该定义在Azure容器注册表上创建一个nginx docker映像。这些N个构建定义链接到N个版本防御,它们将每个映像部署到k8s(也在Azure上)。总的来说,CI/CD工作得很好,在发布第一次成功之后,我看到了一个环境列表,每个环境代表一个现在在线的网站 但我不能用VSTS CI/CD来声明这些环境是如何被破坏的。在GitLab CI(我以前使用过)中,有一个概念,虽然这

我有一个项目,有N个git回购协议,每个协议代表一个静态网站(N个不同)。对于每个git repo,都存在一个构建定义,该定义在Azure容器注册表上创建一个nginx docker映像。这些N个构建定义链接到N个版本防御,它们将每个映像部署到k8s(也在Azure上)。总的来说,CI/CD工作得很好,在发布第一次成功之后,我看到了一个环境列表,每个环境代表一个现在在线的网站

但我不能用VSTS CI/CD来声明这些环境是如何被破坏的。在GitLab CI(我以前使用过)中,有一个概念,虽然这只是
.GitLab CI.yaml
中的一个阶段,但运行它确实会从部署的环境列表中删除一个环境

删除自动部署功能分支(又称审查应用程序)时,停止环境非常有用。在我的例子中,当一个已经共享的静态网站需要删除时,我希望这样做

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

  • 创建N个新的发布定义管道,为相应的静态网站调用
    kubecetl delete…
    。这一点很清楚,因为一个管道中名为
    k8s prod(website-42)
    的环境与另一个管道中的环境不同(否则,我可以看到
    web→ 云
    web×上次调用云

  • 在同一版本中定义名为
    production(delete)
    的新环境,并手动触发它

    在本例中,“deploy”与“undeploy”有点接近,但很难找出最后一个是什么(在上面的示例中,您可以猜到在我删除k8s资源后重新释放了它们——您需要查看卡片上的时间,这是一个非常糟糕的指示)

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

    VSTS在发布管理中没有“停止环境”(自动删除环境中已部署的内容)功能。但你也可以在这方面取得同样的成就

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


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

    我需要在
    .vsts ci.yml
    中写些什么来引入释放和取消释放环境的概念?YAML文档似乎只提到环境变量,这是一个完全不同的概念。如果你能分享一个例子,比如说,简单地点击一些web钩子进行部署和取消部署,那就太好了。理想情况下,已部署的环境应该显示在某些UI中,并具有类似于GitLab的URL属性(这样我们就可以单击并检查已部署的内容)。@AlexanderKachkaev YAML创建任务的简单方法是引用原始构建。例如,您可以创建一个构建,其中的任务是取消释放环境。然后选择任务并单击查看YAML,然后您将获得任务()的YAML。或者您可以单击流程并查看YAML,然后您将获得构建的所有配置的YAML,然后您可以复制步骤()的部分。@AlexanderKachkaev您现在使用YAML构建成功了吗?我使用
    .vsts ci.yml
    配置了一个测试管道,但我仍然不知道如何从语义上声明环境(即已部署应用程序的实例)。我担心,无论其YAML或UI是精心设计的管道,都没有平台级的“不释放”概念。@AlexanderKachkaev对于未释放的已部署应用程序,YAML文件中的脚本与您在生产中执行相关任务的工作方式相同(删除)在环境中,您应该做的唯一一件事是将任务转换为YAML脚本。