1

Um eine Azure SF-Testumgebung zu erstellen, habe ich drei azure VMs in einem Entwicklungs-Testlabor erstellt. Diese sind mit X509 zu sichern.Service Fabric MultiNode X509-Cluster - Zeitüberschreitung beim Warten auf den Abschluss des Installationsdienstes

habe ich die Informationen Here & Here

Die Maschinen sind:

  • Windows-2016 Data Center
  • auf demselben virtuellen Netzwerk
  • Alle Firewalls deaktiviert sind (kann jede Maschine ping aus die andere)
  • Alle mit dem gleichen Administrator-Konto

Ich habe selbstsignierte Zertifikate mit der in der Dokumentation bereitgestellten Datei certsetup.ps1 erstellt. Ein Zertifikat für Server & Cluster kombiniert wie vorgeschlagen.

Wenn ich die TestConfiguration.ps1 ausführen, bekomme ich die folgende Ausgabe.

Offensichtlich ist das IsCabValid-Feld leer, aber das Feld "Passed" schlägt immer noch eine Installation vor. Ich fahre mit dem nächsten Powershell-Befehl fort, um mit der Installation zu beginnen.

. \ CreateServiceFabricCluster.ps1 -ClusterConfigFilePath . \ ClusterConfig.X509.MultiMachine.json

den obigen Befehl folgend, beginnt der Prozess und das Konsolenfenster wird mit dem folgenden Text bevölkert was darauf hindeutet, Kommunikation zwischen den Knoten ist in Ordnung ..

Creating Service Fabric Cluster... 
If it's taking too long, please check in Task Manager details and see if Fabric.exe for each node is running. If not, please look at: 1. traces in DeploymentTraces directory and 2. traces in FabricLogRoot configured in ClusterConfig.json. 
Trace folder already exists. Traces will be written to existing trace folder: C:\StandaloneCluster\DeploymentTraces 
Running Best Practices Analyzer... 
Best Practices Analyzer completed successfully. 
Creating Service Fabric Cluster... 
Processing and validating cluster config. 
Configuring nodes. 
Default installation directory chosen based on system drive of machine '10.0.0.4'. 
Copying installer to all machines. 
Configuring machine '10.0.0.4'. 
Configuring machine '10.0.0.5'. 
Configuring machine '10.0.0.6'. 
Machine 10.0.0.6 configured. 
Machine 10.0.0.5 configured. 
Machine 10.0.0.4 configured. 
Running Fabric service installation. 
Successfully started FabricInstallerSvc on machine 10.0.0.4 
Successfully started FabricInstallerSvc on machine 10.0.0.6 
Successfully started FabricInstallerSvc on machine 10.0.0.5 

Eine lange Pause von einigen Minuten tritt nach dem die Zeitüberschreitungsfehler angezeigt wird, aber ohne wirklichen Hinweis darauf, warum. Ich habe die Fensterprotokolle der Knoten durchsucht, konnte aber keine weiteren Informationen finden. Der Fehler in der PS-Konsole angezeigt wird, wie folgt:

