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

Kafka connect -无法连接到本地主机端口8083:连接被拒绝

笪德华
2023-03-14

我有一个依赖于Kafka服务的应用程序。

对于Kafka connect,我在运行Kafka connect的kubernetes pod的Linux VM上尝试<code>curl localhost:8083</code>时遇到错误。

curl-vlocalhost:8083给出:

  • 重建网址至: 本地主机:8083/
  • 正在尝试 127.0.0.1...
  • 连接到 127.0.0.1 端口 8083 失败:连接被拒绝
  • 无法连接到本地主机端口 8083:连接被拒绝
  • 关闭连接 0 curl:(7) 无法连接到本地主机端口 8083:连接被拒绝

Kubectl get po -o wide for my kubernetes namespace 给出:

当我使用< code > sudo lsof-I-P-n | grep LISTEN 检查打开的端口时,我没有看到列出8083。kafka connect pod正在运行,并且该pod的日志中没有任何可疑内容。

有一个kubernetes清单,我认为可能是用来设置Kafka连接服务的,这些是相关的部分。我真的很感谢关于如何找出我为什么不能卷曲localhost:8083的任何建议

apiVersion: apps/v1
kind: Deployment
metadata:
   name: kafka-connect
   namespace: my-namespace
spec:

   ...

   template:
     metadata:
       labels:
         app: connect
     spec:
        containers:
          - name: kafka-connect
            image: confluentinc/cp-kafka-connect:3.0.1
            ports:
              - containerPort: 8083

            env:
              
              - name: CONNECT_REST_PORT
                value: "8083"
              - name: CONNECT_REST_ADVERTISED_HOST_NAME
                value: "kafka-connect"

        volumes:
          - name: connect-plugins
            persistentVolumeClaim:
                claimName: pvc-connect-plugin
          - name: connect-helpers          
            secret:
              secretName: my-kafka-connect-config
---
apiVersion: v1
kind: Service
metadata:
  name: kafka-connect
  namespace: my-namespace
  labels:
    app: connect  
spec:
  ports:
    - port: 8083
  selector:
    app: connect

共有1个答案

欧阳衡
2023-03-14

如果不稍加修改,就无法从群集外部连接到群集内运行的服务。

您有三种可能的解决方案

>

  • 使用类型为NodePortLoadBalancer的服务,使服务可以在集群外部访问。

    请参阅服务和kubectl公开文档
    请注意,根据您的环境,这可能会将服务暴露在互联网上。

    使用代理动词访问:(见此处)

    这只适用于HTTP/HTTPS。如果您的服务不够安全,无法暴露在互联网上,请使用此选项。

    从集群内运行的 Pod 进行访问。

    正如您在评论中注意到的,您可以在pod内部curl。您也可以在同一集群中运行的任何其他pod上执行此操作。吊舱可以在没有任何额外配置的情况下相互通信。

    为什么在 ssh 到 VM 时无法卷曲 8083?

    如果未使用上述方法(第 1 点或第 2 点)公开,则无法从集群外部访问 Pod/服务。

    为什么没有在具有pod的主机VM上公开端口?

    它不会在 VM 上公开,而是在群集内公开。

    我强烈建议通过集群网络留档了解更多信息。

  •  类似资料:
    • 问题内容: 当我尝试使用连接到Elasticsearch时, 它工作正常。 但是当我运行它时抛出一个错误说 无法连接到本地主机端口9200:连接被拒绝 如何解决这个错误? 问题答案: 默认情况下,它应该绑定到所有本地地址。因此,假设你没有使用防火墙在网络层的问题,唯一的ES设置我能想到是检查并确保其未设置或设置为或或正确的IP地址为您的网络。 更新:根据ES 2.3中的注释,您应该进行设置。

    • 大家好,我是Docker的新手,我想通过在官方网站上学习教程来熟悉Docker。现在我被困在教程的第2部分(你可以在这里查看链接)= 我有示例应用程序代码、Dockerfile和要求。txt与官方教程完全相同 我的Dockerfile是这样的 所有3个文件的文件内容/代码也与教程完全相同。我能够用这个命令构建镜像注册表 一切看起来都很好。现在我有了样本项目图像注册表。 然后,我根据官方教程使用此命

    • 当我尝试使用它工作正常。 但是当我运行它抛出一个错误,表示 连接到localhost端口9200失败:连接拒绝 如何解决此错误?

    • 问题内容: 需要帮忙。一直在尝试解决此问题,但找不到答案,或者我没有遇到任何问题。 我有一个带有NGINX的docker容器,充当反向代理。适用于Windows的Docker版本1.12.5(9503)。 在上面的代码中,localhost:8090是在我的主机上的IIS上托管的网站的URL。当我访问NGINX上的URL时,出现以下错误 试图访问主机上的URL (简单HTML站点,只有简单html

    • 这让我很困惑。 我有一个运行nginx-php-fpm的本地开发设置,我在其中使用.localhost作为每个项目的工作域。昨天Chrome停止了与本地域的合作。相反,它只是返回被拒绝的连接。DevTools将错误显示为net::ERR\u CONNECTION\u RESET。 访问http://127.0.0.1工作,但当然不适用于本地项目。 Safari继续与.localhost一起工作。

    • 我已经设置了Flurl在我的Xamarin PCL中运行,并且我正在调用我在MVC应用程序中运行的Web Api。 似乎 Flurl 可以毫无问题地击中我部署的 API,但由于某种原因我无法在本地测试更改。 我现在做的是: 我也尝试过一个简单的GetAsync(),但再次失败。 任何帮助都将不胜感激。 编辑: 为了了解更多信息,该项目是Ionic移动应用程序的重新开发。我已经在本地运行了ionic