mirror of https://github.com/istio/istio.io.git
160 lines
7.8 KiB
Markdown
160 lines
7.8 KiB
Markdown
---
|
||
title: Проблеми з оновленням
|
||
description: Вирішення поширених проблем з оновленнями Istio.
|
||
weight: 60
|
||
owner: istio/wg-policies-and-telemetry-maintainers
|
||
test: n/a
|
||
---
|
||
|
||
## Міграція EnvoyFilter {#envoyfilter-migration}
|
||
|
||
`EnvoyFilter` — це альфа API, яка тісно повʼязана з деталями реалізації генерації конфігурації xDS в Istio. Використання альфа API `EnvoyFilter` в промислових системах має бути ретельно продуманим під час оновлення панелі управління або панелі даних Istio. У багатьох випадках `EnvoyFilter` можна замінити на API Istio, що несе значно менші ризики оновлення.
|
||
|
||
### Використання Telemetry API для налаштування метрик {#use-telemetry-api-for-metrics-customization}
|
||
|
||
Використання `IstioOperator` для налаштування генерації метрик Prometheus було замінено на [Telemetry API](/docs/tasks/observability/metrics/customize-metrics/), оскільки `IstioOperator` спирається на шаблон `EnvoyFilter` для зміни конфігурації фільтра метрик. Зверніть увагу, що ці два методи несумісні, і Telemetry API не працює з `EnvoyFilter` або конфігурацією налаштування метрик `IstioOperator`.
|
||
|
||
Наприклад, наступна конфігурація `IstioOperator` додає теґ `destination_port`:
|
||
|
||
{{< text yaml >}}
|
||
apiVersion: install.istio.io/v1alpha1
|
||
kind: IstioOperator
|
||
spec:
|
||
values:
|
||
telemetry:
|
||
v2:
|
||
prometheus:
|
||
configOverride:
|
||
inboundSidecar:
|
||
metrics:
|
||
- name: requests_total
|
||
dimensions:
|
||
destination_port: string(destination.port)
|
||
{{< /text >}}
|
||
|
||
Наступна конфігурація `Telemetry` замінює наведену вище:
|
||
|
||
{{< text yaml >}}
|
||
apiVersion: telemetry.istio.io/v1
|
||
kind: Telemetry
|
||
metadata:
|
||
name: namespace-metrics
|
||
spec:
|
||
metrics:
|
||
- providers:
|
||
- name: prometheus
|
||
overrides:
|
||
- match:
|
||
metric: REQUEST_COUNT
|
||
mode: SERVER
|
||
tagOverrides:
|
||
destination_port:
|
||
value: "string(destination.port)"
|
||
{{< /text >}}
|
||
|
||
### Використання WasmPlugin API для розширення можливостей Wasm панелі даних {#use-wasmplugin-api-for-wasm-data-plane-extensibility}
|
||
|
||
Використання `EnvoyFilter` для додавання фільтрів Wasm було замінено на [WasmPlugin API](/docs/tasks/extensibility/wasm-module-distribution). WasmPlugin API дозволяє динамічне завантаження втулків з реєстрів артефактів, URL-адрес або локальних файлів. Виконавчий файл втулка "Null" більше не є рекомендованим варіантом для розгортання коду Wasm.
|
||
|
||
### Використання топології шлюза для встановлення кількості довірених хопів {#use-gateway-topology-to-set-the-number-of-the-trusted-hops}
|
||
|
||
Використання `EnvoyFilter` для конфігурації кількості довірених хопів в HTTP-менеджері зʼєднань було замінено на поле [`gatewayTopology`](/docs/reference/config/istio.mesh.v1alpha1/#Topology) в [`ProxyConfig`](/docs/ops/configuration/traffic-management/network-topologies). Наприклад, наступна конфігурація `EnvoyFilter` повинна використовувати анотацію на podʼі або стандартне значення для мережі. Замість:
|
||
|
||
{{< text yaml >}}
|
||
apiVersion: networking.istio.io/v1alpha3
|
||
kind: EnvoyFilter
|
||
metadata:
|
||
name: ingressgateway-redirect-config
|
||
spec:
|
||
configPatches:
|
||
- applyTo: NETWORK_FILTER
|
||
match:
|
||
context: GATEWAY
|
||
listener:
|
||
filterChain:
|
||
filter:
|
||
name: envoy.filters.network.http_connection_manager
|
||
patch:
|
||
operation: MERGE
|
||
value:
|
||
typed_config:
|
||
'@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
|
||
xff_num_trusted_hops: 1
|
||
workloadSelector:
|
||
labels:
|
||
istio: ingress-gateway
|
||
{{< /text >}}
|
||
|
||
Використовуйте еквівалентну анотацію конфігурації проксі podʼа для шлюза:
|
||
|
||
{{< text yaml >}}
|
||
metadata:
|
||
annotations:
|
||
"proxy.istio.io/config": '{"gatewayTopology" : { "numTrustedProxies": 1 }}'
|
||
{{< /text >}}
|
||
|
||
### Використання топології шлюза для увімкнення PROXY протоколу на шлюзах вхідного трафіку {#use-gateway-topology-to-enable-proxy-protocol-on-the-ingress-gateways}
|
||
|
||
Використання `EnvoyFilter` для увімкнення [PROXY протоколу](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt) на шлюзах вхідного трафіку було замінено на поле [`gatewayTopology`](/docs/reference/config/istio.mesh.v1alpha1/#Topology) в [`ProxyConfig`](/docs/ops/configuration/traffic-management/network-topologies). Наприклад, наступна конфігурація `EnvoyFilter` повинна використовувати анотацію на podʼі або стандартне значення для мережі. Замість:
|
||
|
||
{{< text yaml >}}
|
||
apiVersion: networking.istio.io/v1alpha3
|
||
kind: EnvoyFilter
|
||
metadata:
|
||
name: proxy-protocol
|
||
spec:
|
||
configPatches:
|
||
- applyTo: LISTENER_FILTER
|
||
patch:
|
||
operation: INSERT_FIRST
|
||
value:
|
||
name: proxy_protocol
|
||
typed_config:
|
||
"@type": "type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocol"
|
||
workloadSelector:
|
||
labels:
|
||
istio: ingress-gateway
|
||
{{< /text >}}
|
||
|
||
Використовуйте еквівалентну анотацію конфігурації проксі podʼа для шлюза:
|
||
|
||
{{< text yaml >}}
|
||
metadata:
|
||
annotations:
|
||
"proxy.istio.io/config": '{"gatewayTopology" : { "proxyProtocol": {} }}'
|
||
{{< /text >}}
|
||
|
||
### Використання анотації проксі для налаштування розмірів кошиків гістограми {#use-a-proxy-annotation-to-customize-the-histogram-bucket-sizes}
|
||
|
||
Використання `EnvoyFilter` та експериментального сервісу виявлення bootstrap для конфігурації розмірів кошиків для метрик гістограми було замінено на анотацію проксі `sidecar.istio.io/statsHistogramBuckets`. Наприклад, наступна конфігурація `EnvoyFilter` повинна використовувати анотацію на podʼі. Замість:
|
||
|
||
{{< text yaml >}}
|
||
apiVersion: networking.istio.io/v1alpha3
|
||
kind: EnvoyFilter
|
||
metadata:
|
||
name: envoy-stats-1
|
||
namespace: istio-system
|
||
spec:
|
||
workloadSelector:
|
||
labels:
|
||
istio: ingressgateway
|
||
configPatches:
|
||
- applyTo: BOOTSTRAP
|
||
patch:
|
||
operation: MERGE
|
||
value:
|
||
stats_config:
|
||
histogram_bucket_settings:
|
||
- match:
|
||
prefix: istiocustom
|
||
buckets: [1,5,50,500,5000,10000]
|
||
{{< /text >}}
|
||
|
||
Використовуйте еквівалентну анотацію podʼа:
|
||
|
||
{{< text yaml >}}
|
||
metadata:
|
||
annotations:
|
||
"sidecar.istio.io/statsHistogramBuckets": '{"istiocustom":[1,5,50,500,5000,10000]}'
|
||
{{< /text >}}
|