【问题标题】:how to have external connectivity in redpanda on kubernetes?如何在 kubernetes 上的 redpanda 中进行外部连接?
【发布时间】:2021-08-24 10:33:19
【问题描述】:

我使用这个 helm chart 将 redpanda 部署到 kubernetes: https://github.com/vectorizedio/helm-charts

但我在外部访问 kafka 时遇到问题!

我在谷歌上搜索了如何从 kubernetes 集群外部对redpanda 进行外部访问,并找到了以下文档: https://vectorized.io/docs/kubernetes-external-connect/

但它对我不起作用,因为它已经过时了。目前我使用的是 redpanda helm chart 1.0.6 版本,以上文档适用于旧版本。

如何使用最新的 helm chart 版本从集群外部进行外部访问?

【问题讨论】:

    标签: kubernetes apache-kafka redpanda


    【解决方案1】:

    您可以使用LoadBalancer 类型创建新的 Kubernetes 服务,并尝试在 Kubernetes 之外公开您的服务。

    默认情况下,此舵图创建服务类型 ClusterIP : https://github.com/vectorizedio/helm-charts/blob/main/redpanda/templates/service.bootstrap.yaml

    步骤:

    列出所有服务名称

    Kubectl get svc -n <namespace name if any>
    

    复制 redpanda 服务 YAML 配置并更改两个字段 NameType LoadBalancer 而不是 ClusterIP

    详细了解服务类型:https://kubernetes.io/docs/concepts/services-networking/service/

    另一种方式

    如果您不想这样做,只需更改 helm 图表模板 YAML 使用它。

    由于版本名称更改或缺少命名空间问题,可能是您无法使用的解决方案。

    您可以将服务类型更改为NodeportLoadbalancer。完成后,您可以从集群外部访问该服务。

    【讨论】:

    • 我这样做了,但这不起作用,因为 kafka 会将 redpanda-1.redpanda.redpanda.svc.cluster.local.:9092 返回给客户端!客户端应将其解析为内部 kubernetes ip,但客户端在 kubernetes 集群之外并且找不到10.10. ... IPs
    • 如果您使用默认的value.yaml,它在cluster.local 上运行域,运行多个侦听器也可能会解决此问题,更多信息请访问:github.com/vectorizedio/redpanda/issues/98
    • 使用kafka地址为:0.0.0.0:9092
    • clusterDomain 的值应该是多少?我应该在我的外部机器中定义一个 DNS 记录来指向哪个 IP?你能在帖子中描述更多吗?谢谢?
    • 你必须使用类似的东西:github.com/vectorizedio/redpanda/issues/…。我不确定 helm 是否支持这一点,或者不希望您使用的是开发版本。您可以尝试使用 0.0.0.0。
    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 2018-09-18
    • 2019-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多