Kubernetes 在VST中不释放(取消部署)应用程序?
我有一个项目,有N个git回购协议,每个协议代表一个静态网站(N个不同)。对于每个git repo,都存在一个构建定义,该定义在Azure容器注册表上创建一个nginx docker映像。这些N个构建定义链接到N个版本防御,它们将每个映像部署到k8s(也在Azure上)。总的来说,CI/CD工作得很好,在发布第一次成功之后,我看到了一个环境列表,每个环境代表一个现在在线的网站 但我不能用VSTS CI/CD来声明这些环境是如何被破坏的。在GitLab CI(我以前使用过)中,有一个概念,虽然这只是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(我以前使用过)中,有一个概念,虽然这
.GitLab CI.yaml
中的一个阶段,但运行它确实会从部署的环境列表中删除一个环境
删除自动部署功能分支(又称审查应用程序)时,停止环境非常有用。在我的例子中,当一个已经共享的静态网站需要删除时,我希望这样做
VSTS似乎没有一个不发布已经发布的东西的概念,我想知道最好的解决方法是什么。到目前为止,我尝试了以下两种选择:
kubecetl delete…
。这一点很清楚,因为一个管道中名为k8s prod(website-42)
的环境与另一个管道中的环境不同(否则,我可以看到web→ 云
或web×上次调用云
)
production(delete)
的新环境,并手动触发它
在本例中,“deploy”与“undeploy”有点接近,但很难找出最后一个是什么(在上面的示例中,您可以猜到在我删除k8s资源后重新释放了它们——您需要查看卡片上的时间,这是一个非常糟糕的指示)对于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脚本。