如何解决Azure Pipelines:在Azure-Pipelines.yml中未能成功部署到Kubernetes群集后回滚到特定版本版本
我正在使用Azure DevOps(管道->管道)创建CD管道以发布到生产环境。我了解使用管道发行版(管道->发行版)可以选择并重新部署以前的发行版。我想知道是否可以在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
请参阅this Blog:
默认情况下,Kubernetes存储最后10个副本集并让您回滚到其中任何一个。
因此,您可以将参数(--to-revision = x)添加到参数中以指定版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。