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

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

93aef1d166a8a3536538eff713f80307?s=47 flant
July 30, 2021

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

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

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

93aef1d166a8a3536538eff713f80307?s=128

flant

July 30, 2021
Tweet

Transcript

  1. None
  2. Андрей Половов Архитектор проектов 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
  3. Что ждать от внедрения Istio?

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

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

  6. Что ждать от внедрения Istio? Istio = Service Mesh

  7. Istio = Service Mesh Что ждать от внедрения Istio?

  8. front back db

  9. front back db cache

  10. front back db admin cache

  11. front back db images admin cache

  12. front back db images admin cache queue consumer consumer consumer

  13. front back db images admin docs docdb cache queue consumer

    consumer consumer
  14. front back db images admin docs docdb cache queue consumer

    consumer consumer warehouse
  15. front back db images admin docs docdb cache queue consumer

    consumer consumer warehouse
  16. db images admin docs docdb cache queue consumer consumer consumer

    warehouse front back
  17. db images admin docs docdb cache queue consumer consumer consumer

    warehouse front back
  18. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  19. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  20. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  21. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  22. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  23. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  24. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  25. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  26. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  27. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  28. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  29. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  30. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  31. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc Circuit Breaking

  32. front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  33. back front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  34. back–79f976997d-a8tff front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  35. back–79f976997d-a8tff front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–69d499c5b6-q8trc

  36. back–79f976997d-a8tff front–5cd968978d-zqlrb back–69d499c5b6-5xcjt back–69d499c5b6-cbl6r back–79f976997d-k4bax

  37. back–79f976997d-a8tff front–5cd968978d-zqlrb back–79f976997d-6zhea back–69d499c5b6-cbl6r back–79f976997d-k4bax

  38. back–79f976997d-a8tff front–5cd968978d-zqlrb back–79f976997d-6zhea back–79f976997d-k4bax

  39. back–79f976997d-a8tff front–5cd968978d-zqlrb back–79f976997d-6zhea back–79f976997d-k4bax

  40. back–79f976997d-a8tff front–5cd968978d-zqlrb back–79f976997d-6zhea back–79f976997d-k4bax Canary Deployment

  41. back–79f976997d-6zhea front–5cd968978d-zqlrb back–79f976997d-k4bax back–79f976997d-a8tff

  42. back–79f976997d-6zhea front–5cd968978d-zqlrb back–79f976997d-k4bax back–79f976997d-a8tff front–5cd968978d-zqlrb front–5cd968978d-zqlrb

  43. back–79f976997d-6zhea front–5cd968978d-zqlrb back–79f976997d-k4bax back–79f976997d-a8tff front–5cd968978d-zqlrb front–5cd968978d-zqlrb

  44. front–5cd968978d-zqlrb back–79f976997d-6zhea front–5cd968978d-zqlrb back–79f976997d-k4bax front–5cd968978d-zqlrb back–79f976997d-a8tff

  45. front–5cd968978d-zqlrb back–79f976997d-6zhea ru-central1-a front–5cd968978d-zqlrb back–79f976997d-k4bax ru-central1-b front–5cd968978d-zqlrb back–79f976997d-a8tff ru-central1-b

  46. front–5cd968978d-zqlrb back–79f976997d-6zhea front–5cd968978d-zqlrb back–79f976997d-k4bax front–5cd968978d-zqlrb back–79f976997d-a8tff ru-central1-a ru-central1-b ru-central1-b

  47. front–5cd968978d-zqlrb back–79f976997d-6zhea front–5cd968978d-zqlrb back–79f976997d-k4bax front–5cd968978d-zqlrb back–79f976997d-a8tff ru-central1-a ru-central1-b ru-central1-b

  48. front–5cd968978d-zqlrb back–79f976997d-6zhea front–5cd968978d-zqlrb back–79f976997d-k4bax front–5cd968978d-zqlrb back–79f976997d-a8tff ru-central1-a ru-central1-b ru-central1-b

  49. front–5cd968978d-zqlrb back–79f976997d-6zhea front–5cd968978d-zqlrb back–79f976997d-k4bax front–5cd968978d-zqlrb back–79f976997d-a8tff ru-central1-a ru-central1-b ru-central1-b

  50. front–5cd968978d-zqlrb back–79f976997d-6zhea front–5cd968978d-zqlrb back–79f976997d-k4bax front–5cd968978d-zqlrb back–79f976997d-a8tff ru-central1-a ru-central1-b ru-central1-b Locality

    Load Balancing
  51. Circuit Breaker Locality Load Balancing Canary Deployment

  52. 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
  53. 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
  54. 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(); ...
  55. 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
  56. 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
  57. 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
  58. 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
  59. 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
  60. 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
  61. 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
  62. 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
  63. None
  64. Фреймворк управления трафиком Service Mesh =

  65. Фреймворк управления трафиком Service Mesh HTTP, gRPC и любой другой

    TCP =
  66. Фреймворк управления трафиком Service Mesh HTTP, gRPC и любой другой

    TCP Декларативный язык =
  67. Фреймворк управления трафиком Service Mesh HTTP, gRPC и любой другой

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

    consumer consumer warehouse
  69. front back db images admin docs docdb cache queue consumer

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

    consumer consumer warehouse <?php if ($code == 500) { $backend.suspend(); ... $ openssl req ...
  71. ... 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 ...
  72. ... 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 ...
  73. ... 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 ...
  74. front back db images admin docs docdb cache queue consumer

    consumer consumer warehouse
  75. images admin docs docdb cache queue consumer consumer consumer warehouse

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

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

  78. Super Mesh

  79. app

  80. app

  81. app

  82. app

  83. app

  84. app

  85. app

  86. app netns

  87. app netns

  88. app netns DNAT

  89. app netns DNAT DNAT

  90. app netns DNAT DNAT

  91. app netns DNAT DNAT eBPF eBPF

  92. app netns DNAT DNAT eBPF eBPF

  93. app netns DNAT DNAT

  94. app netns DNAT DNAT

  95. app DNAT DNAT Pod

  96. app Pod DNAT DNAT

  97. app Pod DNAT DNAT

  98. app Pod DNAT DNAT

  99. app Pod DNAT DNAT sidecar

  100. app Pod DNAT DNAT

  101. app Pod DNAT DNAT

  102. app Pod DNAT DNAT

  103. app Pod DNAT DNAT

  104. app Pod DNAT DNAT

  105. app Pod DNAT DNAT

  106. app Pod DNAT DNAT

  107. app Pod DNAT DNAT

  108. app Pod DNAT DNAT

  109. app Pod DNAT DNAT ECDS LDS CDS SRDS EDS SDS

    VCDS RTDS RDS Envoy APIs
  110. app Pod DNAT DNAT

  111. 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
  112. 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 Разработчик
  113. 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
  114. 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
  115. 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 Разработчик
  116. Разработчик

  117. Разработчик

  118. Разработчик

  119. supermeshd Разработчик

  120. supermeshd Разработчик

  121. 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
  122. 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
  123. 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
  124. 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
  125. Разработчик 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
  126. Разработчик 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
  127. Разработчик 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
  128. ServiceComb-mesher

  129. ServiceComb-mesher

  130. © CNCF Survey Report 2020 https://www.cncf.io/wp-content/uploads/2020/11/CNCF_Survey_Report_2020.pdf

  131. © CNCF Survey Report 2020 https://www.cncf.io/wp-content/uploads/2020/11/CNCF_Survey_Report_2020.pdf

  132. None
  133. Андрей Половов Архитектор проектов Что ждать от внедрения Istio?

  134. None
  135. Как повлияет на приложение?

  136. Как повлияет на приложение? А как на кластер?

  137. Как повлияет на приложение? А как на кластер? Так ли

    безопасен Mutual TLS?
  138. Как повлияет на приложение? А как на кластер? Так ли

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

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

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

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

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

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

  145. front back 1

  146. front back 1 2

  147. front back

  148. front back sidecar-proxy sidecar-proxy

  149. front back sidecar-proxy sidecar-proxy 1

  150. front back sidecar-proxy sidecar-proxy 1

  151. front back sidecar-proxy sidecar-proxy 1 2 × 1

  152. front back sidecar-proxy sidecar-proxy 1 2 3 × 1

  153. front back sidecar-proxy sidecar-proxy 1 2 3 × 1

  154. front back sidecar-proxy sidecar-proxy 1 2 3 4 × 2

  155. front back sidecar-proxy sidecar-proxy 1 2 3 4 × 2

  156. front back sidecar-proxy sidecar-proxy 1 2 3 4 5 ×

    3
  157. front back sidecar-proxy sidecar-proxy 1 2 3 4 5 Время

    – деньги! × 3
  158. front back sidecar-proxy sidecar-proxy 1 2 3 4 5 Время

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

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

  161. client server

  162. client server

  163. client server

  164. client server 10 000 запросов с предварительным прогревом

  165. client server kube-node-0 kube-node-1 10 000 запросов с предварительным прогревом

  166. None
  167. client server pure

  168. client server client server envoy pure

  169. client server client server envoy pure client server istio

  170. client server client server envoy pure client server istio client

    server istio-authz
  171. client server client server envoy pure client server istio client

    server istio-authz 1000 x AuthorizationPolicy
  172. client server client server envoy pure client server istio client

    server istio-authz
  173. client server client server envoy pure client server istio client

    server istio-authz
  174. client server client server envoy pure client server istio client

    server istio-authz
  175. client server client server envoy pure client server istio client

    server istio-authz
  176. client client client pure envoy istio istio-auth client server server

    server server TLS TLS TLS
  177. TLS TLS client client server server envoy pure client server

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

    server istio-auth HTTP/2 HTTP/2 HTTP/2
  179. server server envoy pure server istio server istio-auth client client

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

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

    server istio-authz
  182. client client envoy pure client istio client istio-auth server server

    server server
  183. server Small 500 B Medium 200 KiB Large 1.7 MiB

  184. server JSON JSON JSON Small 500 B Medium 200 KiB

    Large 1.7 MiB
  185. client server client server envoy pure client server istio client

    server istio-authz
  186. client server client server envoy pure client server istio client

    server istio-authz
  187. 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
  188. 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 теста
  189. Классический сетап

  190. client server client server envoy pure client server istio client

    server istio-authz
  191. client server client server envoy pure client server istio client

    server istio-authz TCP keepalive TCP keepalive TCP keepalive TCP keepalive
  192. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  193. Single-Thread — client TCP keepalive OFF JSON JSON JSON 0.78ms

    1.09ms 1.75ms
  194. Single-Thread — client TCP keepalive OFF JSON JSON JSON 0.78ms

    1.09ms 1.75ms 339% 403% 427%
  195. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  196. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  197. Single-Thread — client TCP keepalive OFF JSON JSON JSON 0.77ms

    214%
  198. Single-Thread — client TCP keepalive OFF JSON JSON JSON 0.77ms

    214% 0.74ms 74%
  199. Single-Thread — client TCP keepalive OFF JSON JSON JSON 0.77ms

    214% 0.74ms 74%
  200. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  201. Single-Thread — client TCP keepalive OFF JSON JSON JSON 0.23ms

  202. Single-Thread — client TCP keepalive OFF JSON JSON JSON 0.23ms

    + 2ms
  203. 0.23ms + 2ms = 800% Single-Thread — client TCP keepalive

    OFF JSON JSON JSON
  204. 0.23ms + 2ms = 800% Single-Thread — client TCP keepalive

    OFF JSON JSON JSON
  205. 0.23ms + 2ms = 800% Single-Thread — client TCP keepalive

    OFF JSON JSON JSON 20ms
  206. 0.23ms + 2ms = 800% Single-Thread — client TCP keepalive

    OFF JSON JSON JSON 20ms + 2ms
  207. 0.23ms + 2ms = 800% Single-Thread — client TCP keepalive

    OFF JSON JSON JSON 20ms + 2ms = 10%
  208. 0.23ms + 2ms = 800% Single-Thread — client TCP keepalive

    OFF JSON JSON JSON 20ms + 2ms = 10%
  209. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  210. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  211. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  212. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  213. Single-Thread — client TCP keepalive OFF JSON JSON JSON 1000

    x AuthorizationPolicy
  214. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  215. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  216. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  217. Single-Thread — client TCP keepalive OFF JSON JSON JSON

  218. pure istio Single-Thread — client TCP keepalive OFF

  219. pure istio Single-Thread — client TCP keepalive OFF 0.18ms 78%

    1.08ms 83%
  220. Mutual TLS

  221. client client client pure envoy istio istio-auth client server server

    server server TLS TLS TLS
  222. client istio server TLS

  223. JSON JSON JSON TLS OFF vs ON

  224. JSON JSON JSON TLS OFF vs ON

  225. Любопытные наблюдения

  226. client server client server envoy pure client server istio client

    server istio-authz
  227. client server client server envoy pure client server istio client

    server istio-authz TCP keepalive TCP keepalive TCP keepalive TCP keepalive
  228. client server istio TCP keepalive

  229. JSON JSON JSON Single-Thread — TCP keepalive OFF vs ON

  230. client server istio TCP keepalive

  231. client server istio TCP keepalive

  232. JSON JSON JSON Multi-Thread — TCP keepalive OFF vs ON

  233. JSON JSON JSON Multi-Thread — TCP keepalive OFF vs ON

  234. https://blog.cloudflare.com/keepalives-considered-harmful/ TCP keepalive Не всегда хорошо!

  235. А как на кластер? Что если что-то сломается? Так ли

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

  237. Как повлияет на приложение? Перехват трафика — не бесплатен

  238. Как повлияет на приложение? Перехват трафика — не бесплатен ±

    2.5 ms
  239. Как повлияет на приложение? Перехват трафика — не бесплатен Больше

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

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

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

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

  244. supermeshd = istiod

  245. 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
  246. 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
  247. istiod AuthorizationPolicy EnvoyFilter IstioOperator DestinationRule PeerAuthentication VirtualService WorkloadEntry ServiceEntry Gateway

    Sidecar WorkloadGroup
  248. istiod AuthorizationPolicy EnvoyFilter IstioOperator DestinationRule PeerAuthentication VirtualService WorkloadEntry ServiceEntry Gateway

    Sidecar WorkloadGroup
  249. istiod AuthorizationPolicy EnvoyFilter IstioOperator DestinationRule PeerAuthentication VirtualService WorkloadEntry ServiceEntry Gateway

    Sidecar WorkloadGroup
  250. istiod AuthorizationPolicy EnvoyFilter IstioOperator DestinationRule PeerAuthentication VirtualService WorkloadEntry ServiceEntry Gateway

    Sidecar WorkloadGroup Service Endpoint Namespace Node Secret Pod
  251. А как на кластер? Что если что-то сломается? Так ли

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

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

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

  256. Структура

  257. Структура

  258. Структура Графики

  259. Структура Графики Трассировка

  260. Структура Графики Трассировка

  261. Трассировка Структура Графики

  262. Структура Графики Трассировка

  263. Структура Графики Трассировка

  264. Какие возможности Observability? А как на кластер? Что если что-то

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

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

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

  268. client server Привет, server!

  269. client server

  270. client server Привет, client!

  271. client server

  272. client server

  273. client server

  274. client server Привет, server!

  275. client server

  276. client server Ты кто такой, *&^*$*???!

  277. client server OKAY

  278. client server

  279. client server

  280. client server

  281. client server

  282. client server SAN: spiffe://cluster.local/ns/foo/sa/client

  283. client server SAN: spiffe://cluster.local/ns/foo/sa/client principal

  284. client server SAN: spiffe://cluster.local/ns/foo/sa/client

  285. client server SAN: spiffe://cluster.local/ns/foo/sa/client

  286. client server SAN: spiffe://cluster.local/ns/foo/sa/client

  287. client server SAN: spiffe://cluster.local/ns/foo/sa/client ServiceAccount

  288. client server

  289. client server istiod

  290. client server istiod root

  291. ca.crt != client server istiod root

  292. client server istiod root

  293. client server istiod root

  294. client server istiod root

  295. istiod root server client

  296. istiod root client server

  297. client istiod root server Pod

  298. client istiod root server Pod Super Mesh

  299. client server Pod istiod root Super Mesh

  300. client server Pod Super Mesh istiod root

  301. client server Pod istiod root Super Mesh

  302. client Pod server istiod root

  303. istiod root Pod server

  304. istiod root Pod server

  305. istiod root Pod CSR server

  306. server istiod root Pod SAN: spiffe://cluster.local/ns/foo/sa/client CSR

  307. server istiod root Pod SAN: spiffe://cluster.local/ns/foo/sa/client CSR

  308. server istiod root Pod SAN: spiffe://cluster.local/ns/foo/sa/client CSR

  309. server istiod root Pod SAN: spiffe://cluster.local/ns/foo/sa/client ServiceAccount CSR

  310. None
  311. mypod Pod

  312. mysa ServiceAccount mypod Pod

  313. mysa ServiceAccount mypod Pod apiVersion: v1 kind: ServiceAccount metadata: name:

    mysa namespace: foo
  314. mysa ServiceAccount mypod Pod { "namespace": "foo", "name": "mysa", ...

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

    metadata: name: mysa namespace: foo { "namespace": "foo", "name": "mysa", ... }
  316. 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", ... }
  317. 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", ... }
  318. 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
  319. 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
  320. server istiod root Pod SAN: spiffe://cluster.local/ns/foo/sa/client ServiceAccount CSR

  321. istiod root Pod SAN: spiffe://cluster.local/ns/foo/sa/client CSR server

  322. istiod root Pod CSR SAN: spiffe://cluster.local/ns/foo/sa/client server

  323. istiod root Pod CSR SAN: spiffe://cluster.local/ns/foo/sa/client server

  324. istiod root Pod CSR SAN: spiffe://cluster.local/ns/foo/sa/client server

  325. istiod root Pod CSR server

  326. istiod root Pod CSR server

  327. istiod root Pod CSR server

  328. istiod root Pod CSR server

  329. istiod root Pod CSR server

  330. istiod root Pod CSR TokenReview server

  331. istiod root Pod CSR server

  332. istiod root Pod CSR server

  333. server Pod istiod root CSR

  334. server Pod istiod root

  335. Pod istiod root server

  336. Pod istiod root server

  337. server Pod istiod root

  338. server Pod istiod root

  339. server Pod istiod root

  340. Какие возможности Observability? А как на кластер? Что если что-то

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

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

    сломается? Так ли безопасен Mutual TLS? Что-то там было про федерацию... Как его правильно засетапить? А обновить? Как повлияет на приложение?
  343. None
  344. None
  345. за 8 минут!

  346. за 8 минут!

  347. за 8 минут! 150+ кластеров под управлением

  348. за 8 минут! deckhouse.io Ранний доступ 150+ кластеров под управлением

  349. Acknowledgements Дмитрий Столяров За помощь с подготовкой контента Антон Климов

    За помощь с оформлением презентации
  350. Спасибо! 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