É possível editar um cluster do Serviço gerenciado do Google Cloud para Apache Kafka para atualizar propriedades como o tamanho do cluster, incluindo contagem de vCPU e memória, a lista de sub-redes conectadas, os intervalos de IP de origem permitidos para clusters públicos, a configuração de rebalanceamento automático e a configuração de mTLS.
Para editar um cluster, use o console Google Cloud , a Google Cloud CLI, a biblioteca de cliente ou a API Managed Kafka. Não é possível usar a API Apache Kafka de código aberto para atualizar um cluster.
A atualização de determinadas propriedades, como contagem de vCPUs e memória, pode exigir que o serviço reinicie o cluster. O serviço reinicia o cluster um broker por vez. Durante esse processo, as solicitações para corretores individuais podem falhar, mas essas falhas são temporárias. As bibliotecas de cliente usadas com frequência processam esses erros automaticamente.
Papéis e permissões necessárias
Para receber as permissões necessárias
para atualizar um cluster,
peça ao administrador para conceder a você o
papel do IAM de Editor de cluster gerenciado do Kafka (roles/managedkafka.clusterEditor) no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém as permissões necessárias para atualizar um cluster. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As seguintes permissões são necessárias para atualizar um cluster:
-
Editar um cluster:
managedkafka.clusters.update
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Redimensionar um cluster
Se você atualizar a contagem de vCPUs ou a memória de um cluster, as seguintes regras serão aplicadas:
A proporção geral de vCPU para memória do cluster precisa sempre permanecer entre 1:1 e 1:8.
É preciso ter pelo menos uma vCPU e 1 GiB de memória para cada broker. O número de brokers nunca diminui.
Se o cluster tiver uma configuração de disco personalizada, a atualização precisará atender aos requisitos de configuração de disco para armazenamento local.
Se você fizer um upgrade, a vCPU e a memória médias por broker não poderão diminuir mais de 10% em comparação com as médias antes da atualização. Por exemplo, se você tentar fazer upgrade de um cluster de 45 vCPUs (3 brokers) para 48 vCPUs (4 brokers), a vCPU média por broker vai diminuir de 15 para 12, o que é uma redução de 20%, excedendo o limite de 10%.
Se você precisar diminuir a contagem de vCPUs em mais de 10%, recomendamos reduzir em várias etapas. Após cada atualização, monitore a utilização de recursos e reequilibre as partições, se necessário.
No entanto, se você tiver certeza de que seus brokers terão capacidade suficiente após a atualização, desative essa verificação executando o comando
gcloud managed-kafka clusters updatecom a flagallow_broker_downscale_on_cluster_upscale=true. Essa flag indica que você aceita o possível risco de performance.
Para mais informações, consulte Atualizar o tamanho do cluster.
Configuração do cluster público
É possível ativar ou desativar o acesso público para um cluster atual, além de adicionar ou remover intervalos de IP de origem permitidos. Para mais informações sobre os requisitos e as regras para intervalos de IP de origem permitidos, consulte Clusters públicos.
O Serviço Gerenciado para Apache Kafka usa o Cloud Next Generation Firewall para restringir o acesso a clusters públicos. A remoção de intervalos de IP de origem permitidos ou a desativação do acesso público se aplicam somente a novas conexões. Para mais informações, consulte efeitos no tráfego atual.
Edite um cluster
Para editar um cluster, siga estas etapas:
Console
- No Google Cloud console, acesse a página Clusters.
- Na lista de clusters, clique naquele cujas propriedades você quer editar.
O console mostra a página de detalhes do cluster.
Na página de detalhes do cluster, clique em Editar.
Edite as propriedades conforme necessário. É possível editar as seguintes propriedades de um cluster no console:
- Memória
- vCPUs
- Sub-rede
- Configuração de reequilíbrio
- Configuração de mTLS
- Rótulos
Clique em Salvar.
gcloud
-
No console do Google Cloud , ative o Cloud Shell.
Na parte de baixo do console Google Cloud , uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
-
Antes de usar os dados do comando abaixo, faça estas substituições:
-
PROJECT_ID: o ID do projeto; -
LOCATION: O local do cluster. -
CLUSTER_ID: o ID do cluster. -
CPU_COUNT: o número de vCPUs para o cluster. -
MEMORY: a quantidade de memória para o cluster. Exemplo:10GiB. -
SUBNET_ID: o ID da sub-rede a ser conectada. Exemplo:default. -
LABELS: os rótulos a serem associados ao cluster. -
ALLOWED_SOURCE_IP_RANGES: os intervalos CIDR IPv4 de origem permitidos para acesso à internet público do cluster.
Execute o seguinte comando:
Linux, macOS ou 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
Você receberá uma resposta semelhante a esta:
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
- Para desativar o acesso público, use a flag
--no-public-cluster. - Se você usar a flag
--asynccom o comando, o sistema enviará a solicitação de atualização e retornará uma resposta imediatamente, sem aguardar a conclusão da operação. Com a flag--async, você pode continuar com outras tarefas enquanto a atualização do cluster acontece em segundo plano. Se você não usar a flag--async, o sistema vai aguardar a conclusão da operação antes de retornar uma resposta. Aguarde até que o cluster seja totalmente atualizado antes de continuar com outras tarefas.
-
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
-
PROJECT_ID: o ID do projeto do Google Cloud -
LOCATION: O local do cluster. -
CLUSTER_ID: o ID do cluster. -
UPDATE_MASK: quais campos atualizar, como uma lista separada por vírgulas de nomes totalmente qualificados. Exemplo:capacityConfig.vcpuCount,capacityConfig.memoryBytes -
CPU_COUNT: o número de vCPUs para o cluster. -
MEMORY: a quantidade de memória para o cluster, em bytes. Exemplo:3221225472. -
SUBNET_ID: ID da sub-rede a ser conectada. Exemplo:default.
Método HTTP e URL:
PATCH https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID?updateMask=UPDATE_MASK
Corpo JSON da solicitação:
{
"capacityConfig": {
"vcpuCount": CPU_COUNT,
"memoryBytes": MEMORY
},
"gcpConfig": {
"accessConfig": {
"networkConfigs": [
{
"subnet": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID"
}
]
}
}
}
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{
"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
}
No corpo da solicitação, inclua apenas os campos que você está atualizando, conforme especificado no parâmetro de consulta UPDATE_MASK.
- Para adicionar uma sub-rede, anexe uma nova entrada a
networkConfigsno seguinte formato:projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID. Exemplo:projects/sample-project/regions/us-central1/subnetworks/default. Para ativar o acesso público ou atualizar os intervalos de IP de origem permitidos, inclua
gcpConfig.accessConfig.publicClusterConfigno parâmetro de consulta UPDATE_MASK e especifique a matrizallowedSourceIpRangesno corpo da solicitação. Exemplo de corpo da solicitação:{ "gcpConfig": { "accessConfig": { "publicClusterConfig": { "allowedSourceIpRanges": [ "203.0.113.0/24" ] } } } }Para desativar o acesso público, inclua
gcpConfig.accessConfig.publicClusterConfigno parâmetro de consulta UPDATE_MASK e transmita um objeto JSON vazio{}no corpo da solicitação (ou omitapublicClusterConfig). Exemplo de corpo da solicitação:{}
Go
Antes de testar esta amostra, siga as instruções de configuração do Go em Instalar as bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go do Serviço Gerenciado para Apache Kafka.
Para autenticar o Serviço Gerenciado para Apache Kafka, configure o Application Default Credentials(ADC). Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java em Instalar as bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java do Serviço gerenciado para Apache Kafka.
Para autenticar no Serviço gerenciado para Apache Kafka, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python em Instalar as bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python do serviço gerenciado para Apache Kafka.
Para autenticar no Serviço gerenciado para Apache Kafka, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.
Limitações
Depois de criar um cluster do Serviço Gerenciado para Apache Kafka, não é possível atualizar as seguintes propriedades:
- O nome do cluster
- O local do cluster
- O tipo de criptografia
Embora não seja possível mudar o tipo de criptografia, você pode revezar as chaves de criptografia.