Service Fabric 群集部署失败

Posted

技术标签:

【中文标题】Service Fabric 群集部署失败【英文标题】:Service Fabric Cluster Deploy Fails 【发布时间】:2017-08-06 01:02:32 【问题描述】:

我在将群集部署到 Azure 时遇到问题。我正在使用通过 Visual Studio (2017) 提供的模板,如 here 所述,使用服务器/集群证书保护它 如here所述。

我正在通过 Visual Studio 进行部署,并且模板似乎部署成功,没有任何错误。但是,在门户中查看集群时,它会卡在“正在部署”状态,没有节点出现。 RDP:进入单个节点并查看事件查看器(Windows 日志/系统)显示 Azure Service Fabric 节点引导代理服务陷入循环,似乎无限期地启动/停止。

查看 Windows 日志/应用程序,我可以看到以下 (4) 错误/警告在每次重新启动尝试时重复:

启动服务失败,错误:System.ArgumentNullException:值不能为空。 参数名称:路径 在 System.IO.Path.GetFullPathInternal(字符串路径) 在 Microsoft.Azure.ServiceFabric.Extension.Core.SetupHelper.ConfigNode(字节 [] clusterManifest,字符串 nodeTypeRef,字符串 machineName,字符串 ipAddress,字符串 faultDomain,字符串 upgradeDomain,字符串 dataRoot) 在 Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent.TryConfigNode(RuntimeCluster clusterConfig,NodeDescription 节点描述) 在 Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent.StartFabricHostService(Boolean isBootstrapping)

错误:System.ArgumentNullException:值不能为空。 参数名称:路径 在 System.IO.Path.GetFullPathInternal(字符串路径) 在 Microsoft.Azure.ServiceFabric.Extension.Core.SetupHelper.ConfigNode(字节 [] clusterManifest,字符串 nodeTypeRef,字符串 machineName,字符串 ipAddress,字符串 faultDomain,字符串 upgradeDomain,字符串 dataRoot) 在 Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent.TryConfigNode(RuntimeCluster clusterConfig,NodeDescription 节点描述) 在 Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent.StartFabricHostService(布尔 isBootstrapping) 在 Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent.d__d.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent.d__0.MoveNext()

应用程序:ServiceFabricNodeBootstrapAgent.exe 框架版本:v4.0.30319 说明:进程因未处理的异常而终止。 异常信息:System.ArgumentNullException 在 System.IO.Path.GetFullPathInternal(System.String) 在 Microsoft.Azure.ServiceFabric.Extension.Core.SetupHelper.ConfigNode(字节 [],System.String,System.String,System.String,System.String,System.String,System.String) 在 Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent.TryConfigNode(Microsoft.Azure.ServiceFabric.Extension.Core.RuntimeCluster,Microsoft.Azure.ServiceFabric.Extension.Core.NodeDescription) 在 Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent.StartFabricHostService(布尔) 在 Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent+d__d.MoveNext() 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) 在 Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent+d__0.MoveNext() 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) 在 Microsoft.Azure.ServiceFabric.Extension.Service.Service+d__0.MoveNext() 在 System.Runtime.CompilerServices.AsyncMethodBuilderCore+c.b__6_1(System.Object) 在 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,布尔) 在 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,布尔) 在 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 在 System.Threading.ThreadPoolWorkQueue.Dispatch()

错误应用程序名称:ServiceFabricNodeBootstrapAgent.exe,版本:1.0.0.143,时间戳:0x58c87254 错误模块名称:KERNELBASE.dll,版本:6.3.9600.18340,时间戳:0x57366075 异常代码:0xe0434352 故障偏移:0x0000000000008a5c 错误进程ID:0x9b0 错误应用程序启动时间:0x01d29d73912bda98 错误的应用程序路径:C:\Packages\Plugins\Microsoft.Azure.ServiceFabric.ServiceFabricNode\1.0.0.34\Service\ServiceFabricNodeBootstrapAgent.exe 错误模块路径:C:\Windows\system32\KERNELBASE.dll 报告 ID:cf297669-0966-11e7-80c5-000d3a27d68c 故障包全名: 错误的包相关应用程序 ID:

重新启动节点没有帮​​助,我已验证证书已安装在 VM 上。我在门户中没有记录任何错误,只有集群上的“部署”消息。节点是 Windows Server R2。 有任何想法吗?显然,给 System.IO.Path.GetFullPathInternal 的路径是空的,但是什么会导致呢?

【问题讨论】:

【参考方案1】:

也许这是正确的答案:http://amolenk.com/2017/03/15/ServiceFabricNodeBootstrapAgent-breaking-change/

【讨论】:

是的,就是这样。 VS SF 资源组项目提供的默认模板中缺少 dataPath。谢谢!

以上是关于Service Fabric 群集部署失败的主要内容,如果未能解决你的问题,请参考以下文章

Service Fabric 群集卡在状态 = 正在部署

无法将 Service Fabric 应用程序部署到开发/本地群集

Service Fabric 群集升级失败

无法通过 VSTS 发布到安全的 Service Fabric 群集

Azure Devops 无法连接到 Service Fabric 群集

Azure Service Fabric 群集:无法为 RPC 访问机器 10.0.0.X