如何停止服务结构应用程序升级?
How do I stop service fabric application upgrade?
如何停止失败且永不超时的 Azure Service Fabric 组合应用程序升级?
以下未设置超时的升级详情。我知道应用程序有什么问题(未指定注册表 username/password)但我无法取消当前升级。
UPGRADE DETAILS
Name fabric:/planet
Type Name Compose_5
Target Application Type Version v7
Upgrade Domains
Name State
UD0 InProgress
UD1 Pending
UD2 Pending
Upgrade State RollingForwardInProgress
Next Upgrade Domain UD1
Rolling Upgrade Mode UnmonitoredAuto
Upgrade Description
Name fabric:/planet
Target Application Type Version v7
Upgrade Kind Rolling
Rolling Upgrade Mode UnmonitoredAuto
Upgrade Replica Set Check Timeout In Seconds 4294967295
Force Restart false
Monitoring Policy
Failure Action Manual
Health Check Wait Duration 0.00:00:00.0
Health Check Stable Duration 0.00:02:00.0
Health Check Retry Timeout 0.00:10:00.0
Upgrade Timeout Infinity
Upgrade Domain Timeout Infinity
Upgrade Duration 0.00:21:01.241.0700000000652
Upgrade Domain Duration 0.00:21:01.241.0700000000652
Current Upgrade Domain Progress
Domain Name UD0
Node Upgrade Progress List
Node Name Upgrade Phase Pending Safety Checks
CONTAINERHOST1 Upgrading (empty)
Start Timestamp Utc Fri, 03 Aug 2018 02:20:34 GMT
Failure Timestamp Utc N/A
Failure Reason None
因为您已将故障模式设置为手动,所以集群将卡住等待您的操作。
您可以尝试 Start-ServiceFabricApplicationRollback 或 Resume-ServiceFabricApplicationUpgrade 继续。
升级 compose 的推荐方法是使用参数 -Monitored -FailureAction Rollback
Start-ServiceFabricComposeDeploymentUpgrade -DeploymentName mydeployment -Compose docker-compose.yml -Monitored -FailureAction Rollback
-Monitored -FailureAction Rollback
除非预期进行此手动干预,否则如果升级参数配置正确,Service Fabric 应自行处理。
修复这些设置可能会解决您的问题:
Rolling Upgrade Mode
设置为 UnmonitoredAuto,它会自动执行升级和故障检查,但不执行 HealthCheck。考虑使用 Monitored
Upgrade Domain Timeout
和 Upgrade Timeout
设置为 Infinity ,
他们应该设置超时,否则它将永远等待。
Failure Action
设置为 manual,暂停升级以允许您在进行任何操作之前调查部署进一步的行动。考虑改用 Rollback。
您可以通过在 Service Fabric Powershell 任务中调用 Update-ServiceFabricApplicationUpgrade 命令来更改升级域超时和 运行 升级的升级超时。
Update-ServiceFabricApplicationUpgrade -ApplicationName fabric:/MyApp -UpgradeTimeoutSec 900 -UpgradeDomainTimeoutSec 700
如何停止失败且永不超时的 Azure Service Fabric 组合应用程序升级?
以下未设置超时的升级详情。我知道应用程序有什么问题(未指定注册表 username/password)但我无法取消当前升级。
UPGRADE DETAILS
Name fabric:/planet
Type Name Compose_5
Target Application Type Version v7
Upgrade Domains
Name State
UD0 InProgress
UD1 Pending
UD2 Pending
Upgrade State RollingForwardInProgress
Next Upgrade Domain UD1
Rolling Upgrade Mode UnmonitoredAuto
Upgrade Description
Name fabric:/planet
Target Application Type Version v7
Upgrade Kind Rolling
Rolling Upgrade Mode UnmonitoredAuto
Upgrade Replica Set Check Timeout In Seconds 4294967295
Force Restart false
Monitoring Policy
Failure Action Manual
Health Check Wait Duration 0.00:00:00.0
Health Check Stable Duration 0.00:02:00.0
Health Check Retry Timeout 0.00:10:00.0
Upgrade Timeout Infinity
Upgrade Domain Timeout Infinity
Upgrade Duration 0.00:21:01.241.0700000000652
Upgrade Domain Duration 0.00:21:01.241.0700000000652
Current Upgrade Domain Progress
Domain Name UD0
Node Upgrade Progress List
Node Name Upgrade Phase Pending Safety Checks
CONTAINERHOST1 Upgrading (empty)
Start Timestamp Utc Fri, 03 Aug 2018 02:20:34 GMT
Failure Timestamp Utc N/A
Failure Reason None
因为您已将故障模式设置为手动,所以集群将卡住等待您的操作。
您可以尝试 Start-ServiceFabricApplicationRollback 或 Resume-ServiceFabricApplicationUpgrade 继续。
升级 compose 的推荐方法是使用参数 -Monitored -FailureAction Rollback
Start-ServiceFabricComposeDeploymentUpgrade -DeploymentName mydeployment -Compose docker-compose.yml -Monitored -FailureAction Rollback
-Monitored -FailureAction Rollback
除非预期进行此手动干预,否则如果升级参数配置正确,Service Fabric 应自行处理。
修复这些设置可能会解决您的问题:
Rolling Upgrade Mode
设置为 UnmonitoredAuto,它会自动执行升级和故障检查,但不执行 HealthCheck。考虑使用 Monitored
Upgrade Domain Timeout
和 Upgrade Timeout
设置为 Infinity ,
他们应该设置超时,否则它将永远等待。
Failure Action
设置为 manual,暂停升级以允许您在进行任何操作之前调查部署进一步的行动。考虑改用 Rollback。
您可以通过在 Service Fabric Powershell 任务中调用 Update-ServiceFabricApplicationUpgrade 命令来更改升级域超时和 运行 升级的升级超时。
Update-ServiceFabricApplicationUpgrade -ApplicationName fabric:/MyApp -UpgradeTimeoutSec 900 -UpgradeDomainTimeoutSec 700