Un cluster Managed Service pour Apache Kafka fournit un environnement pour stocker et traiter des flux de messages organisés en thèmes.
Pour créer un cluster, vous pouvez utiliser la console Google Cloud , Google Cloud CLI, la bibliothèque cliente ou l'API Managed Kafka. Vous ne pouvez pas utiliser l'API Apache Kafka Open Source pour créer un cluster.
Avant de commencer
Vérifiez que vous connaissez les points suivants :
Rôles et autorisations requis pour créer un cluster
Pour obtenir les autorisations nécessaires pour créer un cluster, demandez à votre administrateur de vous accorder le rôle IAM Éditeur de cluster Kafka géré (roles/managedkafka.clusterEditor) sur votre projet.
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient les autorisations requises pour créer un cluster. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer un cluster :
-
Créez un cluster :
managedkafka.clusters.create
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Le rôle "Éditeur de cluster Managed Kafka" ne vous permet pas de créer, de supprimer ni de modifier des sujets et des groupes de consommateurs sur les clusters Managed Service pour Apache Kafka. Il n'autorise pas non plus l'accès au plan de données pour publier ou consommer des messages dans les clusters. Pour en savoir plus sur ce rôle, consultez Rôles prédéfinis de Managed Service pour Apache Kafka.
Propriétés d'un cluster Managed Service pour Apache Kafka
Lorsque vous créez ou mettez à jour un cluster Managed Service pour Apache Kafka, vous devez spécifier les propriétés suivantes.
Nom du cluster
Nom ou ID du cluster Managed Service pour Apache Kafka que vous créez. Pour obtenir des instructions sur la façon de nommer un cluster, consultez les consignes de dénomination des ressources Managed Service pour Apache Kafka. Le nom d'un cluster est immuable.
Emplacement
Emplacement où vous créez le cluster. L'emplacement doit être l'une des régions Google Cloud compatibles. L'emplacement d'un cluster ne peut pas être modifié par la suite. Pour obtenir la liste des emplacements disponibles, consultez Emplacements Managed Service pour Apache Kafka.
Configuration de la capacité
La configuration de la capacité nécessite que vous configuriez le nombre de vCPU et la quantité de mémoire pour votre configuration Kafka. Pour en savoir plus sur la configuration de la capacité d'un cluster, consultez Planifier la taille de votre cluster Kafka.
Voici les propriétés de la configuration de la capacité :
vCPUs : nombre de processeurs virtuels dans le cluster. Au moins trois processeurs virtuels par cluster sont requis.
Mémoire : quantité de mémoire attribuée au cluster. Vous devez provisionner entre 1 Gio et 8 Gio par processeur virtuel.
Par exemple, si vous créez un cluster avec 6 processeurs virtuels, la mémoire minimale que vous pouvez allouer au cluster est de 6 Gio (1 Gio par processeur virtuel) et la mémoire maximale est de 48 Gio (8 Gio par processeur virtuel).
Pour savoir comment modifier la mémoire et le nombre de processeurs virtuels après la création d'un cluster, consultez Mettre à jour la taille du cluster.
Configuration du réseau
La configuration réseau est une liste de sous-réseaux VPC où le cluster est accessible. Pour produire ou consommer des messages, les clients doivent pouvoir accéder à l'un de ces sous-réseaux.
Voici quelques consignes concernant la configuration de votre réseau :
Un cluster nécessite au moins un sous-réseau. Le maximum est de dix.
Un seul sous-réseau par réseau est autorisé pour un cluster donné.
Chaque sous-réseau doit se trouver dans la même région que le cluster. Le projet et le réseau peuvent être différents.
Les adresses IP des courtiers et du serveur d'amorçage sont automatiquement allouées dans chaque sous-réseau. De plus, des entrées DNS pour chacune de ces adresses IP sont créées dans les réseaux VPC correspondants.
Si vous ajoutez un sous-réseau provenant d'un autre projet, vous devez accorder des autorisations au compte de service géré par Google associé au cluster. Pour en savoir plus, consultez Connecter un cluster à plusieurs projets.
Une fois le cluster créé, vous pouvez mettre à jour la liste des sous-réseaux. Pour en savoir plus sur la mise en réseau, consultez Configurer la mise en réseau pour Managed Service pour Apache Kafka.
Étiquettes
Les libellés sont des paires clé/valeur qui vous aident à organiser et à identifier vos ressources.
Les libellés permettent de classer les ressources en fonction de l'environnement. Par exemple, "env:production" et "owner:data-engineering".
Vous pouvez filtrer et rechercher des ressources en fonction de leurs libellés. Par exemple, supposons que vous disposiez de plusieurs clusters Managed Service pour Apache Kafka pour différents services. Vous pouvez configurer et rechercher des clusters avec le libellé "department:marketing" pour trouver rapidement celui qui vous intéresse.
Configuration du rééquilibrage
Ce paramètre détermine si le service rééquilibre automatiquement les répliques de partition entre les courtiers.
Les modes disponibles sont les suivants :
Rééquilibrage automatique lors de l'augmentation de la capacité : lorsque cette option est activée, le service déclenche automatiquement un rééquilibrage des répliques lorsque vous augmentez la capacité du cluster. Ce mode permet de maintenir une répartition uniforme de la charge, mais peut avoir un impact temporaire sur les performances pendant l'opération de rééquilibrage.
Aucun rééquilibrage : lorsque cette option est activée, le service ne rééquilibre pas automatiquement les répliques.
Chiffrement
Managed Service pour Apache Kafka peut chiffrer les messages avecGoogle-owned and Google-managed encryption keys (par défaut) ou des clés de chiffrement gérées par le client (CMEK). Chaque message est chiffré au repos et en transit. Le type de chiffrement d'un cluster est immuable.
Google-owned and Google-managed encryption keys sont utilisés par défaut. Ces clés sont créées, gérées et stockées entièrement par Google Cloud dans son infrastructure.
Les CMEK sont des clés de chiffrement que vous gérez à l'aide de Cloud Key Management Service. Cette fonctionnalité vous permet de mieux contrôler les clés utilisées pour chiffrer les données au repos dans les services Google Cloud compatibles. L'utilisation de CMEK entraîne des coûts supplémentaires liés à Cloud Key Management Service. Pour utiliser CMEK, votre trousseau de clés doit se trouver au même emplacement que les ressources avec lesquelles vous l'utilisez. Pour en savoir plus, consultez Configurer le chiffrement des messages.
Configuration mTLS
Vous pouvez éventuellement configurer mTLS comme méthode d'authentification alternative qui utilise des certificats client. La configuration comprend les éléments suivants :
Pools d'autorités de certification : liste d'un à dix pools Certificate Authority Service (CAS) auxquels le cluster fait confiance pour l'authentification du client.
Règles de mappage des comptes principaux SSL : propriété de l'
ssl.principal.mapping.rulesfacultative, mais recommandée, pour simplifier les noms de comptes principaux de certificats longs à utiliser dans les LCA Kafka.
Pour en savoir plus sur mTLS, consultez Configurer l'authentification mTLS.
Créer un cluster
Avant de créer un cluster, consultez la documentation sur les propriétés des clusters.
La création d'un cluster prend généralement entre 20 et 30 minutes.
Pour créer un cluster, procédez comme suit :
Console
Dans la console Google Cloud , accédez à la page Clusters.
Sélectionnez Créer.
La page Créer un cluster Kafka s'ouvre.
Dans le champ Nom du cluster, saisissez une chaîne.
Pour en savoir plus sur la façon de nommer un cluster, consultez les consignes de dénomination des ressources Managed Service pour Apache Kafka.
Dans le champ Emplacement, saisissez un emplacement compatible.
Pour en savoir plus sur les emplacements compatibles, consultez Emplacements Managed Service pour Apache Kafka compatibles.
Pour la configuration de la capacité, saisissez des valeurs pour Mémoire et Processeurs virtuels.
Pour en savoir plus sur le dimensionnement d'un cluster Managed Service pour Apache Kafka, consultez Planifier la taille de votre cluster Kafka.
Pour Configuration réseau, saisissez les détails suivants :
- Projet : projet dans lequel se trouve le sous-réseau. Le sous-réseau doit se trouver dans la même région que le cluster, mais le projet peut être différent.
- Réseau : réseau auquel le sous-réseau est connecté.
- Sous-réseau : nom du sous-réseau.
- Chemin d'URI du sous-réseau : ce champ est renseigné automatiquement. Vous pouvez également saisir le chemin d'accès au sous-réseau ici. Le nom du sous-réseau doit respecter le format suivant :
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_ID. - Cliquez sur OK.
(Facultatif) Ajoutez d'autres sous-réseaux en cliquant sur Ajouter un sous-réseau connecté.
Vous pouvez ajouter d'autres sous-réseaux, jusqu'à un maximum de dix.
Conservez les autres valeurs par défaut.
Cliquez sur Créer.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Exécutez la commande
gcloud managed-kafka clusters create:gcloud managed-kafka clusters create CLUSTER_ID \ --location=LOCATION \ --cpu=CPU \ --memory=MEMORY \ --subnets=SUBNETS \ --auto-rebalance \ --encryption-key=ENCRYPTION_KEY \ --async \ --labels=LABELSRemplacez les éléments suivants :
CLUSTER_ID : ID ou nom du cluster.
Pour en savoir plus sur la façon de nommer un cluster, consultez les consignes de dénomination des ressources Managed Service pour Apache Kafka.
LOCATION : emplacement du cluster.
Pour en savoir plus sur les emplacements compatibles, consultez Emplacements Managed Service pour Apache Kafka.
CPU : nombre de processeurs virtuels pour le cluster.
Pour en savoir plus sur le dimensionnement d'un cluster Managed Service pour Apache Kafka, consultez Planifier la taille de votre cluster Kafka.
MEMORY : quantité de mémoire pour le cluster. Utilisez les unités "MB", "MiB", "GB", "GiB", "TB" ou "TiB". Par exemple, "10 Gio".
SUBNETS : liste des sous-réseaux auxquels se connecter. Utilisez des virgules pour séparer plusieurs valeurs de sous-réseau.
Le format du sous-réseau est
projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_ID.auto-rebalance: active le rééquilibrage automatique des partitions de sujet entre les agents lorsque le nombre de processeurs du cluster change. Cette option est activée par défaut.ENCRYPTION_KEY : ID de la clé de chiffrement gérée par le client à utiliser pour le cluster.
Il a le format suivant :
projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.--async: permet au système d'envoyer la requête de création et de renvoyer immédiatement une réponse, sans attendre la fin de l'opération. L'option--asyncvous permet de continuer à effectuer d'autres tâches pendant que le cluster est créé en arrière-plan. Si vous n'utilisez pas l'indicateur, le système attend la fin de l'opération avant de renvoyer une réponse. Vous devez attendre que le cluster soit entièrement mis à jour avant de pouvoir poursuivre d'autres tâches.LABELS : libellés à associer au cluster.
Pour en savoir plus sur le format des libellés, consultez Libellés.
Vous obtenez une réponse semblable à la suivante :
Create request issued for: [CLUSTER_ID] Check operation [projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID] for status.Stockez le OPERATION_ID pour suivre
progress.-
PROJECT_ID: ID de votre projet Google Cloud -
LOCATION: emplacement du cluster -
CLUSTER_ID: ID du cluster -
CPU_COUNT: nombre de processeurs virtuels pour le cluster. -
MEMORY: quantité de mémoire pour le cluster, en octets. Exemple :3221225472. -
SUBNET_ID: ID du sous-réseau auquel se connecter. Exemple :default.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
Méthode HTTP et URL :
POST https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters?clusterId=CLUSTER_ID
Corps JSON de la requête :
{
"capacityConfig": {
"vcpuCount": CPU_COUNT,
"memoryBytes": MEMORY
},
"gcpConfig": {
"accessConfig": {
"networkConfigs": [
{
"subnet": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET_ID"
}
]
}
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{
"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": "create",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
Terraform
Vous pouvez utiliser une ressource Terraform pour créer un cluster.
Pour savoir comment appliquer ou supprimer une configuration Terraform, consultez Commandes Terraform de base.
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go dans Installer les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Managed Service pour Apache Kafka en langage Go.
Pour vous authentifier auprès de Managed Service pour Apache Kafka, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java dans Installer les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Java pour Managed Service pour Apache Kafka.
Pour vous authentifier auprès de Managed Service pour Apache Kafka, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python dans Installer les bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Python Managed Service pour Apache Kafka.
Pour vous authentifier auprès de Managed Service pour Apache Kafka, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer les ADC pour un environnement de développement local.
Surveiller l'opération de création du cluster
Vous ne pouvez exécuter la commande suivante que si vous avez exécuté la gcloud CLI pour créer le cluster.
La création d'un cluster prend généralement entre 20 et 30 minutes. Pour suivre la progression de la création du cluster, la commande
gcloud managed-kafka clusters createutilise une opération de longue durée (LRO), que vous pouvez surveiller à l'aide de la commande suivante :gcloud managed-kafka operations describe OPERATION_ID \ --location=LOCATIONRemplacez les éléments suivants :
OPERATION_IDpar la valeur de l'ID de l'opération de la section précédente.LOCATIONpar la valeur de l'emplacement de la section précédente.
Dépannage
Voici quelques erreurs que vous pouvez rencontrer lors de la création de clusters.
Service agent service-${PROJECT_NUMBER}@gcp-sa-managedkafka.iam.gserviceaccount.com
has not been granted the required role cloudkms.cryptoKeyEncrypterDecrypter to
encrypt data using the KMS key.
L'agent de service Managed Service pour Apache Kafka ne dispose pas de l'autorisation requise pour accéder à la clé Cloud KMS. Consultez la documentation sur les rôles requis pour configurer CMEK.
Service does not have permission to retrieve subnet. Please grant
service-${PROJECT_NUMBER}@gcp-sa-managedkafka.iam.gserviceaccount.com the
managedkafka.serviceAgent role in the IAM policy of the project
${SUBNET_PROJECT} and ensure the Compute Engine API is enabled in project
${SUBNET_PROJECT}
L'agent de service Managed Service pour Apache Kafka ne dispose pas du rôle requis pour configurer la mise en réseau dans le réseau VPC dans lequel les clients Kafka s'exécutent. Pour en savoir plus, consultez Connecter un cluster à plusieurs projets.