Azure管道:在Azure-Pipelines.yml中部署到Kubernetes集群失败后,回滚到某个版本(发行版)



我正在使用Azure DevOps(管道->管道(创建我的CD管道以发布到生产环境。我知道使用Pipelines release(Pipelines->release(,我可以选择并重新部署以前的版本。我想知道在我的Azure管道中使用kubectl任务rollout undo命令是否可以做到这一点,以及我该如何做。如果你以前遇到过这种情况,如果你能分享你的知识,我将不胜感激。

以下是我的Azure管道中的kubectl任务代码:

- task: Kubernetes@1
inputs:
connectionType: 'Azure Resource Manager'
azureSubscriptionEndpoint: 'Azure subscription 1(xxxxxxx-xxx-xxxxx-xxxxxxx)'
azureResourceGroup: 'rg'
kubernetesCluster: 'kc'
command: 'apply'
useConfigurationFile: true
configuration: '$(Pipeline.Workspace)/manifests/'
secretType: 'dockerRegistry'
containerRegistryType: 'Azure Container Registry'
- task: Kubernetes@1
name: rollout_status
inputs:
connectionType: 'Azure Resource Manager'
azureSubscriptionEndpoint: 'Azure subscription 1(xxxxxxx-xxx-xxxxx-xxxxxxx)'
azureResourceGroup: 'rg'
kubernetesCluster: 'kc'
command: 'rollout'
arguments: 'status deployment/deployment-name'
secretType: 'dockerRegistry'
containerRegistryType: 'Azure Container Registry'

- task: Kubernetes@1
name: rollout_undo
condition: failed()
inputs:
connectionType: 'Azure Resource Manager'
azureSubscriptionEndpoint: 'Azure subscription 1(xxxxxxx-xxx-xxxxx-xxxxxxx)'
azureResourceGroup: 'rg'
kubernetesCluster: 'kc'
command: 'rollout'
arguments: 'undo deployment/deployment-name'
secretType: 'dockerRegistry'
containerRegistryType: 'Azure Container Registry'

从Yaml示例中,如果rollout_status步骤失败,它应该能够回滚。

要回滚到某个版本,您可以尝试使用以下命令:

kubectl rollout undo deployment/deployment-name --to-revision=2

请参阅此博客:

默认情况下,Kubernetes存储最后10个ReplicaSet,并允许您回滚到其中任何一个。

因此,您可以将参数(--to revision=x(添加到参数中以指定修订。

最新更新