当前位置: 首页 > 知识库问答 >
问题:

Strimzi kafka在GKE中私下访问

沈永贞
2023-03-14

我有两个集群,

一个集群安装了我的应用程序微服务,另一个集群安装了Strimzi kafka。两者都是私有的GKE集群。

我的挑战是如何从我的应用程序连接到这个 kafka。大约有 10 个微服务正在运行,每个微服务都必须连接到 kafka。

我现在有一种方法,将Strimzi kafka作为Nodeport服务,并在应用程序代码中提供Ip和nodeIp。

这种方法的问题在于,如果 GKE 节点自动更新,我将不得不重新配置代码。

还有一个更关键的条件是,Kafka只能由我们的应用程序访问。它不应该在公共互联网上使用。

共有1个答案

贺雅健
2023-03-14

我也有类似的情况以及我是如何解决的。

创建一个可从另一个AKS集群访问的内部负载均衡器。还允许访问特定子网。

Strimzi支持外部化引导服务。

示例:

...
spec:
  kafka:
    replicas: 3
    listeners:
      plain: {}
      tls: {}
      external:
        type: loadbalancer
        tls: false
    ...
    template:
      externalBootstrapService:
          metadata:
            annotations:
              service.beta.kubernetes.io/azure-load-balancer-internal: "true"
              service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "apps-subnet"
      perPodService:
        metadata:
          annotations:
            service.beta.kubernetes.io/azure-load-balancer-internal: "true"
            service.beta.kubernetes.io/azure-load-balancer-internal-subnet: "apps-subnet"

要了解更多细节,您可以查看内部负载平衡器部分在这个链接:https://strimzi.io/blog/2019/05/13/accessing-kafka-part-4/

 类似资料:
  • 我正在尝试将一个pod连接到另一个pod,但获得连接拒绝错误。 我只运行: > RavenDB服务器 部署包括: 端口: 容器端口:8080,协议:TCP containerPort:38888,协议:TCP ravendb-cluster01-service RavenDB客户端 连接到ravendb-cluster01-service。登台。svc。簇本地电话:8080 什么不起作用: 客户端

  • 我正在尝试获取对象的私有字段的名称。当我对包的公共字段使用相同的切点时,它正好工作。我的方面设置为特权。我想要更新类对象的字段。切入点: 建议: 我在我的切入点异常中得到这一行的异常:

  • 问题内容: hibernate如何访问java类的私有字段/方法,例如设置@Id? 谢谢 问题答案: 就像Crippledsmurf所说,它使用反射。请参阅反射:违反所有规则并hibernate:保留对象的合同。

  • 我试图理解Java8中引入的新日期和时间API。 我在日志文件中有一个unix时间戳,我需要对它进行处理,以确定它属于今天或昨天的哪个小时。 我遇到了一个不寻常的错误在Android Studio,想更好地理解它。

  • 为什么会这样?我的意思是,访问私有变量。

  • 我在项目中定义了一个模型类。和往常一样,它有一些私有变量和公共的获取者和设置者 假设在其他类中我使用这个模型,就像 然后person的私有变量保存值“my name”,我使用类的public getter访问变量,如 所以据我所知的人。getMark()返回私有变量名的引用,因此如果我修改局部变量“localMark”,它将影响Person类的私有变量,因此它会破坏变量的私有属性 前任: 我猜大多