For the complete documentation index, see llms.txt. This page is also available as Markdown.

Alta disponibilità

PowerShell Universal può essere configurato per l'alta disponibilità ("HA") utilizzando una combinazione di persistenza su SQL Server e un bilanciatore di carico per garantire che sia gli strumenti front-end, come le dashboard, siano accessibili, sia gli strumenti back-end, come i job, continuino a funzionare.

Configurazione della persistenza

Le consigliamo di sfruttare la persistenza SQL (o PostgreSQL) per garantire che tutti i nodi del cluster condividano gli stessi dati per quanto riguarda le code di job, i token app e le identità all'interno del sistema. Ogni nodo dovrebbe essere configurato con la stessa stringa di connessione a SQL Server.

Man mano che i job vengono eseguiti, gli utenti effettuano l'accesso e vengono creati i token app, SQL Server verrà utilizzato per memorizzare queste informazioni, che saranno condivise tra i nodi.

Configurazione del controllo del codice sorgente

Le consigliamo di utilizzare la sincronizzazione git per archiviare e controllare le versioni degli script di configurazione PowerShell utilizzati per gestire i nodi di PowerShell Universal. Può essere preferibile la sincronizzazione git unidirezionale, poiché i nodi saranno in sola lettura ed estrarranno le configurazioni dopo che sono state unite nel suo ramo di produzione. Ogni nodo estrae i file di configurazione a un intervallo configurabile (per impostazione predefinita 1 minuto). È preferibile memorizzare le impostazioni di configurazione git nel database, in quanto richiede meno configurazione per nodo.

Bilanciamento del carico

PowerShell Universal supporta l'uso di bilanciatori di carico come F5 e nginx. Ci sono alcuni requisiti che devono essere soddisfatti quando si utilizzano i bilanciatori di carico.

  • Le sessioni persistenti (sticky) sono richieste dalla console di amministrazione e dalle app

  • Il supporto dei web socket è richiesto dalla console di amministrazione e dalle app

Per facilitare il bilanciamento del carico, può utilizzare l'endpoint /api/v1/status per i suoi nodi. L'endpoint restituirà codici di stato basati sullo stato corrente del nodo. 200 significa che il nodo è online e pronto a ricevere richieste. I server in esecuzione in modalità di manutenzione restituiranno 503. I server che non sono riusciti ad avviarsi a causa di un errore di configurazione restituiranno 500. Anche i server con app che non sono riuscite ad avviarsi restituiranno 500.

API di stato

/api/v1/status

Può impostare i suoi nodi in modalità di manutenzione facendo clic su Piattaforma \ Computer e selezionando l'opzione modalità di manutenzione. Una volta abilitata la modalità di manutenzione, l'endpoint /api/v1/status inizierà a restituire 503. Questo dovrebbe essere configurato per disabilitare l'instradamento del traffico verso il nodo mentre viene eseguita la manutenzione. Questo endpoint restituirà anche 5xx se quanto segue è vero:

  • Il computer è in uno stato di errore di avvio

  • Il computer è in modalità di manutenzione

  • Un'app critica è in stato di avvio non riuscito

  • Gli endpoint API sono configurati ma non funzionano correttamente

/api/v2/status

L'API di stato v2 restituirà un 503 per motivi aggiuntivi. Tra questi:

  • Un computer qualsiasi del cluster è offline ma non in modalità di manutenzione

  • La sincronizzazione git non riesce a estrarre le modifiche su un nodo qualsiasi

  • Gli endpoint API sono configurati ma non funzionano correttamente

Limitazioni

Attualmente esistono alcune limitazioni per i cluster PowerShell Universal ad alta disponibilità.

Caching multi-nodo

La memorizzazione nella cache eseguita tramite $Cache è limitata a un singolo processo su un singolo nodo. Ad esempio, ogni app in esecuzione al di fuori dell'ambiente integrato avrà la propria cache.

Set-PSUCache non condividerà i dati tra i nodi se -Persist non è specificato. Per garantire che tutti i nodi abbiano gli stessi dati, includa questo switch.

Broadcast delle app multi-nodo

I messaggi di broadcast delle app multi-nodo non sono attualmente supportati. L'utilizzo di cmdlet come Show-UDToast -Broadcast farà sì che un modale toast venga mostrato a tutti gli utenti connessi del nodo corrente, ma non verrà trasmesso alle app su tutti i nodi.

Ultimo aggiornamento

È stato utile?