首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Istio入侵网关为Kubernetes上的Strimzi Kafka服务

Istio入侵网关为Kubernetes上的Strimzi Kafka服务
EN

Stack Overflow用户
提问于 2022-04-05 15:20:29
回答 1查看 704关注 0票数 0

我有一个问题,那就是如何用Istio Ingress网关配置Strimzi操作符,以同时为引导和代理服务提供服务。

我已经将Istio部署到以下网关和虚拟服务中,用于服务器引导和代理:

代码语言:javascript
复制
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  annotations:
  name: strimzi-kafka-gw-broker
  namespace: strimzi
spec:
  selector:
    istio: ingressgateway
  servers:
  - hosts:
    - myserver
    port:
      name: https
      number: 9094
      protocol: HTTP2
    tls:
      mode: SIMPLE
      credentialName: myserver-tls
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
  annotations:
  name: strimzi-kafka-gw-bootstrap
  namespace: strimzi
spec:
  selector:
    istio: ingressgateway
  servers:
  - hosts:
    - myserver
    port:
      name: tls-9093
      number: 9093
      protocol: TLS
    tls:
      mode: SIMPLE
      credentialName: myserver-tls
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  annotations:
  name: strimzi-kafka-vs-broker
  namespace: strimzi
spec:
  gateways:
  - strimzi-kafka-gw-broker
  hosts:
  - my-server
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: kafka-cluster-01-kafka-brokers
        port:
          number: 9092
---
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  annotations:
  name: strimzi-kafka-vs-bootstrap
  namespace: strimzi
spec:
  gateways:
  - strimzi-kafka-gw-bootstrap
  hosts:
  - my-server
  tcp:
  - match:
    - port: 9093
    route:
    - destination:
        host: kafka-cluster-01-kafka-bootstrap
        port:
          number: 9092

问题是,当我在Kubernetes中通过Strimzi运营商部署Kafka资源时,我需要将代理的广告地址和广告端口设置为Kafka客户端,以便通过Ingress使用,它还将在同一个端口上创建一个侦听器,因为Istio无法服务同一个端口。

Stimzi Kafka资源:

代码语言:javascript
复制
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: kafka-cluster-01
spec:
  kafka:
    version: 3.1.0
    replicas: 2
    listeners:
      - name: internal
        port: 9092
        type: internal
        tls: false
        configuration:
          brokers:
          - broker: 0
            advertisedHost: my-server
            advertisedPort: 9094
          - broker: 1
            advertisedHost: my-server
            advertisedPort: 9094
          - broker: 2
            advertisedHost: my-server
            advertisedPort: 9094
    config:
      offsets.topic.replication.factor: 2
      transaction.state.log.replication.factor: 2
      transaction.state.log.min.isr: 2
      default.replication.factor: 2
      min.insync.replicas: 2
      inter.broker.protocol.version: "3.1"
      receive.message.max.bytes: 1513486160
      advertised: my-server
    storage:
      type: jbod
      volumes:
      - id: 0
        type: persistent-claim
        size: 100Gi
        deleteClaim: false
  zookeeper:
    replicas: 1
    storage:
      type: persistent-claim
      size: 100Gi
      deleteClaim: false
  entityOperator:
    topicOperator: {}
    userOperator: {}

我如何告诉Kafka (Strimzi)使用代理的广告地址和端口,而无需在其上创建一个侦听器来在其前面使用一个in (Istio)?

我没有在Strimzi的文档中找到这个。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-09 15:42:49

我现在也避免了这种缓慢。问题是,我使用了Strimzi操作符部署的kubernetes服务kafka-cluster-01-kafka-brokers,但是它在我的两个kafka代理之间的工作就像一个负载平衡器,所以它有时在我的主题中请求错误的分区,而被请求的代理不包含这个分区。在为每个代理吊舱安装了专用服务之后,我就能够在前面安装一个卡夫卡队列,Istio在前面。

我只需要告诉Stimzi操作符,如何在每个吊舱中部署一个专用的服务,并分别标记这些吊舱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71754389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档