【发布时间】:2021-04-04 12:51:16
【问题描述】:
我正在尝试使用 istio 向 redis 实例(不在集群中)注入 2s 延迟。
因此,首先我创建了一个ExternalName k8s 服务,以便访问外部 redis,以便 istio 了解该服务。这行得通。但是,当我创建 EnvoyFilter 以添加故障时,我在 istioctl pc listeners <pod-name> -o json 中看不到 redis_proxy 过滤器用于同一命名空间中的 pod。 (也没有引入延迟)
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.是完全错误的。ExternalNametypeService是一个 k8s 对象,与 Istio 无关。ServiceEntry是一个 Istio 对象,用于将外部端点添加到 Istio rgistry。我不知道你是不是这个意思。
标签: istio envoyproxy