{"id":4087,"date":"2025-07-03T18:47:34","date_gmt":"2025-07-03T15:47:34","guid":{"rendered":"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/istio\/"},"modified":"2025-07-03T18:50:55","modified_gmt":"2025-07-03T15:50:55","slug":"istio","status":"publish","type":"docs","link":"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/istio\/","title":{"rendered":"Istio (\u041f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u0430\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f Service Mesh)"},"content":{"rendered":"\n<p><strong>Istio<\/strong> \u2014 \u044d\u0442\u043e \u043f\u043e\u043b\u043d\u043e\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u0430\u044f <a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/service-mesh\/\" data-internallinksmanager029f6b8e52c=\"364\" title=\"Service Mesh (\u0421\u0435\u0442\u0435\u0432\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438)\">Service Mesh<\/a>-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u043c\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f\u043c\u0438, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0441\u0442\u044c\u044e \u0432 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0445 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430\u0445. \u041e\u043d\u0430 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 <strong><a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/envoy-proxy\/\" data-internallinksmanager029f6b8e52c=\"365\" title=\"Envoy Proxy (\u0412\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u043a\u0441\u0438 \u0434\u043b\u044f \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432)\">Envoy Proxy<\/a><\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a sidecar-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u043e\u0434\u0435 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 L4\/L7-<a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/proxy-server\/\" data-internallinksmanager029f6b8e52c=\"210\" title=\"Proxy Server (\u041f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440)\">\u043f\u0440\u043e\u043a\u0441\u0438<\/a>.<\/p>\n\n\n\n<p>Istio \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 <strong>\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u0438 \u0438 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438<\/strong>, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u0434\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0412 <a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/kubernetes\/\" data-internallinksmanager029f6b8e52c=\"259\" title=\"Kubernetes (K8s)\">Kubernetes<\/a> Istio \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 control plane \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f DevOps- \u0438 SRE-\u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u044e, \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0438 \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a \u0447\u0435\u0440\u0435\u0437 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u044b.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 Istio<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>mTLS (Mutual <a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/tls\/\" data-internallinksmanager029f6b8e52c=\"220\" title=\"TLS (Transport Layer Security)\">TLS<\/a>)<\/strong> \u2014 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c\u0438, \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0438 <a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/oauth-2-0\/\" data-internallinksmanager029f6b8e52c=\"378\" title=\"OAuth 2.0\">\u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f<\/a> \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f;<\/li>\n\n\n\n<li><strong>Traffic shifting<\/strong> \u2014 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u0430\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043c\u0435\u0436\u0434\u0443 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 (canary, <a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/blue-green-deployment\/\" data-internallinksmanager029f6b8e52c=\"367\" title=\"Blue-Green Deployment (\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439)\">blue-green<\/a>, A\/B-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435);<\/li>\n\n\n\n<li><strong>Telemetry &amp; Observability<\/strong> \u2014 \u0441\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a, <a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/traceroute\/\" data-internallinksmanager029f6b8e52c=\"325\" title=\"Traceroute\">\u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430<\/a> \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/prometheus\/\" data-internallinksmanager029f6b8e52c=\"355\" title=\"Prometheus (\u0411\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0440\u044f\u0434\u043e\u0432)\">Prometheus<\/a>, <a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/grafana\/\" data-internallinksmanager029f6b8e52c=\"356\" title=\"Grafana (C\u0432\u043e\u0431\u043e\u0434\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445)\">Grafana<\/a>, Jaeger \u0438 Kiali;<\/li>\n\n\n\n<li><strong>Policy management<\/strong> \u2014 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430, rate limiting, retry, circuit breaking, timeouts \u0438 fallback;<\/li>\n\n\n\n<li><strong>Load balancing<\/strong> \u2014 \u0443\u043c\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043f\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u043c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u0435\u0441\u0430, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432, \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439;<\/li>\n\n\n\n<li><strong>Fault injection<\/strong> \u2014 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0430\u0445, \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0438 \u0441\u0431\u043e\u044f\u0445 \u0432 \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u0410\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430 Istio<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Envoy Proxy<\/strong> \u2014 sidecar \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u043e\u0434\u0435, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0449\u0438\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u0442\u0435\u043b\u0435\u043c\u0435\u0442\u0440\u0438\u044e;<\/li>\n\n\n\n<li><strong>Istiod (control plane)<\/strong> \u2014 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 (xDS), \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438, \u0441\u0435\u0440\u0432\u0438\u0441-\u0434\u0438\u0441\u043a\u0430\u0432\u0435\u0440\u0438 \u0438 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438;<\/li>\n\n\n\n<li><strong>Kiali<\/strong> \u2014 UI-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438;<\/li>\n\n\n\n<li><strong>Prometheus, Grafana, Jaeger<\/strong> \u2014 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043b\u044f \u043c\u0435\u0442\u0440\u0438\u043a, \u043b\u043e\u0433\u043e\u0432 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f: Canary rollout \u0441 VirtualService<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>apiVersion: networking.istio.io\/v1beta1\nkind: VirtualService\nmetadata:\n  name: payments\nspec:\n  hosts:\n    - payments.example.com\n  http:\n    - route:\n        - destination:\n            host: payments\n            subset: v1\n          weight: 80\n        - destination:\n            host: payments\n            subset: v2\n          weight: 20\n<\/code><\/div><\/pre>\n\n\n\n<p>\u0422\u0430\u043a\u043e\u0439 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 80% \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430 <div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>v1<\/code><\/div>, 20% \u2014 \u043d\u0430 <div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>v2<\/code><\/div>. \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 <a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/gitlab-ci-cd\/\" data-internallinksmanager029f6b8e52c=\"372\" title=\"GitLab CI\/CD (\u041d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u0432 GitLab)\">CI\/CD<\/a> \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0435.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u041f\u043e\u0447\u0435\u043c\u0443 Istio \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u041f\u043e\u043b\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043a\u043e\u0434\u0430<\/strong>;<\/li>\n\n\n\n<li><strong>\u0413\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/strong>;<\/li>\n\n\n\n<li><strong>\u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 &#8220;\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e&#8221;<\/strong> (Zero Trust);<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/scalability\/\" data-internallinksmanager029f6b8e52c=\"246\" title=\"Scalability (\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c)\">\u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u043e\u0441\u0442\u044c<\/a> \u2014 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043a\u0430\u043a \u0434\u043b\u044f 10, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f 1000+ \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432<\/strong>;<\/li>\n\n\n\n<li><strong>\u041d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u0438 \u0430\u0443\u0434\u0438\u0442 \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0432\u0441\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b<\/strong>;<\/li>\n\n\n\n<li><strong>\u0421\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 GitOps-\u043f\u043e\u0434\u0445\u043e\u0434\u0430\u043c\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a <a href=\"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/argo-cd\/\" data-internallinksmanager029f6b8e52c=\"352\" title=\"Argo CD\">Argo CD<\/a> \u0438\u043b\u0438 Flux<\/strong>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>Istio<\/strong> \u2014 \u044d\u0442\u043e \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0434\u043b\u044f \u0437\u0440\u0435\u043b\u044b\u0445 DevOps- \u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0442\u0440\u043e\u044f\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u0443\u044e, \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0435\u043c\u0443\u044e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u0443\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432 Kubernetes.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>\u041f\u043e\u043b\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d canary-\u0434\u0435\u043f\u043b\u043e\u044f \u0447\u0435\u0440\u0435\u0437 Argo Rollouts \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 Istio<\/strong>, \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f fallback \u0447\u0435\u0440\u0435\u0437 <strong>DestinationRule<\/strong>, \u0438 \u0441\u0445\u0435\u043c\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 Istio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcc4 Canary-\u0434\u0435\u043f\u043b\u043e\u0439 \u0447\u0435\u0440\u0435\u0437 Argo Rollouts + Istio<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1. CRD: <div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>Rollout<\/code><\/div> (\u0430\u0440\u0433\u043e-\u043e\u0431\u044a\u0435\u043a\u0442)<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>apiVersion: argoproj.io\/v1alpha1\nkind: Rollout\nmetadata:\n  name: payments\nspec:\n  replicas: 4\n  strategy:\n    canary:\n      steps:\n        - setWeight: 20\n        - pause: { duration: 5m }\n        - setWeight: 50\n        - pause: { duration: 10m }\n        - setWeight: 100\n  selector:\n    matchLabels:\n      app: payments\n  template:\n    metadata:\n      labels:\n        app: payments\n    spec:\n      containers:\n        - name: payments\n          image: myregistry\/payments:v2\n          ports:\n            - containerPort: 8080\n<\/code><\/div><\/pre>\n\n\n\n<p>Argo \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0440\u0430\u0444\u0438\u043a\u043e\u043c, \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u044f \u0434\u043e\u043b\u044e \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u043e\u044d\u0442\u0430\u043f\u043d\u043e.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">2. Istio VirtualService + DestinationRule<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>apiVersion: networking.istio.io\/v1beta1\nkind: DestinationRule\nmetadata:\n  name: payments\nspec:\n  host: payments\n  subsets:\n    - name: stable\n      labels:\n        app: payments\n        version: v1\n    - name: canary\n      labels:\n        app: payments\n        version: v2\n<\/code><\/div><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>apiVersion: networking.istio.io\/v1beta1\nkind: VirtualService\nmetadata:\n  name: payments\nspec:\n  hosts:\n    - payments.example.com\n  http:\n    - route:\n        - destination:\n            host: payments\n            subset: stable\n          weight: 80\n        - destination:\n            host: payments\n            subset: canary\n          weight: 20\n<\/code><\/div><\/pre>\n\n\n\n<p>Argo \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u0442 VirtualService \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 rollout\u2019\u0430.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd01 Fallback \u0438 Fault Injection<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Fallback \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435:<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>http:\n  - route:\n      - destination:\n          host: payments\n          subset: stable\n    fault:\n      abort:\n        percentage:\n          value: 100\n        httpStatus: 503\n<\/code><\/div><\/pre>\n\n\n\n<p>\u042d\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 503 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0430\u0434\u0435\u043d\u0438\u044f canary \u2014 \u043c\u043e\u0436\u043d\u043e \u043a\u043e\u043c\u0431\u0438\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c rollback.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u0421\u0445\u0435\u043c\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 Istio<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>&#91; User Request ]\n       \u2193\n&#91; Istio Ingress Gateway ]\n       \u2193\n&#91; VirtualService ]\n       \u2193\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Subset: v1 \u2502 Subset: v2 \u2502\n\u2502 (80%)      \u2502 (20%)      \u2502\n\u2502 Label:     \u2502 Label:     \u2502\n\u2502 version=v1 \u2502 version=v2 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n       \u2193\n&#91; Envoy Sidecars ]\n       \u2193\n&#91; App Container ]\n<\/code><\/div><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 <strong>metrics webhook<\/strong> \u2014 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e rollback;<\/li>\n\n\n\n<li>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 <strong>webhook validation<\/strong> \u0434\u043b\u044f \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u043e\u0432 rollout + VirtualService;<\/li>\n\n\n\n<li>\u0421\u0431\u043e\u0440 \u043c\u0435\u0442\u0440\u0438\u043a \u0447\u0435\u0440\u0435\u0437 Prometheus \u0441 Istio <div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>request_total<\/code><\/div>, <div class=\"code-block\"><button class=\"copy-btn\">\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c<\/button><code>request_duration_seconds<\/code><\/div>;<\/li>\n<\/ul>\n","protected":false},"featured_media":0,"parent":2927,"menu_order":168,"comment_status":"open","ping_status":"closed","template":"","doc_tag":[],"class_list":["post-4087","docs","type-docs","status-publish","hentry"],"comment_count":0,"_links":{"self":[{"href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/docs\/4087","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/types\/docs"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/comments?post=4087"}],"version-history":[{"count":2,"href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/docs\/4087\/revisions"}],"predecessor-version":[{"id":4091,"href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/docs\/4087\/revisions\/4091"}],"up":[{"embeddable":true,"href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/docs\/2927"}],"next":[{"title":"Blue-Green Deployment (\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439)","link":"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/blue-green-deployment\/","href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/docs\/4092"}],"prev":[{"title":"Redundancy (\u0418\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0432 \u0418\u0422-\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435)","link":"https:\/\/cloudvps.by\/community\/docs\/glossarij\/terminy\/redundancy\/","href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/docs\/4058"}],"wp:attachment":[{"href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/media?parent=4087"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/cloudvps.by\/community\/wp-json\/wp\/v2\/doc_tag?post=4087"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}