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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for flant flant
July 30, 2021

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

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

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

Avatar for flant

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