AzureDevops中有一个发布管道,可以将微服务部署到AKS,并在部署微服务后发送日志。 我们正在使用以下命令来部署带有模板kubectl的部署,并将命令作为“ -f /home/admin/builds/$(build.buildnumber)/Myservice_Deployment.yml --record”
在这里,我们注意到任务不是在等待现有吊舱终止并建立新吊舱,而是继续并只是完成工作。
我们的预期情况
1)使用kubectl apply -f /home/admin/builds/$(build.buildnumber)/Myservice_Deployment.yml --record
部署微服务3)一旦新pod处于运行状态,就通过kubectl log命令收集pod的日志并发送给团队
4)如果吊舱未处于运行状态,请回滚到以前的稳定状态。
我尝试使用不同的shell脚本在azuredevops中实现此目标,但没有成功
例如:
ATTEMPTS=0
ROLLOUT_STATUS_CMD="kubectl --kubeconfig /home/admin/kubernetes/Dev-kubeconfig rollout status deployment/My-service"
until $ROLLOUT_STATUS_CMD || [ $ATTEMPTS -eq 60 ]; do
$ROLLOUT_STATUS_CMD
ATTEMPTS=$((attempts + 1))
sleep 10
done
还需要使用kubectl log命令获取微服务的日志,并且文件的格式应为Date,并且需要通过邮件共享。