【问题标题】:How to assign a DNS name to a Kafka Kubernetes Nodeport如何为 Kafka Kubernetes Nodeport 分配 DNS 名称
【发布时间】:2020-07-16 04:33:32
【问题描述】:

我在 minikube 上使用 Strimzi Kafka 运算符创建了一个 Kafka 集群来学习基础知识。我正在尝试从我的主机访问 minikube 环境中的 Kafka,为此我创建了一个 Kafka 节点端口:

apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
metadata:
  name: kafka-cluster
spec:
  kafka:
    version: 2.4.0
    replicas: 3
    listeners:
      plain: {}
      tls: {}
      external:
        type: nodeport
        tls: false
        overrides:
          bootstrap:
            nodePort: 32100
          brokers:
          - broker: 0
            nodePort: 32000
          - broker: 1
            nodePort: 32001
          - broker: 2
            nodePort: 32002  
...
...
...

NAME                                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                               AGE
kafka-cluster-kafka-0                    NodePort    10.96.40.176    <none>        9094:32000/TCP                        7d
kafka-cluster-kafka-1                    NodePort    10.96.138.2     <none>        9094:32001/TCP                        7d
kafka-cluster-kafka-2                    NodePort    10.96.209.16    <none>        9094:32002/TCP                        7d
kafka-cluster-kafka-bootstrap            ClusterIP   10.96.216.169   <none>        9091/TCP,9092/TCP,9093/TCP,9404/TCP   7d
kafka-cluster-kafka-brokers              ClusterIP   None            <none>        9091/TCP,9092/TCP,9093/TCP            7d
kafka-cluster-kafka-exporter             ClusterIP   10.96.17.45     <none>        9404/TCP                              47d
kafka-cluster-kafka-external-bootstrap   NodePort    10.96.252.97    <none>        9094:32100/TCP                        7d
kafka-cluster-zookeeper-client           ClusterIP   10.96.155.34    <none>        9404/TCP,2181/TCP                     7d
kafka-cluster-zookeeper-nodes            ClusterIP   None            <none>        2181/TCP,2888/TCP,3888/TCP            7d




到目前为止,一切似乎都运行良好,我可以使用 kafka-cluster-kafka-external-bootstrap (withBootstrapServers("192.168.99.107:32100") 将消息发布到 Kafka 主题。由于我是一步一步学习的,所以我想看看我是否可以指定一个名称而不是通过 IP 地址来引用。

在 Nodeport 配置中有简单的方法吗?我已经在这个问题上停留了一个星期。感谢您朝着正确的方向轻推!

【问题讨论】:

    标签: kubernetes apache-kafka minikube strimzi


    【解决方案1】:

    您应该安装一些 Kubernetes 裸机负载均衡器,例如 MetalLB,然后使用 LoadBalancer service 而不是 NodePort 服务,获取 EXTERNAL-IP 的值 LoadBalancer 服务并将 DNS 指向此 IP .

    【讨论】:

      【解决方案2】:

      这主要取决于您的基础架构。 Minikube 使用 IP 地址作为节点地址和负载均衡器地址。这就是为什么 Strimzi 总是根据 IP 地址为您提供地址。如果您要在 Kubernetes 上运行它,例如在 AWS 上的某个地方,您将开箱即用地获取 DNS 名称而不是 IP。

      即使使用 Minikube,您也可以将 Strimzi 配置为使用您指定的一些名称:https://strimzi.io/docs/latest/full.html#con-kafka-broker-external-listeners-addresses-deployment-configuration-kafka ...但您需要确保这些路由到 Minikube IP 地址,例如通过每年将它们添加到 /etc/hosts。但是 TBH,通常这对于 Minikube 来说是不值得的。

      【讨论】:

        猜你喜欢
        • 2020-03-07
        • 2019-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-23
        • 2022-12-11
        • 1970-01-01
        • 2013-10-27
        相关资源
        最近更新 更多