Service Fabric 集群卡在 status=Deploying

Service Fabric cluster stuck in status=Deploying

我正在部署 Service Fabric 集群,但在 vmss 节点启动并报告 Service Fabric 扩展状态成功后,集群仍在等待 status = 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() 

如果我可以收集任何其他有助于调试的信息,请告诉我。

看起来我的问题是部署到 windows 服务器 2016 时。

时间拨回到2012年,一切都回到了网上。

尝试添加 "NicPrefixOverride",如提到的 here,第 'Template' 段。

当您有多个网络适配器时,它将指示要使用的网络。 (Windows 容器功能添加了一个网络适配器)

我看到了几个与封闭网络相关的问题。(我们的环境限制了对互联网的访问)我不得不看看1 和 2 的事件日志,我不得不为 # 3 使用 NetMon 客户端。

  1. 节点尝试将 download.microsoft.com:80 作为 "software update process" 的一部分。 fabric 已卸载,但从未重新安装。至此,只好开通出境"23.40.68.76,23.195.64.241,23.66.100.156":80。将寻找某种方法来重定向这些调用,因为我们无法在生产中这样做。
  2. 由于自签名证书,需要包含在集群模板中(门户网站将不接受 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"
      }
    ]
  }
],
  1. 尽管所有资源都在同一个子网上,但由于 Azure DNS 服务器位于 168.63.129.16,我不得不打开来自任何资源的入站端口 19000、19080。这实际上是 Azure Platform,应该在我的 NSG 中。如果这在服务标签中就好了。

  2. 我永远无法让资源管理器的证书身份验证工作,所以我不得不使用 AD 身份验证。 https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cluster-creation-setup-aad

模板片段:

...
"azureActiveDirectory": {
  "tenantId":"<guid>",
  "clusterApplication":"<guid>",
  "clientApplication":"<guid>"
},

可能发生这种情况的另一个原因是,如果您预配了一个没有临时 d:\ 驱动器的 Azure VM。 Service Fabric 使用此驱动器写入日志文件,没有它无法启动。

因此请确保 select 包含本地临时存储的 VM 大小。