本页面介绍如何解决创建或配置 Managed Service for Apache Kafka 集群时出现的问题。
Kafka 集群创建错误
本部分列出了您在创建 Kafka 集群时可能会遇到的错误。
该服务无权访问 Cloud KMS 密钥
当 Managed Service for Apache Kafka 服务代理缺少访问 Cloud KMS 密钥所需的权限时,会出现以下问题。
Service agent service-${PROJECT_NUMBER}@gcp-sa-managedkafka.
has not been granted the required role cloudkms.cryptoKeyEncrypterDecrypter to
encrypt data using the KMS key.`
如需解决此问题,请向服务帐号授予 Cloud KMS 密钥的 Cloud KMS CryptoKey Encrypter/Decrypter 角色。 如需了解详情,请参阅 配置 CMEK 所需的角色。
该服务无权检索子网
当 Managed Service for Apache Kafka 服务代理缺少在 Kafka 客户端运行的 VPC 网络中配置网络所需的角色时,会出现以下问题。
Service does not have permission to retrieve subnet. Please grant
service-${PROJECT_NUMBER}@gcp-sa-managedkafka. 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}`
如需解决此问题,请向服务帐号授予 Managed Kafka Service Agent 角色。如需了解详情,请参阅 跨项目连接集群。
网络错误
本部分列出了您在为 Kafka 集群配置网络时可能会遇到的错误。
该服务无法设置网络
如果 Managed Service for Apache Kafka 无法将 Kafka 集群连接到您的 Virtual Private Cloud 子网,则会出现以下问题。
Managed Service for Apache Kafka failed to set up networking in VPC subnet.
如需解决此问题,请执行以下步骤:
在消费者 VPC 网络的父项目中启用 Compute Engine 和 Cloud DNS API。
如果 Managed Service for Apache Kafka 集群和消费者 VPC 网络位于不同的项目中,请配置所需的权限。请参阅 跨项目连接集群。
确保没有 组织政策限制 阻止该服务在消费者 VPC 网络的项目中创建必要的资源。
如需了解详情,请参阅 为 Managed Service for Apache Kafka 配置网络。
客户端应用无法连接
如果您的客户端应用无法连接到您的集群,请检查是否存在以下问题:
确保客户端使用的是正确的 启动地址。
确保 Kafka 客户端在配置为访问 Managed Service for Apache Kafka 集群的 VPC 网络中运行。
如果您在计算机或笔记本电脑上运行 Kafka 客户端,则可以设置一个 Compute Engine 实例,将其用作访问 Managed Service for Apache Kafka 集群的代理。如需了解详情,请参阅 设置客户端机器。
身份验证错误
本部分列出了客户端应用向 Kafka 集群进行身份验证时可能会遇到的错误。
SASL 身份验证失败
当客户端无法使用 SASL 身份验证连接到集群时,会出现以下问题。
Exception in thread "main" java.util.concurrent.ExecutionException:
org.apache.kafka.common.errors.SaslAuthenticationException:
Authentication failed: Invalid username or password
如需解决此问题,请检查以下原因:
密码格式错误,并且在经过 base64 解码后,不代表有效的服务帐号密钥 JSON blob 或有效的访问令牌。
进行身份验证的正文没有对集群的
managedkafka.clusters.connect权限。提供的用户名与凭据的正文不匹配。
如果客户端每 30 分钟频繁断开连接,可能是因为客户端不支持定期重新进行身份验证。
Managed Service for Apache
Kafka 代理要求客户端每 30 分钟重新进行一次身份验证,这是由 connections.max.reauth.ms 代理属性强制执行的。
请验证您的
Kafka 客户端库版本是否为 2.2.0 或更高版本,并且支持重新进行身份验证。
如需了解详情,请参阅 配置 SASL 身份验证。