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

Istio ingress无法使用无头服务

楚俊逸
2023-03-14

我已经将Kafka部署为statefulset,并将zookeeper配置为leader selector(一个无头服务)。Kafka正像预期的那样运行得非常好。然而,我在配置Istio访问Kafka时遇到了一些问题。

    $ kubectl get pods -owide | grep -i kafka
     kafka-mon-0   1/1     Running   0        3d1h    <IP>  

    $ kubectl get svc -owide | grep -i kafka
     kafka-mon-http      LoadBalancer   <IP>  <Ext-IP>    8080:30875/TCP  app=kafka-mon
     kafka-mon-svc       ClusterIP      None  <none>      8080/TCP    app=kafka-mon

如果我用Kakfa LoadBalancer服务配置Istio,我就能够访问UI。但是,如果我使用无头服务,那么UI本身是不可访问的。我已经测试了不同的其他服务以及,同样的情况。

$ kubectl get gateway,virtualservice  | grep -i kafka

gateway.networking.istio.io/kafka-mon-gateway   4h
virtualservice.networking.istio.io/kafka-mon-vservice   4h

如果Virtualservice与负载平衡器服务配置在一起,但与headless服务配置在一起,Istio可以很好地工作。请帮我弄清楚这个问题。

对于Istio,我已经部署了一个网关路由器作为内部IngressGateway,带有http端口-80,https端口-443&一个路由目的主机作为Kafka-headless服务的虚拟服务,它不起作用,但是如果路由目的主机配置为负载平衡器服务,它就起作用了。

我无法解决问题。请建议。

共有1个答案

钮刚洁
2023-03-14

我有这个问题,我通过添加一个服务条目来修复它。当我们使用无头svc时,istio不确定将流量引导到哪里。您可以添加类似于下面的内容。

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: kafka-se
  namespace: <If any namespace>
spec:
  hosts:
  - kafka.default.svc.cluster.local
  location: MESH_INTERNAL
  ports:
  - name: grpc
    number: 5445
    protocol: TCP
  resolution: DNS
 类似资料:
  • 我在CentOS上安装了apache服务器。我正在尝试添加SSL。我创建了证书和密钥,然后更新了具有以下配置: /etc/httpd/conf.d/ssl.conf文件 然后我更新了< code >/etc/httpd/conf/httpd . conf : /etc/httpd/conf/httpd.conf 然后我运行,一切正常 但是当我使用https访问我的网站时,它显示“此网页不可用”。我

  • 我可以在我自己的电脑上使用这个程序,但是我不能在服务器上使用。 服务器使用最高权限管理员打开程序。 具有的服务器WCF HTTP激活功能。NET4。5号门开着。 服务器endpoint地址使用"http://localhost",如下所示 endpoint地址="http://localhost"绑定="basicHttpBind"bindingConfiguration="NewBinding0

  • 错误很简单。我不知道如何准确地在http中发送头。获取方法。我认为在尝试映射响应时会出现错误。有人知道在webservice中发送头并映射它的正确方法吗? 控制台中的错误是: 类型“HttpHeaders”缺少类型“Headers”中的以下属性:forEach、值、toJSON、条目、mayBeSetNormalizedName 更新2:添加了导入 更新3:完整的代码示例。 https://l-l

  • 这是我的代码: 我添加了一个github权限代码,但它仍然崩溃 我做了每件事,但每次都失败了 我也在我的舱单上增加了摄像头的权限 //setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_Grait); LogCat: 09-30 18:59:31.698 11339-11339/微笑。通用域名格式。androidflashlightapp

  • 我试图遵循这个指南,使铬无头无法检测。 在使用Python和Selenium时,有没有一种方法可以以更便携的方式使Chrome无头无法被检测到?

  • 我刚开始学习Selenium,需要使用云中的jenkins机器验证登录网页,该机器没有GUI。我成功地在有UI的系统上运行了脚本。然而,当我将脚本修改为运行headless时,它无法表示无法定位元素。我的脚本如下: 当不使用chrome_options时,python脚本在我的系统上运行良好。但是在将它们添加到无头模式下运行时,它会失败,输出如下: 由于我对Selenium有大约一天的学习时间,我