【问题标题】:Not able to access cassandra from ISTIO deployed in GKE无法从部署在 GKE 中的 ISTIO 访问 cassandra
【发布时间】:2018-12-12 03:49:43
【问题描述】:

我已经使用 Istio 部署工具在 Google Kubernetes Engine 中安装了 Istio,一旦我部署了我的应用程序,我就无法访问 Cassandra 集群,但我可以从外部访问集群,我也验证了防火墙。如果我在没有 istio 的情况下部署我的应用程序,那么应用程序就可以访问 cassandra。我在部署 ISTIO 时使用了默认设置。我的 cassandra 运行端口 9042。帮我解决问题。

【问题讨论】:

    标签: google-kubernetes-engine istio


    【解决方案1】:

    我禁用了 Istio 注入,然后它工作正常。用于禁用的命令

    kubectl 标签命名空间默认 istio-injection=false

    【讨论】:

    • 通过禁用 istio-injection 您并没有部署 sidecar 容器。不使用 Istio 功能也是一样的……
    • 如果我启用 istio-injection 我得到以下错误。 “上游连接错误或在标头之前断开/重置”。不知道如何解决,但令人惊讶的是示例应用程序可以访问,但我的应用程序无法访问...
    • 您使用的是哪个 Istio 版本?在 Istio 1.0.1 和 1.0.3 之间的某个地方引入了 known error,这导致 Pilot 无法删除陈旧的端点。它已在 Istio 1.0.4 上修复。可以通过删除 Pilot pod 来临时修复该错误(新创建的 pod 将重新创建端点列表)。试一试,如果是这种情况,请更新您的 Istio 版本。
    【解决方案2】:

    请参阅https://istio.io/blog/2018/egress-tcp/,了解如何配置从 Istio 到外部 TCP 服务的访问。

    【讨论】:

    • 感谢您的意见。现在我可以连接 cassandra 但无法连接到在端口 2181 上运行的内部 pod(zookeeper),请您提出解决方案。
    • @ManikantaReddyP 你能提供更多关于这个问题的信息吗?您的请求的来源和目的地是什么?
    • 我在 Kubernetes pod 中运行 zookeeper,通过暴露端口 2181 为 zookeeper 创建服务,并且我的应用程序在另一个 pod 中运行,尝试使用端口 2181 访问 zookeeper,但无法访问。
    • 注意istio.io/docs/setup/kubernetes/spec-requirements ,你必须给你的zookeeper端口一个带有tcp-前缀的名字,例如tcp-zookeeper.
    猜你喜欢
    • 1970-01-01
    • 2020-02-06
    • 2019-11-24
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 2022-08-12
    • 2016-08-03
    相关资源
    最近更新 更多