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 本地群集上启动

Azure Service Fabric:无法运行本地 Service Fabric 群集

Azure Service Fabric 群集端点不可访问

创建 Service Fabric 群集后启用反向代理

Service Fabric 群集升级失败

Service Fabric 本地群集在群集启动时创建 8 GB 文件