Service Meshes

2350801025b8e8592dbaa8dd98a24cbb?s=47 Eberhard Wolff
September 04, 2019

Service Meshes

Einführung in Service Meshes am Beispiel von Istio. Zeigt Features im Bereich Monitoring, Resilience, Routing und Sicherheit sowie einen Vergleich mit Linkerd 2 und ein Vergleich zu Linkerd 2.

2350801025b8e8592dbaa8dd98a24cbb?s=128

Eberhard Wolff

September 04, 2019
Tweet

Transcript

  1. None
  2. None
  3. None
  4. None
  5. None
  6. + –

  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. • • •

  14. • • • • • • http://prometheus.io/

  15. None
  16. • • •

  17. • •

  18. • • • • https://grafana.com/

  19. None
  20. None
  21. • • •

  22. • •

  23. • •

  24. None
  25. None
  26. • • •

  27. • • • •

  28. • • • •

  29. • • • spring.sleuth.propagation-keys= x-request-id,x-ot-span-context •

  30. None
  31. 31

  32. None
  33. None
  34. None
  35. • • •

  36. None
  37. 37

  38. None
  39. • • •

  40. • • •

  41. None
  42. • • • •

  43. • • • • • • •

  44. apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: order-retry spec: hosts: -

    order.default.svc.cluster.local http: - retries: attempts: 20 perTryTimeout: 5s retryOn: connect-failure,5xx timeout: 10s route: - destination: host: order.default…
  45. 45

  46. • • • • •

  47. apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: order-circuit-breaker spec: host: order.default.svc.cluster.local

    trafficPolicy: connectionPool: tcp: maxConnections: 1 http: http1MaxPendingRequests: 1 http2MaxRequests: 1
  48. 48

  49. None
  50. • • • •

  51. apiVersion: networking.istio.io/… kind: DestinationRule metadata: name: frontend v2 version: "2"

    v1 version: "1" spec: host: frontend subsets: - name: v2 labels: version: "2" - name: v1 labels: version: "1" "/neu" frontend v2 frontend v1 apiVersion: networking.istio.io/… kind: VirtualService metadata: name: frontend-ingress spec: hosts: - "*" http: - match: - uri: prefix: "/neu" route: - destination: host: frontend subset: v2 - route: - destination: host: frontend subset: v1
  52. • • • 90% 10% 100% 10% 90%

  53. None
  54. None
  55. None
  56. ✘ ✘

  57. None
  58. None
  59. • API • • • https://smi-spec.io

  60. • • • •

  61. apiVersion: split.smi-spec.io/v1alpha1 kind: TrafficSplit metadata: name: my-weights spec: service: service

    backends: - service: service-1 weight: 100m - service: service-2 weight: 200m - service: service-3 weight: 300m
  62. apiVersion: access.smi-spec.io/v1alpha1 kind: TrafficTarget metadata: name: service-2-api destination: kind: ServiceAccount

    name: service-2 specs: - kind: HTTPRouteGroup name: api-route matches: [api] sources: - kind: ServiceAccount name: service-1 apiVersion: specs.smi-spec.io/v1alpha1 kind: HTTPRouteGroup metadata: name: api-route matches: - name: api pathRegex: /api methods: ["GET"] ✘ ✘
  63. None
  64. • • •

  65. None
  66. ✘ ✘

  67. None
  68. None
  69. + –

  70. www.innoq.com/de/podcast/059-service-meshes-1/ www.heise.de/developer/artikel/Brauchen-asynchrone- Microservices-und-Self-Contained-Systems-ein-Service-Mesh- 4478057.html www.heise.de/developer/artikel/Alle-11-Minuten-verliebt- sich-ein-Microservice-in-Linkerd-4511406.html