Service Fabric 群集卡在状态 = 正在部署
Posted
技术标签:
【中文标题】Service Fabric 群集卡在状态 = 正在部署【英文标题】:Service Fabric cluster stuck in status=Deploying 【发布时间】:2017-07-25 03:42:26 【问题描述】:我正在部署一个 Service Fabric 集群,但在 vmss 节点启动并报告 Service Fabric 扩展状态成功后,集群仍然只是等待状态 = deploying。
当我远程桌面读取我看到的事件日志时:
ERROR: Microsoft.Azure.ServiceFabric.Extension.Core.AgentException: Cluster configuration is not available yet
at Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent.<RunOnce>d__f.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at Microsoft.Azure.ServiceFabric.Extension.Core.NodeBootstrapAgent.<RunAsync>d__0.MoveNext()
如果我可以收集任何其他有助于调试的信息,请告诉我。
【问题讨论】:
我对 azure 门户创建的默认模板所做的唯一更改是删除 vhd 磁盘并改用托管磁盘 稍后在事件日志中的几次尝试我还发现:Fabric 安装成功。然后调用命令时发生异常:System.NullReferenceException:对象引用未设置为对象的实例。在 Microsoft.Azure.ServiceFabric.Extension.Core.Utility.RunPowershellCommand(String commandText, Dictionary`2 参数) 然后开始显示大量正在运行的 Fabric 主机服务 【参考方案1】:尝试添加“NicPrefixOverride”,如提到的here,“模板”段落。
当您有多个网络适配器时,它将指示要使用的网络。 (Windows Containers 功能增加了一个网络适配器)
【讨论】:
【参考方案2】:看起来我的问题是在部署到 windows server 2016 时。
回到 2012 年,一切都重新上线。
【讨论】:
感谢分享!【参考方案3】:我看到了与封闭网络相关的几个问题。(我们的环境限制了对互联网的访问)我不得不查看事件日志 1 和 2,并且#3 我不得不使用 NetMon 客户端。
-
节点尝试访问 download.microsoft.com:80 作为“软件更新过程”的一部分。 Fabric 已卸载,但从未重新安装。至此,只好开启出站"23.40.68.76,23.195.64.241,23.66.100.156":80。将寻找某种方法来重定向这些调用,因为我们无法在生产中执行此操作。
由于是自签名证书,需要包含在集群模板中(门户将不接受 Federation:X509CertChainFlags):
模板片段:
...
"fabricSettings": [
"name": "Security",
"parameters": [
"name": "ClusterProtectionLevel",
"value": "[parameters('clusterProtectionLevel')]"
,
//https://github.com/Azure/Service-Fabric-Troubleshooting-Guides/blob/master/Security/SecurityApi_CertGetCertificateChain%20-%20CTL%20accessibility%20-%20CRL%20slow%20warnings.md
"name": "CrlCheckingFlag",
"value": "4"
]
,
//https://github.com/Azure/Service-Fabric-Troubleshooting-Guides/blob/master/Security/SecurityApi_CertGetCertificateChain%20-%20CTL%20accessibility%20-%20CRL%20slow%20warnings.md
"name": "Federation",
"parameters": [
"name": "X509CertChainFlags",
"value": "4"
]
],
事件虽然所有资源都在同一个子网上,但由于 Azure DNS 服务器位于 168.63.129.16,我不得不从任何地方打开入站端口 19000、19080。这实际上是Azure Platform,应该在我的 NSG 中。如果这是在服务标签中,那就太好了。
我永远无法让资源管理器的证书身份验证正常工作,因此我不得不使用 AD 身份验证。 https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-creation-setup-aad
模板片段:
...
"azureActiveDirectory":
"tenantId":"<guid>",
"clusterApplication":"<guid>",
"clientApplication":"<guid>"
,
【讨论】:
【参考方案4】:发生这种情况的另一个原因是,如果您预配了没有临时 d:\ 驱动器的 Azure VM。 Service Fabric 使用此驱动器写入日志文件,没有它就无法启动。
因此,请确保选择包含本地临时存储的 VM 大小。
【讨论】:
以上是关于Service Fabric 群集卡在状态 = 正在部署的主要内容,如果未能解决你的问题,请参考以下文章
NServiceBus 终结点未在 Azure Service Fabric 本地群集上启动