我正在使用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(添加到参数中以指定修订。