Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Dynamic Routing by Envoy + Istio

1bfc6e2ed04a895bb36f36b86828b689?s=47 Yuki Ito
January 08, 2020

Dynamic Routing by Envoy + Istio

1bfc6e2ed04a895bb36f36b86828b689?s=128

Yuki Ito

January 08, 2020
Tweet

Transcript

  1. Dynamic Routing by Envoy + Istio Envoy Meetup Tokyo #1

    Yuki Ito
  2. Merpay Architect Team Backend Engineer Yuki Ito

  3. Goal Multi-line QA microservice A PR 1 PR 2 PR

    3
  4. Architecture API Gateway VirtualService microservice A Service Pod PR 3

    Service Pod PR 2 Service Pod PR 1 JWT
  5. Architecture API Gateway VirtualService microservice A Service Pod PR 3

    Service Pod PR 2 Service Pod PR 1 JWT microservice-A: PR-1
  6. Custom HTTP Filter { "microservice-A": "PR-1", "microservice-B": "PR-2" } microservice-A:

    PR-1 microservice-B: PR-2 Request from APP Request to Upstream JWT Payload HTTP Header ɾɾɾ ɾɾɾ
  7. Custom HTTP Filter EnvoyFilter spec: workloadLabels: mercari.com/service-router: enabled filters: -

    listenerMatch: listenerType: SIDECAR_OUTBOUND listenerProtocol: HTTP filterName: envoy.lua filterType: HTTP filterConfig: inlineCode: | ...
  8. Custom HTTP Filter

  9. Routing via VirtualService VirtualService http: - match: - headers: microservice-A:

    exact: "PR-1" route: - destination: host: pr-1.microservice-a.svc.cluster.local ...
  10. Architecture API Gateway VirtualService microservice A Service Pod PR 3

    Service Pod PR 2 Service Pod PR 1 JWT