Я пытаюсь ввести задержку 2 секунды в экземпляр Redis (который не находится в кластере) с помощью istio. Итак, сначала я создаю службу ExternalName
k8s, чтобы подключиться к внешнему redis, чтобы istio знала об этой службе. Это работает. Однако, когда я создаю EnvoyFilter
для добавления ошибки, я не вижу redis_proxy
фильтр в istioctl pc listeners <pod-name> -o json
для модуля в том же пространстве имен. (а также задержка не вводится)
apiVersion: v1
kind: Namespace
metadata:
name: chaos
labels:
istio-injection: enabled
---
apiVersion: v1
kind: Service
metadata:
name: redis-proxy
namespace: chaos
spec:
type: ExternalName
externalName: redis-external.bla
ports:
- name: tcp
protocol: TCP
port: 6379
---
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: redis-proxy-filter
namespace: chaos
spec:
configPatches:
- applyTo: NETWORK_FILTER
match:
listener:
portNumber: 6379
filterChain:
filter:
name: "envoy.filters.network.redis_proxy"
patch:
operation: MERGE
value:
name: "envoy.filters.network.redis_proxy"
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.redis_proxy.v3.RedisProxy
faults:
- fault_type: DELAY
fault_enabled:
default_value:
numerator: 100
denominator: HUNDRED
delay: 2s
Может кто подскажет? Спасибо.
So, first I am creating an ExternalName k8s service in order to reach external redis so that istio knows about this service.
совершенно неверно.ExternalName
typeService
является объектом k8s и не имеет ничего общего с Istio.ServiceEntry
- это объект Istio для добавления внешних конечных точек в Istio rgistry. Я не знаю, что вы имеете в виду. - person suren   schedule 04.04.2021