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 客户端。
- 节点尝试将 download.microsoft.com:80 作为 "software update process" 的一部分。 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>"
},
可能发生这种情况的另一个原因是,如果您预配了一个没有临时 d:\ 驱动器的 Azure VM。 Service Fabric 使用此驱动器写入日志文件,没有它无法启动。
因此请确保 select 包含本地临时存储的 VM 大小。
我正在部署 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 客户端。
- 节点尝试将 download.microsoft.com:80 作为 "software update process" 的一部分。 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>"
},
可能发生这种情况的另一个原因是,如果您预配了一个没有临时 d:\ 驱动器的 Azure VM。 Service Fabric 使用此驱动器写入日志文件,没有它无法启动。
因此请确保 select 包含本地临时存储的 VM 大小。