Per impostazione predefinita, Google Distributed Cloud richiede una connessione costante a Google Cloud per il normale funzionamento. Questo perché per impostazione predefinita i cluster che crei con Google Distributed Cloud sono cluster del control plane cloud. In altre parole, il piano di controllo Kubernetes che orchestra i carichi di lavoro in esecuzione su un cluster di questo tipo viene eseguito in Google Cloud.
Per migliorare l'affidabilità di Distributed Cloud, hai la possibilità di creare cluster Distributed Cloud che utilizzano un control plane locale di cui è stato eseguito il deployment sull'hardware Distributed Cloud. Quando la connessione a Google Cloud viene persa, questi cluster entrano in modalità di sopravvivenza e i tuoi workload continuano a essere eseguiti per un massimo di 7 giorni.
Solo i cluster Distributed Cloud di cui è stato eseguito il deployment con un control plane locale possono entrare in modalità di sopravvivenza quando la connessione a Google Cloud viene persa. I cluster di cui è stato eseguito il deployment con un piano di controllo cloud in esecuzione in Google Cloud non possono entrare in modalità di sopravvivenza. Non puoi riconfigurare un cluster esistente che utilizza un control plane cloud per utilizzare un control plane locale.
Quando crei un cluster con un piano di controllo locale, si applicano le seguenti regole:
- Devi creare cluster del control plane locale nel proprio progetto Google Cloud . I cluster del piano di controllo locale non possono coesistere nello stesso progetto Google Cloud con altri tipi di cluster, inclusi i cluster non Distributed Cloud. La combinazione di cluster Distributed Cloud del control plane locale con qualsiasi altro tipo di cluster nello stesso progetto Google Cloud può causare la perdita di dati.
- Se riassegni un nodo tra cluster Distributed Cloud, questo nodo viene cancellato e ripristinato alla configurazione predefinita.
- Per impostazione predefinita, i carichi di lavoro del control plane locale vengono eseguiti in modalità ad alta disponibilità con tre repliche che si estendono su tre nodi scelti automaticamente da Distributed Cloud. Ciò vale a meno che nel cluster non siano presenti meno di tre nodi o che tu non configuri specificamente il cluster per utilizzare un nodo per eseguire i carichi di lavoro del control plane locale. Hai anche la possibilità di specificare i tre nodi per la modalità di alta affidabilità utilizzando il flag
--control-plane-machine-filter. Non sono supportate altre combinazioni di nodi. - I nodi che eseguono i workload del control plane locale eseguono anche i workload dell'applicazione.
- Gli indirizzi IP degli endpoint del control plane locale sono accessibili sulla tua rete locale. Devi assicurarti che la configurazione di sicurezza della tua rete locale impedisca l'accesso esterno a questi indirizzi IP.
Quando è attiva la modalità di sopravvivenza, un cluster Distributed Cloud funziona nel seguente modo:
- Il controllo dei carichi di lavoro tramite Google Cloud CLI, l'interfaccia a riga di comando
kubectle l'API Edge Container è disattivato. - Gli aggiornamenti software, gli SLO e la riparazione dell'hardware di Distributed Cloud non sono disponibili.
- Log e metriche limitati vengono sincronizzati con Google Cloud dopo che la connessione a Google Cloud è stata ristabilita.
- Per impostazione predefinita, se un nodo viene riavviato mentre il cluster è disconnesso da Google Cloud, non può ricongiungersi al cluster finché la connessione a Google Cloud non viene ristabilita perché la chiave di autenticazione non può essere aggiornata. Hai la possibilità di specificare una finestra di riavvio offline durante la quale un nodo può rientrare in un cluster dopo il riavvio mentre il cluster è in esecuzione in modalità di sopravvivenza. Per ulteriori informazioni, vedi Creare un cluster.
Prerequisiti
Prima di poter creare un cluster Distributed Cloud con un piano di controllo locale, devi abilitare le API richieste nel progetto Google Cloud di destinazione. Per farlo, devi disporre di uno dei seguenti ruoli nel progetto Google Cloud :
- Proprietario (
roles/owner) - Editor (
roles/editor) - Service Usage Admin (
roles/serviceusage.serviceUsageAdmin)
Per saperne di più su questi ruoli, consulta la sezione Ruoli di base.
Per informazioni sulla concessione dei ruoli, consulta Concedi un singolo ruolo.
Per creare un cluster Distributed Cloud con un piano di controllo locale, abilita le seguenti API:
anthos.googleapis.comanthosaudit.googleapis.comanthosgke.googleapis.comcloudresourcemanager.googleapis.comconnectgateway.googleapis.comcontainer.googleapis.comedgecontainer.googleapis.comgkeconnect.googleapis.comgkehub.googleapis.comgkeonprem.googleapis.comiam.googleapis.comlogging.googleapis.commonitoring.googleapis.comopsconfigmonitoring.googleapis.comserviceusage.googleapis.comstackdriver.googleapis.comstorage.googleapis.comsts.googleapis.com
Per informazioni sull'abilitazione delle API, vedi Abilitazione dei servizi.
Esegui l'upgrade di Google Cloud SDK alla versione 450.0.0 o successive
Devi eseguire l'upgrade di Google Cloud SDK alla versione 450.0.0 o successive per creare cluster del piano di controllo locale che eseguono il software Distributed Cloud versione 1.5.0. In caso contrario, la creazione di questi cluster non andrà a buon fine.
Crea un cluster con un control plane locale
Per creare un cluster Distributed Cloud con un control plane locale, devi trasmettere i seguenti flag durante la creazione del cluster:
--control-plane-node-locationindica a Distributed Cloud di eseguire il deployment dei workload del control plane per questo cluster in locale. Il valore è il nome della zona Distributed Cloud di destinazione.--control-plane-node-count(facoltativo) specifica il numero di nodi su cui eseguire i carichi di lavoro del control plane locale. I valori validi sono3per l'alta disponibilità e1per il funzionamento standard. Se omesso, il valore predefinito è3.--control-plane-machine-filter(facoltativo) specifica un elenco in formato regex di nodi che eseguono i carichi di lavoro del control plane locale. Se omesso, Distributed Cloud seleziona automaticamente i nodi in modo casuale.--control-plane-shared-deployment-policyspecifica se i carichi di lavoro dell'applicazione possono essere eseguiti sui nodi che eseguono i carichi di lavoro del control plane locale. L'unico valore valido èALLOWED. Se omesso, la creazione del cluster non va a buon fine.--external-lb-ipv4-address-poolsspecifica un elenco delimitato da virgole di indirizzi IPv4, intervalli di indirizzi o subnet per il traffico in entrata per i servizi eseguiti dietro il bilanciatore del carico Distributed Cloud.
Per saperne di più sulla creazione di cluster Distributed Cloud, consulta Creare un cluster.