You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GKE上Strimzi部署Confluent Schema Registry失败求助

问题描述

我已在GCP的GKE上部署Strimzi Kafka,参考第三方operator安装Confluent Schema Registry,执行步骤如下:

  • 在schema-registry-operator命名空间安装strimzi-registry-operator(Strimzi Kafka部署在kafka命名空间),使用helm命令及指定values.yaml配置;
  • 在kafka命名空间创建KafkaTopic(registry-schemas)和KafkaUser(confluent-schema-registry);
  • 在strimzi-schema-operator命名空间安装StrimziSchemaRegistry。

最初遇到403权限错误:serviceaccount无法在kafka命名空间列出secrets及strimzischemaregistries资源,导致未出现监听8081端口的Schema Registry Pod。

已通过在strimzi-registry-operator命名空间重新创建ServiceAccount解决权限问题,但出现新错误:operator代码抛出AttributeError: module 'kopf' has no attribute 'Error',Schema Registry仍无法创建。

环境信息:

  • Strimzi Kafka版本3.0.0
  • Kafka配置多类型监听器
  • KafkaUser和Topic部署在kafka命名空间
  • 计划将Confluent Schema Registry部署在kafka命名空间

求助:

  1. 如何获取Schema Registry访问地址?
  2. 如何解决当前的AttributeError代码错误?
解决方案

一、修复AttributeError: module 'kopf' has no attribute 'Error'

该错误源于operator依赖的kopf版本与代码API不兼容:

  • 检查operator Pod内的kopf版本:
    kubectl exec -n schema-registry-operator <operator-pod-name> -- pip list | grep kopf
    
  • 若kopf版本≥1.36.0,kopf.Error已被移除,需将代码中的kopf.Error替换为kopf.PermanentError(永久错误)或kopf.TemporaryError(临时可重试错误);
  • 若使用helm部署,查看chart的values.yaml是否支持指定kopf版本,调整为与代码兼容的版本(如1.35.x)后重新部署operator。

二、获取Schema Registry访问地址

需待Schema Registry Pod成功启动后,通过其关联的Service获取地址:

  1. 查看kafka命名空间下的Schema Registry Service:
    kubectl get svc -n kafka | grep schema-registry
    
  2. 集群内部访问:使用ClusterIP地址,格式为http://<service-name>.kafka.svc.cluster.local:8081;
  3. 外部访问:
    • 若Service为NodePort类型,地址为http://<GKE-node-external-ip>:<node-port>;
    • 若Service为LoadBalancer类型,GKE会分配外部IP,地址为http://<loadbalancer-external-ip>:8081。

内容的提问来源于stack exchange,提问作者Karan Alang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:25:57