【问题标题】:Istio configuration on GKEGKE 上的 Istio 配置
【发布时间】:2021-05-05 01:40:09
【问题描述】:

我有一些关于 Istio 的基本问题。我为我的 Tyk API 网关安装了 Istio。然后我发现仅仅安装 Istio 会导致 Tyk pod 之间的所有流量都被阻塞。这是 Istio 的默认行为吗? Tyk 网关无法与 Tyk 仪表板通信。

当我在没有 Istio 的情况下重建部署时,一切正常。

我还了解到 Istio 可以配置虚拟服务来执行流量路由。这是我每次默认安装 Istio 都需要做的吗?意思是,如果我不创建任何虚拟服务,那么 Istio 默认会阻塞所有流量?

其次,我知道虚拟服务是作为 CRD 应用的 YAML 文件创建的。虚拟服务规则中定义的主机名 - 在 Google Cloud 上的默认 Kubernetes 集群实现中,我如何找到我的应用程序的主机名?

最后,如果我先安装 Tyk,然后再安装 Istio,并且我已经在 Tyk 的 nanmespace 中为要注入的代理创建了必要的标签,我是否可以对我的 Tyk pod 执行滚动升级以让 Istio 开始注入?

例如,我的 Tyk 仪表板服务中有这些标签。我是否在我的虚拟服务 YAML 中使用名为“app”的值?

labels:
    app: dashboard-svc-tyk-pro
    app.kubernetes.io/managed-by: Helm
    chart: tyk-pro-0.8.1
    heritage: Helm
    release: tyk-pro

抱歉所有基本问题!

【问题讨论】:

    标签: istio gke-networking


    【解决方案1】:

    关于 Tyk 网关无法与 Tyk 仪表板通信的问题。 (我认为问题在于您的 pod 在 Istio sidecar 准备好之前尝试连接到数据库。因此无法建立连接。 Istio 运行一个配置 Pod 路由表的 init 容器,因此所有流量都通过 sidecar 路由。因此,如果 sidecar 没有运行并且另一个 pod 尝试连接到 db,则无法建立连接。例如:Application running in Kubernetes cron job does not connect to database in same Kubernetes cluster)

    关于虚拟服务的问题 2.每个虚拟服务都包含一组按顺序评估的路由规则,让 Istio 将每个给定的虚拟服务请求匹配到网格中的特定真实目的地。 默认情况下,Istio 将 Envoy 代理配置为将请求传递给未知服务。但是,您不能使用 Istio 功能来控制到未在网格中注册的目的地的流量。

    有关主机名的问题请参阅this documentation

    hosts 字段列出了虚拟服务的主机 - 换句话说,这些路由规则适用于用户可寻址的一个或多个目的地。这是客户端向服务发送请求时使用的地址。

    将 GKE 上的 Istio 添加到现有集群请参考this documentation

    如果您想使用插件更新集群,您可能需要先调整集群大小以确保您有足够的资源用于 Istio。在创建新集群时,我们建议至少使用 2 个 vCPU 机器类型的 4 节点集群。如果您在集群上有现有应用程序,您可以了解如何迁移它以便由 Istio 管理,如 Istio 中所述文档。 您可以卸载 the add-on following document,其中包括将流量从 Istio 入口网关转移。有关在 GKE 上安装和卸载 Istio 的更多详细信息,请查看 this doc

    还添加 this document 用于在 GKE 上安装 Istio,其中还包括将其安装到现有集群到 quickly evaluate Istio

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-09
      • 2019-11-30
      • 2019-08-23
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 2020-01-28
      • 1970-01-01
      相关资源
      最近更新 更多