Timed out waiting for Installer Service to complete for machine 10.0.0.4. Investigation order: FabricInstallerService -> FabricSetup -> FabricDeployer -> Fabric 
Timed out waiting for Installer Service to complete for machine 10.0.0.6. Investigation order: FabricInstallerService -> FabricSetup -> FabricDeployer -> Fabric 
Timed out waiting for Installer Service to complete for machine 10.0.0.5. Investigation order: FabricInstallerService -> FabricSetup -> FabricDeployer -> Fabric 
CreateCluster Error: System.AggregateException: One or more errors occurred. ---> System.ServiceProcess.TimeoutException: Timed out waiting for Installer Service to complete for machine 10.0.0.5. Investigation order: FabricInstallerService -> FabricSetup -> FabricDeploye 
r -> Fabric 
    at Microsoft.ServiceFabric.DeploymentManager.DeploymentManagerInternal.StartAndValidateInstallerServiceCompletion(String machineName, ServiceController installerSvc) 
    at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1() 
    at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) 
    at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object) 
    --- End of inner exception stack trace --- 
    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) 
    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) 
    at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally) 
    at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable`1 source, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Action`3 bodyWithStateAndIndex, Func`4 bodyWithStateAndLocal, Func`5 bodyWithEverything, Func`1 localInit, Ac 
tion`1 localFinally) 
    at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable`1 source, Action`1 body) 
    at Microsoft.ServiceFabric.DeploymentManager.DeploymentManagerInternal.RunFabricServices(List`1 machines, FabricPackageType fabricPackageType) 
    at Microsoft.ServiceFabric.DeploymentManager.DeploymentManagerInternal.<CreateClusterAsyncInternal>d__7.MoveNext() 
---> (Inner Exception #0) System.ServiceProcess.TimeoutException: Timed out waiting for Installer Service to complete for machine 10.0.0.5. Investigation order: FabricInstallerService -> FabricSetup -> FabricDeployer -> Fabric 
    at Microsoft.ServiceFabric.DeploymentManager.DeploymentManagerInternal.StartAndValidateInstallerServiceCompletion(String machineName, ServiceController installerSvc) 
    at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1() 
    at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) 
    at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object)<--- 

---> (Inner Exception #1) System.ServiceProcess.TimeoutException: Timed out waiting for Installer Service to complete for machine 10.0.0.6. Investigation order: FabricInstallerService -> FabricSetup -> FabricDeployer -> Fabric 
    at Microsoft.ServiceFabric.DeploymentManager.DeploymentManagerInternal.StartAndValidateInstallerServiceCompletion(String machineName, ServiceController installerSvc) 
    at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1() 
    at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) 
    at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object)<--- 

---> (Inner Exception #2) System.ServiceProcess.TimeoutException: Timed out waiting for Installer Service to complete for machine 10.0.0.4. Investigation order: FabricInstallerService -> FabricSetup -> FabricDeployer -> Fabric 
    at Microsoft.ServiceFabric.DeploymentManager.DeploymentManagerInternal.StartAndValidateInstallerServiceCompletion(String machineName, ServiceController installerSvc) 
    at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.<ForWorker>b__1() 
    at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) 
    at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object)<--- 

Trace folder already exists. Traces will be written to existing trace folder: C:\StandaloneCluster\DeploymentTraces 
Cleaning up faulted installation. 
Removing configuration from machine 10.0.0.5 
Removing configuration from machine 10.0.0.4 
Removing configuration from machine 10.0.0.6 

Gibt es eine Azure SF dort Aficionado aus, die etwas Licht in die Angelegenheit vergießen oder Anregungen bieten, wo ich falsch gehe?

+0

haben Sie versucht, das SDK wie hier beschrieben zu deinstallieren: https://stackoverflow.com/questions/38106961/create-on-premise-service-fabric-cluster-fails-with-exception?rq=1 – Oliver

+0

@Oliver The SDK war zum Zeitpunkt des Installationsversuchs nicht auf dem Computer vorhanden, andernfalls würde TestConfiguration.ps1 fehlschlagen. – Hicki

+0

Welche Größe haben Ihre VMs? Sie benötigen möglicherweise schnellere oder ändern das Zeitlimit für das Installationsprogramm (ich glaube, es gibt einen Schalter, um das zu tun) – Mardoxx

Antwort

0

Dies ist ein generisches Fehlermuster, das beim Auftreten von FabricHost nicht erkannt wird, was aus verschiedenen Gründen auftreten kann.

Da Sie rohe Azure-VMs anstelle der SF VMSS-Bereitstellung verwenden, müssen Sie auch sicherstellen, dass die Upstream-Ports, die unter der Clusterkonfiguration NodeType festgelegt sind, auf jedem Computer geöffnet sind. Um dies zu testen, versuchen Sie, zuerst einen ungesicherten Cluster über diese VMs zu verteilen.

Wenn das oben beschriebene funktioniert, führen Sie die Implementierung mit dem Flag "--NoCleanupOnFailure" aus und überprüfen Sie eine der fehlerhaften Maschinen, die unter "Anwendungs- und Dienstprotokolle> Microsoft-Service Fabric> Admin" protokolliert werden.

Fehler-/Warnungsprotokolle sollten angeben, ob beim Lesen des Zertifikats ein Problem auftritt oder ob ein anderes Blockierungsproblem vorliegt.Stellen Sie sicher, dass das Zertifikat für den Netzwerkdienst auf jedem Computer ACL ist, da dies eine der aufgeführten Anforderungen ist, die in doc geschrieben werden.

Einer der anderen häufigen Fehler tritt auf, wenn der Fingerabdruck des Cert ungültige Zeichen enthält. Es gibt einen Fehler im Windows-Tool zur Verwaltung von Zertifikaten, der dazu führt, dass der angezeigte Fingerabdruck solche versteckten ungültigen Zeichen enthält, die, wenn sie direkt in die Konfiguration kopiert werden, zu Bereitstellungsproblemen führen. Bitte bestätigen Sie mit einem Hex-Editor (z. B. HxD) der Konfig Fingerabdruck enthält nur gültige Zeichen.

Wenn dies nicht genügend Informationen zur Verfügung stellt, um das Problem zu lösen, führen Sie das Protokoll-Collector-Tool aus Tools \ Microsoft.Azure.ServiceFabric.WindowsServer.SupportPackage.zip in der Standalone package aus, und laden Sie die gesammelten Protokolle hoch zu Ihrer Wahl des Speichers, um mit unserem Team zu teilen. Sie können den Link an [email protected] senden und wir können Ihnen helfen, dies zu überprüfen.

0

Für cluster/server/reverseProxy certs, 1) muss die Berechtigung zum Laden privater Schlüssel auf "Netzwerkdienst" ACL werden und 2) ihre CA-Zertifikate zu TrustedRoot hinzugefügt werden.

Verwandte Themen