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

Что ждать от внедрения Istio?

flant
July 30, 2021

Что ждать от внедрения Istio?

Доклад архитектора компании «Флант» (https://flant.ru/) Андрея Половова на конференции Kuber Conf 2021 в Москве.

* Текстовый обзор доклада: https://habr.com/ru/company/flant/blog/569612/
* Видео с выступления: https://youtu.be/9CUfaeT3T-A

flant

July 30, 2021
Tweet

More Decks by flant

Other Decks in Technology

Transcript

  1. Андрей Половов Архитектор проектов t.me/andreypolovov andrey.polovov@flant.com Флант DevOps и Kubernetes,

    обслуживание 24×7 habr.com/ru/company/flant youtube.com/c/Флант flant.ru t.me/flant_ru
  2. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  3. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment front back
  4. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment front back <?php if ($code == 500) { $backend.suspend(); ...
  5. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  6. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  7. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  8. Service Mesh Zone-aware Routing Traffic Shifting Metric Exporting & Tracing

    End-user Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  9. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  10. Zone-aware Routing Traffic Shifting M etric Exporting & Tracing End-user

    Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  11. Zone-aw are Routing Traffic Shifting Metric Exporting & Tracing Mutual

    TLS A /B Tests Fault Injection M irroring Circuit Breaker Locality Load Balancing End-user Authentication Weighted Load Balancer gRPC Load Balancing Authorization Egress Gateway Request Timeout Canary Deployment
  12. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing Weighted Load

    Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment End-user Authentication
  13. Фреймворк управления трафиком Service Mesh HTTP, gRPC и любой другой

    TCP Декларативный язык Мониторинг Observability + =
  14. front back db images admin docs docdb cache queue consumer

    consumer consumer warehouse <?php if ($code == 500) { $backend.suspend(); ...
  15. front back db images admin docs docdb cache queue consumer

    consumer consumer warehouse <?php if ($code == 500) { $backend.suspend(); ... $ openssl req ...
  16. ... ssl = { ‘cert’: ‘client-cert.pem’, ‘key’: ‘client-key.pem’} conn =

    MySQLdb.connect(ssl=ssl, ... front back db images admin docs docdb cache queue consumer consumer consumer warehouse <?php if ($code == 500) { $backend.suspend(); ... $ openssl req ...
  17. ... ssl = { ‘cert’: ‘client-cert.pem’, ‘key’: ‘client-key.pem’} conn =

    MySQLdb.connect(ssl=ssl, ... front back db images admin docs docdb cache queue consumer consumer consumer warehouse <?php if ($code == 500) { $backend.suspend(); ... $ openssl req ... [mysqld] tls_version=TLSv1.3 ssl_ca=ca.pem ssl_cert=server-cert.pem ssl_key=server-key.pem ...
  18. ... ssl = { ‘cert’: ‘client-cert.pem’, ‘key’: ‘client-key.pem’} conn =

    MySQLdb.connect(ssl=ssl, ... front back db images admin docs docdb cache queue consumer consumer consumer warehouse <?php if ($code == 500) { $backend.suspend(); ... $ openssl req ... [mysqld] tls_version=TLSv1.3 ssl_ca=ca.pem ssl_cert=server-cert.pem ssl_key=server-key.pem ...
  19. images admin docs docdb cache queue consumer consumer consumer warehouse

    front back db Service Mesh Mutual TLS Circuit Breaker
  20. Фреймворк управления трафиком Service Mesh HTTP, gRPC и любой другой

    TCP Декларативный язык Мониторинг Observability + =
  21. app

  22. app

  23. app

  24. app

  25. app

  26. app

  27. app

  28. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  29. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment Разработчик
  30. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment Weighted Load Balancer
  31. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    gRPC Load Balancing A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment Mutual TLS Weighted Load Balancer
  32. Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user Authentication

    Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment Разработчик
  33. supermeshd Разработчик Zone-aware Routing Traffic Shifting Metric Exporting & Tracing

    End-user Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  34. supermeshd Разработчик Zone-aware Routing Traffic Shifting Metric Exporting & Tracing

    End-user Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  35. supermeshd Разработчик Zone-aware Routing Traffic Shifting Metric Exporting & Tracing

    End-user Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  36. supermeshd Разработчик Zone-aware Routing Traffic Shifting Metric Exporting & Tracing

    End-user Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  37. Разработчик Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user

    Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment supermeshd Control Plane
  38. Разработчик Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user

    Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment supermeshd Control Plane Data Plane
  39. Разработчик Zone-aware Routing Traffic Shifting Metric Exporting & Tracing End-user

    Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment supermeshd
  40. Как повлияет на приложение? А как на кластер? Так ли

    безопасен Mutual TLS? Что-то там было про федерацию...
  41. Как повлияет на приложение? А как на кластер? Так ли

    безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability?
  42. Как повлияет на приложение? А как на кластер? Что если

    что-то сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability?
  43. Как повлияет на приложение? А как на кластер? Что если

    что-то сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability? Как его правильно засетапить?
  44. Как повлияет на приложение? А как на кластер? Что если

    что-то сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability? Как его правильно засетапить? А обновить?
  45. Как повлияет на приложение? А как на кластер? Что если

    что-то сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability? Как его правильно засетапить? А обновить?
  46. front back sidecar-proxy sidecar-proxy 1 2 3 4 5 Время

    – деньги! Latency – деньги! × 3
  47. The Envoy proxy adds 2.65 ms to the 90th percentile

    latency. https://istio.io/latest/docs/ops/deployment/performance-and-scalability/
  48. client server client server envoy pure client server istio client

    server istio-authz 1000 x AuthorizationPolicy
  49. TLS TLS client client server server envoy pure client server

    istio client server istio-auth 1.2/1.3 TLS
  50. server server envoy pure server istio server istio-auth client client

    client TCP keepalive TCP keepalive TCP keepalive client TCP keepalive
  51. client client client client server server envoy pure server istio

    server istio-auth TCP keepalive TCP keepalive TCP keepalive
  52. client server client server envoy pure client server istio client

    server istio-authz JSON JSON JSON JSON TCP keepalive TCP keepalive TCP keepalive TCP keepalive TCP keepalive TCP keepalive TCP keepalive HTTP/2 HTTP/2 HTTP/2 TLS TLS TLS 1.2/1.3
  53. client server client server envoy pure client server istio client

    server istio-authz JSON JSON JSON JSON TCP keepalive TCP keepalive TCP keepalive TCP keepalive TCP keepalive TCP keepalive TCP keepalive HTTP/2 HTTP/2 HTTP/2 TLS TLS TLS 1.2/1.3 252 теста
  54. client server client server envoy pure client server istio client

    server istio-authz TCP keepalive TCP keepalive TCP keepalive TCP keepalive
  55. client server client server envoy pure client server istio client

    server istio-authz TCP keepalive TCP keepalive TCP keepalive TCP keepalive
  56. А как на кластер? Что если что-то сломается? Так ли

    безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability? Как его правильно засетапить? А обновить? Как повлияет на приложение?
  57. Как повлияет на приложение? Перехват трафика — не бесплатен Больше

    естественный latency — меньше относительный overhead ± 2.5 ms
  58. А как на кластер? Что если что-то сломается? Так ли

    безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability? Как его правильно засетапить? А обновить? Как повлияет на приложение?
  59. А как на кластер? Что если что-то сломается? Так ли

    безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability? Как его правильно засетапить? А обновить? Как повлияет на приложение?
  60. А как на кластер? Что если что-то сломается? Так ли

    безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability? Как его правильно засетапить? А обновить? Как повлияет на приложение?
  61. supermeshd = istiod Zone-aware Routing Traffic Shifting Metric Exporting &

    Tracing End-user Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment
  62. supermeshd = istiod Zone-aware Routing Traffic Shifting Metric Exporting &

    Tracing End-user Authentication Weighted Load Balancer gRPC Load Balancing Mutual TLS A/B Tests Fault Injection Mirroring Authorization Egress Gateway Request Timeout Circuit Breaker Locality Load Balancing Canary Deployment = AuthorizationPolicy EnvoyFilter IstioOperator DestinationRule PeerAuthentication VirtualService WorkloadEntry ServiceEntry Gateway Sidecar WorkloadGroup
  63. А как на кластер? Что если что-то сломается? Так ли

    безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability? Как его правильно засетапить? А обновить? Как повлияет на приложение?
  64. А как на кластер? Что если что-то сломается? Так ли

    безопасен Mutual TLS? Что-то там было про федерацию... Какие возможности Observability? Как его правильно засетапить? А обновить? Как повлияет на приложение?
  65. Какие возможности Observability? А как на кластер? Что если что-то

    сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Как его правильно засетапить? А обновить? Как повлияет на приложение?
  66. Какие возможности Observability? А как на кластер? Что если что-то

    сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Как его правильно засетапить? А обновить? Как повлияет на приложение?
  67. Какие возможности Observability? А как на кластер? Что если что-то

    сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Как его правильно засетапить? А обновить? Как повлияет на приложение?
  68. Какие возможности Observability? А как на кластер? Что если что-то

    сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Как его правильно засетапить? А обновить? Как повлияет на приложение?
  69. mysa ServiceAccount mypod Pod { "namespace": "foo", "name": "mysa", ...

    } apiVersion: v1 kind: ServiceAccount metadata: name: mysa namespace: foo
  70. mysa ServiceAccount mypod Pod mysa-token-123 Secret apiVersion: v1 kind: ServiceAccount

    metadata: name: mysa namespace: foo { "namespace": "foo", "name": "mysa", ... }
  71. mysa ServiceAccount mypod Pod apiVersion: v1 kind: ServiceAccount metadata: name:

    mysa namespace: foo secrets: - name: mysa-token-123 mysa-token-123 Secret { "namespace": "foo", "name": "mysa", ... }
  72. mysa ServiceAccount mypod Pod apiVersion: v1 kind: ServiceAccount metadata: name:

    mysa namespace: foo secrets: - name: mysa-token-123 apiVersion: v1 kind: Pod metadata: name: mypod namespace: foo spec: serviceAccountName: mysa ... mysa-token-123 Secret { "namespace": "foo", "name": "mysa", ... }
  73. mysa ServiceAccount mypod Pod apiVersion: v1 kind: ServiceAccount metadata: name:

    mysa namespace: foo secrets: - name: mysa-token-123 apiVersion: v1 kind: Pod metadata: name: mypod namespace: foo spec: serviceAccountName: mysa ... { "namespace": "foo", "name": "mysa", ... } mysa-token-123 Secret
  74. mysa ServiceAccount mypod Pod apiVersion: v1 kind: ServiceAccount metadata: name:

    mysa namespace: foo secrets: - name: mysa-token-123 apiVersion: v1 kind: Pod metadata: name: mypod namespace: foo spec: serviceAccountName: mysa ... { "namespace": "foo", "name": "mysa", ... } mysa-token-123 Secret /run/secrets/kubernetes.io/serviceaccount/token
  75. Какие возможности Observability? А как на кластер? Что если что-то

    сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Как его правильно засетапить? А обновить? Как повлияет на приложение?
  76. Какие возможности Observability? А как на кластер? Что если что-то

    сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Как его правильно засетапить? А обновить? Как повлияет на приложение?
  77. Какие возможности Observability? А как на кластер? Что если что-то

    сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Как его правильно засетапить? А обновить? Как повлияет на приложение?
  78. Спасибо! deckhouse.io Полностью идентичный Kubernetes где угодно Успех с Kubernetes

    с первого дня Андрей Половов Архитектор проектов Флант DevOps и Kubernetes, обслуживание 24×7 habr.com/ru/company/flant youtube.com/c/Флант flant.ru t.me/flant_ru t.me/andreypolovov andrey.polovov@flant.com