Puoi modificare un cluster Google Cloud Managed Service per Apache Kafka per aggiornare proprietà come le dimensioni del cluster, inclusi il numero di vCPU e la memoria, l'elenco delle subnet connesse, gli intervalli IP di origine consentiti per i cluster pubblici, la configurazione del ribilanciamento automatico e la configurazione mTLS.
Per modificare un cluster, puoi utilizzare la console Google Cloud , Google Cloud CLI, la libreria client o l'API Managed Kafka. Non puoi utilizzare l'API Apache Kafka open source per aggiornare un cluster.
L'aggiornamento di determinate proprietà, come il conteggio di vCPU e la memoria, potrebbe richiedere il riavvio del cluster da parte del servizio. Il servizio riavvia il cluster un broker alla volta. Durante questo processo, le richieste ai singoli broker potrebbero non andare a buon fine, ma questi errori sono temporanei. Le librerie client di uso comune gestiscono automaticamente questi errori.
Ruoli e autorizzazioni richiesti
Per ottenere le autorizzazioni
necessarie per aggiornare un cluster,
chiedi all'amministratore di concederti il
ruolo IAM Editor cluster Kafka gestito (roles/managedkafka.clusterEditor) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per aggiornare un cluster. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per aggiornare un cluster sono necessarie le seguenti autorizzazioni:
-
Modifica un cluster:
managedkafka.clusters.update
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Ridimensionare un cluster
Se aggiorni il numero di vCPU o la memoria di un cluster, si applicano le seguenti regole:
Il rapporto complessivo tra vCPU e memoria del cluster deve sempre rimanere compreso tra 1:1 e 1:8.
Deve essere presente almeno 1 vCPU e 1 GiB di memoria per ogni broker esistente. Il numero di broker non diminuisce mai.
Se il cluster ha una configurazione del disco personalizzata, l'aggiornamento deve soddisfare i requisiti di configurazione del disco per l'archiviazione locale.
Se esegui l'upgrade, la vCPU e la memoria medie per broker non possono diminuire di più del 10% rispetto alle medie prima dell'aggiornamento. Ad esempio, se provi a eseguire l'upscaling di un cluster da 45 vCPU (3 broker) a 48 vCPU (4 broker), la vCPU media per broker diminuisce da 15 a 12, con una riduzione del 20%, superiore al limite del 10%.
Se devi ridurre il conteggio di vCPU di oltre il 10%, ti consigliamo di farlo in più fasi. Dopo ogni aggiornamento, monitora l'utilizzo delle risorse e ribilancia le partizioni, se necessario.
Tuttavia, se ritieni che i tuoi broker avranno capacità sufficiente dopo l'aggiornamento, puoi disattivare questo controllo eseguendo il comando
gcloud managed-kafka clusters updatecon il flagallow_broker_downscale_on_cluster_upscale=true. Questo flag indica che accetti il potenziale rischio per il rendimento.
Per ulteriori informazioni, vedi Aggiornare le dimensioni del cluster.
Configurazione del cluster pubblico
Puoi attivare o disattivare l'accesso pubblico per un cluster esistente, nonché aggiungere o rimuovere intervalli IP di origine consentiti. Per saperne di più sui requisiti e sulle regole per gli intervalli IP di origine consentiti, consulta Cluster pubblici.
Managed Service per Apache Kafka utilizza Cloud Next Generation Firewall per limitare l'accesso ai cluster pubblici. La rimozione degli intervalli IP di origine consentiti o la disattivazione dell'accesso pubblico si applica solo alle nuove connessioni. Per saperne di più, consulta Effetti sul traffico esistente.
Modifica di un cluster
Per modificare un cluster:
Console
- Nella console Google Cloud , vai alla pagina Cluster.
- Nell'elenco dei cluster, fai clic su quello di cui vuoi modificare le proprietà.
La console mostra la pagina dei dettagli del cluster.
Nella pagina dei dettagli del cluster, fai clic su Modifica.
Modifica le proprietà in base alle esigenze. Puoi modificare le seguenti proprietà di un cluster dalla console:
- Memoria
- vCPU
- Subnet
- Configurazione del ribilanciamento
- Configurazione mTLS
- Etichette
Fai clic su Salva.
gcloud
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Prima di utilizzare i dati dei comandi riportati di seguito, effettua le seguenti sostituzioni:
-
PROJECT_ID: l'ID progetto -
LOCATION: la posizione del cluster. -
CLUSTER_ID: l'ID del cluster. -
CPU_COUNT: il numero di vCPU per il cluster. -
MEMORY: la quantità di memoria per il cluster. Esempio:10GiB. -
SUBNET_ID: l'ID subnet della subnet a cui connettersi. Esempio:default. -
LABELS: le etichette da associare al cluster. -
ALLOWED_SOURCE_IP_RANGES: gli intervalli CIDR IPv4 di origine consentiti per l'accesso a internet pubblico del cluster.
Esegui questo comando:
Linux, macOS o Cloud Shell
gcloud managed-kafka clusters update CLUSTER_ID \ --location=LOCATION \ --cpu=CPU_COUNT \ --memory=MEMORY \ --subnets=projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID \ --auto-rebalance \ --labels=LABELS \ --public-cluster \ --allowed-source-ip-ranges=ALLOWED_SOURCE_IP_RANGES
Windows (PowerShell)
gcloud managed-kafka clusters update CLUSTER_ID ` --location=LOCATION ` --cpu=CPU_COUNT ` --memory=MEMORY ` --subnets=projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID ` --auto-rebalance ` --labels=LABELS ` --public-cluster ` --allowed-source-ip-ranges=ALLOWED_SOURCE_IP_RANGES
Windows (cmd.exe)
gcloud managed-kafka clusters update CLUSTER_ID ^ --location=LOCATION ^ --cpu=CPU_COUNT ^ --memory=MEMORY ^ --subnets=projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID ^ --auto-rebalance ^ --labels=LABELS ^ --public-cluster ^ --allowed-source-ip-ranges=ALLOWED_SOURCE_IP_RANGES
Dovresti ricevere una risposta simile alla seguente:
done: false metadata: '@type': type.googleapis.com/google.cloud.managedkafka.v1.OperationMetadata apiVersion: v1 createTime: 'CREATE_TIME' requestedCancellation: false target: projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID verb: update name: projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID
- Per disattivare l'accesso pubblico, utilizza il flag
--no-public-cluster. - Se utilizzi il flag
--asynccon il comando, il sistema invia la richiesta di aggiornamento e restituisce immediatamente una risposta, senza attendere il completamento dell'operazione. Con il flag--async, puoi continuare con altre attività mentre l'aggiornamento del cluster viene eseguito in background. Se non utilizzi il flag--async, il sistema attende il completamento dell'operazione prima di restituire una risposta. Devi attendere il completamento dell'aggiornamento del cluster prima di poter continuare con altre attività.
-
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
-
PROJECT_ID: il tuo Google Cloud ID progetto -
LOCATION: la posizione del cluster. -
CLUSTER_ID: l'ID del cluster. -
UPDATE_MASK: quali campi aggiornare, come un elenco separato da virgole di nomi completi. Esempio:capacityConfig.vcpuCount,capacityConfig.memoryBytes -
CPU_COUNT: il numero di vCPU per il cluster. -
MEMORY: la quantità di memoria per il cluster, in byte. Esempio:3221225472. -
SUBNET_ID: l'ID subnet della subnet a cui connettersi. Esempio:default.
Metodo HTTP e URL:
PATCH https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID?updateMask=UPDATE_MASK
Corpo JSON della richiesta:
{
"capacityConfig": {
"vcpuCount": CPU_COUNT,
"memoryBytes": MEMORY
},
"gcpConfig": {
"accessConfig": {
"networkConfigs": [
{
"subnet": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID"
}
]
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.managedkafka.v1.OperationMetadata",
"createTime": "CREATE_TIME",
"target": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID",
"verb": "update",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
Nel corpo della richiesta, includi solo i campi che stai aggiornando, come specificato nel parametro di query UPDATE_MASK.
- Per aggiungere una subnet, aggiungi una nuova voce a
networkConfigsnel seguente formato:projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID. Esempio:projects/sample-project/regions/us-central1/subnetworks/default. Per attivare l'accesso pubblico o aggiornare gli intervalli IP di origine consentiti, includi
gcpConfig.accessConfig.publicClusterConfignel parametro di query UPDATE_MASK e specifica l'arrayallowedSourceIpRangesnel corpo della richiesta. Esempio di corpo della richiesta:{ "gcpConfig": { "accessConfig": { "publicClusterConfig": { "allowedSourceIpRanges": [ "203.0.113.0/24" ] } } } }Per disattivare l'accesso pubblico, includi
gcpConfig.accessConfig.publicClusterConfignel parametro di query UPDATE_MASK e passa un oggetto JSON vuoto{}nel corpo della richiesta (o omettipublicClusterConfig). Corpo della richiesta di esempio:{}
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go in Installa le librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Go di Managed Service per Apache Kafka.
Per eseguire l'autenticazione in Managed Service per Apache Kafka, configura le Credenziali predefinite dell'applicazione(ADC). Per saperne di più, vedi Configura ADC per un ambiente di sviluppo locale.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java in Installare le librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java di Managed Service per Apache Kafka.
Per eseguire l'autenticazione in Managed Service per Apache Kafka, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura ADC per un ambiente di sviluppo locale.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python in Installare le librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Python di Managed Service per Apache Kafka.
Per eseguire l'autenticazione in Managed Service per Apache Kafka, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura ADC per un ambiente di sviluppo locale.
Limitazioni
Dopo aver creato un cluster Managed Service per Apache Kafka, non puoi aggiornare le seguenti proprietà:
- Nome del cluster
- La località del cluster
- Il tipo di crittografia
Anche se non puoi modificare il tipo di crittografia, puoi ruotare le chiavi di crittografia.