【问题标题】:Pod to Pod communication based on subset/label by istioIstio 基于子集/标签的 Pod 到 Pod 通信
【发布时间】:2022-01-08 00:12:02
【问题描述】:

我有 4 个微服务。

只有 service-1 后面有两个部署,所以 service-1 后面有两个 pod。你可以称之为蓝绿色部署。

其他三个服务一个部署一个pod。

如果我想将外部流量发送到 server-1/pod-v2,那么我可以通过子集控制它到目标规则中。 service-2 的 pod 可以通过 service name 调用 service-1 的 pod。

如何为 service-2/pod 配置 istio 只能通过服务名调用 service-1/pod-v2 而其他服务只能通过服务名调用 service-1/pod-v1?

【问题讨论】:

  • 您使用了哪个版本的 Kubernetes 和 Istio,您是如何设置集群的?您是否使用裸机安装或某些云提供商?重现您的问题很重要。你到底尝试了什么?
  • 我将 EKS 与 Kubernetes 1.18 版和 istio 1.8.1 版一起使用。我想尝试在 service-1 下是否有两个具有不同版本的 pod,然后其他 pod(来自其他服务)可以单独调用 server-1 pod。就像如果 server-1 有 pod-v1 和 pod-v2 那么 service-2 的 pod 只会通过 service-1.prod.svc.cluster.local 向 server-1/pod-v2 发送请求
  • 您正在使用已弃用的 Kubernetes 和 Istio 版本。是否可以同时更新它们?
  • istio 可以,Kubernetes 可能不行。你能告诉我如果我更新这些,它会带来问题的解决方案吗?
  • 不,但是如果您的问题在受支持的 istio / kubernetes 版本上仍然存在,我将能够重现这种情况。所以请更新你的版本并告诉我。

标签: kubernetes mesh istio kubernetes-pod istio-sidecar


【解决方案1】:

这不是我想要解决这个问题的方式。基本上我控制了一个 pod 的传入流量,但我想控制一个 pod 的出站流量。但是,我在这里发布了我的 hacky 解决方案。

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: handle-internal-traffic
  namespace: demo
spec:
  hosts:
    - "service-1"
  gateways:
    - mesh
  http:
    - match:
        - sourceLabels:
            version: v1
          uri:
            exact: /
      route:
        - destination:
            host: service-1
            subset: v1
    - match:
      - uri:
          exact: /api
      rewrite:
        uri: "/"
      route:
        - destination:
            host: service-1
            subset: v2
---
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: service-1
  namespace: demo
spec:
  host: service-1.demo.svc.cluster.local
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2

当请求来自网状网络的其他 pod 时,只需过滤标签。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-19
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 2019-06-21
    • 2020-01-16
    • 2021-10-04
    相关资源
    最近更新 更多